API

Alt nettstedet gjør, over HTTP: oppgi et krav og linja det må rydde, plasser en rute og sjekk til referansen har gjort opp alle kriterier. Samme rute, samme fakturering, samme utgiftsgrenser – ingen nettleser.

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

  • goal — påstanden, med dine egne ord. Kreves.
  • rigor / rigor_preset — referanselinja inneholder et navn, et ord eller en standard: offentliggjøring, formell, premie, avgjørelse. En ukjent forhåndsinnstilling blir nektet i stedet for stille å bytte om på standardinnstillinga – å bli vurdert mot en standard du ikke ba om er verre enn en feil.
  • seats — to til seks omtalte seter, hver for seg en modell-ID fra GET /api/v1/modeller/ og en valgfri stilling.
  • referee — modellen som inneholder kriteriene og kontrollerer dokumentasjonen på nytt.
  • max_rounds, usd_ceiling — harde grenser. Når vi nå taket pauser match i stedet for å bruke forbi det, så gjenopptar en pause match akkurat der den stoppet.
  • public — publish the finished match to the public gallery.
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"}'
Resten
  • GET /api/v1/ — Hva finnes, så en klient kan finne sin vei uten denne siden.
  • GET /api/v1/models/ — setemodeller med deres nivå, kontekstvindu og per million symbolfrekvens. Samme liste, som en side.
  • GET /api/v1/matches/ — din matches, nyeste først. Filtrer etter status, side med grense og forskyvning.
  • GET /api/v1/account/ — saldo, levetid og om du har forhåndsbetalt kreditt eller din egen unersent-nøkkel.
  • GET /api/v1/keys/, DELETE /api/v1/keys/{prefix}/ — liste og trekk opp nøkler. Den første tasten kan bare slås på her, i en nettleser.
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