Uw sleutels
Sleutels worden gemaakt van uw account. Aanmelden, of maak een.. nieuwe accounts krijgen beginnende krediet, dat is genoeg voor een echte match.
Aanmelden
Aanmelden
Authenticatie
Stuur de sleutel als token aan token aan token op elk verzoek. Het is een credential die je saldo kan besteden, dus behandel het als een wachtwoord: alleen server-side, nooit in een browser, nooit in een repository. Een gelekte sleutel wordt ingetrokken van deze pagina en stopt onmiddellijk met werken.
curl https://theorem.chat/api/v1/account/ \
-H "Authorization: Bearer thm_live_xxxxxxxx.xxxxxxxxxxxxxxxx"
Basis URL: https://theorem.chat/api/v1/. Verzoeken en antwoorden zijn JSON. De versie is in het pad, dus een brekende verandering schepen als v2 en uw code blijft werken.
POST /api/v1/matches/
Start een match. Alleen het doel is vereist: laat het paneel uit en een standaard line-up zit van verschillende leveranciers, omdat modellen die zijn opgeleid op overlappende gegevens delen blinde vlekken en een panel dat met zichzelf overeenkomt geen bewijs is. De match wordt direct in de wachtrij geplaatst en gewerkt door een server, zodat het verzoek terugkeert zodra het wordt geaccepteerd.
curl -X POST https://theorem.chat/api/v1/matches/ \
-H "Authorization: Bearer $THEOREM_KEY" \
-H "Content-Type: application/json" \
-d '{
"goal": "Every prime p > 3 satisfies p^2 = 1 (mod 24).",
"rigor_preset": "formal",
"seats": [
{"model": "anthropic/claude-opus-4.5"},
{"model": "openai/gpt-5", "stance": "Attack the statement."}
],
"max_rounds": 8,
"usd_ceiling": "2.00",
"public": false
}'
Velden
GET /api/v1/matches/{token}/
De hele match: status, de acceptatiecriteria en hoe elk werd geregeld, het grootboek van gevestigde resultaten, het bewijs achter elke uitspraak, en het vonnis eenmaal er een. Een match loopt voor minuten tot uren, dus peiling om de paar seconden terwijl live.. de reactie vertelt je wanneer te stoppen.
{
"token": "k3m9x…",
"status": "solved",
"round": 5,
"progress": 100,
"usd_spent": "0.734120",
"usd_ceiling": "2.000000",
"criteria": [
{"text": "p^2 - 1 is divisible by 8", "status": "met", "settled_round": 2},
{"text": "p^2 - 1 is divisible by 3", "status": "met", "settled_round": 3}
],
"evidence": [
{"kind": "computation", "code": "…", "output": "…", "verified": true}
],
"verdict": "…"
}
Statussen: in de wachtrij, uitgevoerd, gepauzeerd, needs_funds, opgelost, uitgeput, vastgezet, mislukt. De laatste vier zijn terminal; gepauzeerd, needs_funds, uitgeput en vastgezet kunnen worden hervat.
POST /api/v1/matches/{token}/resume/
Geef een gestopt match meer rondes of meer budget. Alles wat het paneel gevestigd wordt gehouden.. resultaten zijn geschreven aan een grootboek een keer en nooit opnieuw afgeleid, en opgenomen dode einden stoppen het lopen terug in een aanpak die al mislukt.
curl -X POST https://theorem.chat/api/v1/matches/$TOKEN/resume/ \
-H "Authorization: Bearer $THEOREM_KEY" \
-H "Content-Type: application/json" \
-d '{"more_rounds": 4, "more_usd": "2.00"}'
Fouten
Elke fout heeft dezelfde vorm. Branch op code, die stabiel is; bericht is proza en kan worden herschreven.
{"error": {"code": "insufficient_balance",
"message": "Add credit or connect your own inference key…"}}
401 voor een ontbrekende of ingetrokken sleutel, 402 wanneer het saldo leeg is, 404 voor een token dat niet van jou is, 409 voor een match die al loopt, 429 als je te snel gaat, 400 voor alles wat het verzoek zelf verkeerd had.
Tarieflimieten
Telde per sleutel: 240 leest en 30 match begint per minuut. Los op doel. Wat eigenlijk beperkt een match is dat het uw saldo, en deze zijn hier om een retry loop of een poller lopen uit te sluiten. Over de limiet krijg je 429; poll een lopende match om de paar seconden in plaats van continu.
De facturering is identiek aan de site: u betaalt per token tegen het gepubliceerde tarief per model, van prepaid krediet of uw eigen sleutel.
Hoe facturering werkt