API
Alt, hvad webstedet gør, over HTTP: Angiv en fordring og baren det skal klare, sæde et panel, og meningsmåling, indtil dommeren har afgjort hvert kriterium. Samme panel, samme fakturering, samme udgiftsgrænser! ingen browser.
Dine nøgler
Nøgler oprettes fra din konto. Log på, eller oprette en ~ nye konti får start kredit, hvilket er nok til en reel match.
Tilmeld dig
Login
Godkendelse
Send nøglen som en bærer token på hver anmodning. Det er et legitimationsoplysninger, der kan bruge din saldo, så behandle det som en adgangskode: server- side kun, aldrig i en browser, aldrig i et lager. En lækket nøgle tilbagekaldes fra denne side og stopper med at arbejde med det samme.
curl https://theorem.chat/api/v1/account/ \
-H "Authorization: Bearer thm_live_xxxxxxxx.xxxxxxxxxxxxxxxx"
Base URL: https://theorem.chat/api/v1/. Anmodninger og svar er JSON. Versionen er i stien, så en bryde ændring skibe som v2 og din kode holder arbejder.
POST /api/v1/matches/
Start en match. Kun målet er påkrævet: lad panelet være ude og en standard lineup sidder fra forskellige leverandører, fordi modeller trænet på overlappende data deler blinde pletter og et panel, der er enig med sig selv er ikke bevis. match er i kø straks og arbejdet af en server, så anmodningen returnerer så snart det er accepteret.
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
}'
Felter
GET /api/v1/matches/{token}/
Hele match: status, accept kriterier og hvordan hver blev afgjort, regnskabsbogen af etablerede resultater, beviser bag hver afgørelse, og dommen, når der er en. En match kører i minutter til timer, så meningsmåling hvert par sekunder, mens live ~ svaret fortæller dig, hvornår du skal stoppe.
{
"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": "…"
}
Statuser: kø, kører, pause, needs_ funds, løst, udmattet, fast, mislykkedes. De sidste fire er terminal; pause, needs_funds, udmattet og fast kan genoptages.
POST /api/v1/matches/{token}/resume/
Giv en stoppet match flere runder eller mere budget. Alt det oprettede panel holdes! resultater er skrevet til en regnskabsbog én gang og aldrig re-afledt, og registrerede døde ender stoppe det gå tilbage i en tilgang, der allerede mislykkedes.
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"}'
Fejl
Hver fiasko har samme form. Branch på kode, som er stabil; besked er prosa og kan omformuleres.
{"error": {"code": "insufficient_balance",
"message": "Add credit or connect your own inference key…"}}
401 for en manglende eller tilbagekaldt nøgle, 402 når saldoen er tom, 404 for en token, der ikke er din, 409 for en match, der allerede kører, 429 når du går for hurtigt, 400 for noget, som anmodningen selv fik galt.
Procentgrænser
Optælling pr nøgle: 240 læser og 30 match starter i minuttet. Løs på formålet! Hvad der faktisk begrænser en match er, at det bruger din balance, og disse er her for at stoppe en retry loop eller en poller kører fladt ud. Over grænsen får du 429; poll en kører match hvert par sekunder snarere end kontinuerligt.
Fakturering er identisk med webstedet: du betaler pr. token til den offentliggjorte per-model sats, fra forudbetalt kredit eller din egen nøgle.
Hvordan fakturering fungerer