API

Sve što stranica radi, preko HTTP-a: navodi tvrdnju i traku koju mora očistiti, sjedi na panelu i anketi dok sudac ne riješi svaki kriterij. Isti panel, isto naplatno sredstvo, ista ograničenja potrošnje - bez preglednika.

Tvoj ključevi.

Ključevi su napravljeni od vašeg računa. Prijavite se ili napravite jedan - novi računi dobivaju početni kredit, što je dovoljno za pravi match.

Prijavite se Prijava
Autorizacija

Pošalji ključ kao nosilac na svaki zahtjev. To su vjerodajnice koje mogu potrošiti vaš balans, stoga ih tretirajte kao lozinku: samo na serveru, nikad u pregledniku, nikad u skladištu. Procijenjeni ključ se opozove sa ove stranice i prestaje raditi odmah.

curl https://theorem.chat/api/v1/account/ \
  -H "Authorization: Bearer thm_live_xxxxxxxx.xxxxxxxxxxxxxxxx"

Osnovni URL: https://theorem.chat/api/v1/. Zahtjevi i odgovori su JSON. Verzija je u putu, tako da se prekidna promjena šalje kao v2 i vaš kod i dalje radi.

POST /api/v1/matches/

Pokrenite match. Potrebna je samo svrha: ostavite panel vani i uobičajeni lineup je postavljen od različitih proizvođača, jer modeli obučeni na preklapanju podataka dijele slijepe tačke i panel koji se slaže sa samim sobom nije dokaz. match je odmah u redu i obrađen od strane servera, tako da se zahtjev vraća čim je prihvaćen.

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
  }'

Polja

  • goal — the claim, in your own words. Required.
  • rigor / rigor_preset — bar koji vas sudionik drži, doslovno ili po imenu: standard, publikacija, formalno, nagrada, odluka. Nepoznata unaprijed postavljena vrijednost se odbija umjesto da se tiho zamijeni za uobičajenu - biti osuđen po standardu koji niste tražili je gore od greške.
  • seats — dva do šest debatnih mjesta, svako ima model id iz GET /api/v1/models/ i opcionalni stav.
  • referee — model koji vlada kriterijima i ponovo provjerava dokaze, vrijedi da se potroši.
  • max_rounds, usd_ceiling — Dostizanje gornje granice zaustavlja match umjesto da troši preko nje, a pauzirana match nastavlja tamo gdje je stajala.
  • public — Objaviti gotovu match u javnoj galeriji.
GET /api/v1/matches/{token}/

Cijeli match: status, kriteriji prihvaćanja i kako je svaki bio riješen, knjiga utvrđenih rezultata, dokaz iza svake odluke, i presuda kada je jedna. match radi od minuta do sati, tako da se pita svakih nekoliko sekundi dok je živ - odgovor vam kaže kada da prestanete.

{
  "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": "…"
}

Statusi: u redu, u toku, pauzirano, needs_funds, riješeno, iscrpljeno, zaglavljeno, neuspješno. Zadnja četiri su terminalna; pauzirano, needs_funds, iscrpljeno i zaglavljeno se može nastaviti.

POST /api/v1/matches/{token}/resume/

Give a stopped match more rounds or more budget. Everything the panel established is kept — results are written to a ledger once and never re-derived, and recorded dead ends stop it walking back into an approach that already failed.

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"}'
Ostatak
  • GET /api/v1/ — što postoji, tako da klijent može pronaći svoj put bez ove stranice.
  • GET /api/v1/models/ — Modeli sa svojim nivoom, kontekstnim prozorima i stopama po milion tokena. Isti spisak, kao stranica.
  • GET /api/v1/matches/ — vaš matches, najnoviji prvi; filtriraj po statusu, stranici sa ograničenjem i offsetom.
  • GET /api/v1/account/ — balans, životni trošak i da li ste na prepaid kredit ili vlastiti zaključni ključ.
  • GET /api/v1/keys/, DELETE /api/v1/keys/{prefix}/ — Popis i opoziv ključeva. Prvi ključ može se samo kovati ovdje, u pregledniku.
Greške

Svaki neuspeh ima isti oblik. grana na kodu, koji je stabilan; poruka je proza i može se preoblikovati.

{"error": {"code": "insufficient_balance",
           "message": "Add credit or connect your own inference key…"}}

401 za nedostajući ili opozvani ključ, 402 kada je bilans prazan, 404 za token koji nije vaš, 409 za match koji je već pokrenut, 429 kada idete prebrzo, 400 za bilo što što je u zahtjevu pogrešno.

Limiti brzine

Brojeno po tipci: 240 čitanja i 30 pokretanja match minuta. Namjerno labavo - ono što zapravo ograničava match je da troši vaš balans, a to je ovdje da zaustavi petlju ponovnih pokušaja ili poller koji se ispuni. Preko ograničenja dobivate 429; porite match svakih nekoliko sekundi umjesto kontinuirano.

Naplata je identična kao i na stranici: plaćate po tokenu po objavljenoj stopi po modelu, od unaprijed plaćenog kredita ili vlastitog ključa. Kako funkcionira naplata