Dine nøkler
Nøkler lages fra kontoen din. Logg på, eller lag en – nye kontoer får start- kreditt, som er nok for en reell match.
Registrer
Logg inn
Autentisering
Send nøkkelen som et symbol for alle forespørsler. Det er en referanse som kan bruke balansen din, så behandle den som et passord: bare på tjenersiden, aldri i en nettleser, aldri i et lager. En lekket nøkkel blir trukket tilbake fra denne siden og slutter å virke med en gang.
curl https://theorem.chat/api/v1/account/ \
-H "Authorization: Bearer thm_live_xxxxxxxx.xxxxxxxxxxxxxxxx"
Basisadresse: https://theorem.chat/api/v1/. Forespørsler og svar er JSON. Versjonen er i stien, så en bryting skifte skip som v2 og koden din fortsetter å virke.
POST /api/v1/matches/
Start en match. Bare målet er nødvendig: la panelet være, og en standard linjeoppdeling sittende fra forskjellige leverandører, fordi modeller som har fått opplæring i overlappende blinde flekker med data, og et panel som er enig med seg selv, ikke er bevis. match ligger i kø umiddelbart og jobber av en tjener, så forespørselen returnerer så snart den blir godtatt.
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, godkjenningskriterier og hvordan hver ble slått opp, leder av etablerte resultater, bevisene bak hver avgjørelse, og domen når det er en. En match går i minutter til timer, så sjekk hvert par sekunder mens du lever – svaret forteller deg nå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": "…"
}
Status: køet, kjører, pauset, quicks_ funds, løst, tømt, satt fast, mislykket. De siste fire er terminal, pauset, quicks_ funds, tømt og fastlåst kan gjenopptas.
POST /api/v1/matches/{token}/resume/
Gi stoppet match mer budsjett. Alt som panelet etablerte beholdes – resultater skrives til en dagbok en gang og hentes aldri igjen, og registrerte dødde ender stopper den med å gå tilbake til en tilnærming som allerede mislykkes.
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"}'
Feil
Alle feil har samme form. Filial på kode, som er stabil. Meldinga er prosa og kan omformuleres.
{"error": {"code": "insufficient_balance",
"message": "Add credit or connect your own inference key…"}}
401 for en manglende eller tilbakekalt nøkkel, 402 når saldoen er tom, 404 for et symbol som ikke er din, 409 for en match som allerede kjører, 429 når du går fort, 400 for noe som forespørselen selv ble feil.
Rentegrenser
Telt per nøkkel: 240 leser og 30 match starter i minuttet. Løs med vilje – det som faktisk begrenser match er at det bruker balansen din, og disse er her for å stoppe en retest- sløyfe eller en sjekker som går flatt ut. Over grensen får du 429; sjekk match hvert sekund i stedet for kontinuerlig.
Fakturering er identisk med siden: du betaler pr. symbol etter den offentliggjorte pr. modell rente, fra forhåndsbetalt kreditt eller din egen nøkkel.
Hvordan fakturering virker