API

Tout sa sit la fè, sou HTTP: deklare yon revendikasyon ak bar li dwe klè, sit yon panel, ak sondaj jiskaske refè a te etabli chak kritè. menm panel, menm billing, menm limit depanse - pa gen navigatè.

Chwa ou yo

Chwa yo kreye soti nan kont ou. Enskri, oswa kreye yon — kont nouvo jwenn kredi kòmanse, ki se ase pou yon match reyèl.

Enskri Enskri
Auth

Envoye clé a kòm yon token porteur sou chak demann. Li se yon kredansyal ki ka depanse balans ou, se konsa trete li tankou yon modpas: sèlman bò serveurs, pa janm nan yon navigatè, pa janm nan yon repozitwa. Yon clé filtré se revoke nan paj sa a epi li pa travay imedyatman.

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

URL baz: https://theorem.chat/api/v1/. Rezon ki fè yo ak repons yo se JSON. Versiyon an se nan wout la, se konsa yon chanjman ki pèdi bato kòm v2 ak kòd ou kontinye ap travay.

POST /api/v1/matches/

Kòmanse yon matche. Se sèlman objektif la ki nesesè: kite panèl la deyò epi yon aliyman pa défaut se chita soti nan diferan vandè, paske modèl trete sou done ki kouche pataje pwen mawon ak yon panèl ki dakò ak li menm pa evidans. Matche a se mete nan liy imedyatman ak travay pa yon sèvè, se konsa ke demann lan retounen kòm byen vit ke li se aksepte.

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

Fòmil

  • goal — Remak: Enskri non ou, ak mo ou yo. Required.
  • rigor / rigor_preset — bar la referee kenbe ou a, literalman oswa pa non: estanda, piblikasyon, fòmèl, prim, desizyon. yon preset pa konnen se refize pi vit pase san yo pa swadizan swadizan pou default — yo dwe jije kont yon estanda ou pa mande se pi mal pase yon erè.
  • seats — de a sis plas pou debat, chak ak yon id modèl soti nan GET /api/v1/models/ ak yon pozisyon optional.
  • referee — modèl la ki regleman sou kritè yo ak re-verifye evidans. Vale a pena de gasto sou.
  • max_rounds, usd_ceiling — Reyalize plafon an pauze match la pi plis pase depanse pase li, ak yon match an pèsistans retounen egzakteman kote li te rete.
  • public — Publike matche a fini nan galeri piblik la.
GET /api/v1/matches/{token}/

Tout match la: estati, kritè asepte ak ki jan chak te rezoud, liv la nan rezilta yo etabli, prèv dèyè chak desizyon, ak verdik lè gen yon sèl. Yon match kouri pou minit a èdtan, se konsa sondaj chak kèk segonn pandan vityèl - repòtaj la di ou lè pou sispann.

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

Eta: nan liy, kouri, an pèsistans, bezwen_fonds, rezoud, echwe, bloke, fail. Kat dènye yo se terminal; an pèsistans, bezwen_fonds, echwe ak bloke ka retounen.

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

Tout sa ki te etabli pa panel la se kenbe - rezilta yo se ekri nan yon liv gwo yon fwa epi pa janm re-derived, ak enskri bout yo mouri-anpeche li soti nan mache tounen nan yon fason ki te deja pèdi.

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"}'
Rezon
  • GET /api/v1/ — Sa a se yon lis de sa ki egziste, pou yon kliyan ka jwenn li san yo pa gen paj sa a.
  • GET /api/v1/models/ — modèl seatable ak nivo yo, fenèt konjonksyon ak pousantaj pou milyon-token. Liy ki nan paj la.
  • GET /api/v1/matches/ — Jwenn match ou yo, pi nouvo an premye; filtre pa estati, paj ak limit ak offset.
  • GET /api/v1/account/ — balans, depans lavi ak si ou se sou kredi pre-paye oswa ou pwòp kle enfliyans.
  • GET /api/v1/keys/, DELETE /api/v1/keys/{prefix}/ — Liy ak revoke kle. Premye kle a ka sèlman fèt isit, nan yon navigatè.
Erè

Tout erè gen menm fòm. Branch sou kòd, ki se stab; mesaj se pwoz ak ka re- ekri.

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

401 pou yon kle ki manke oswa revoke, 402 lè balans la se vid, 404 pou yon senbòl ki pa ou, 409 pou yon matche ki deja ap kouri, 429 lè ou ap ale twò vit, 400 pou nenpòt bagay ke demann lan li menm te fè mal.

Limit pou pousantaj

Konte pou chak kle: 240 li ak 30 match kòmanse yon minit. Loose sou objektif — sa ki reyèlman limite yon match se ke li pase balans ou, epi yo se isit la pou anpeche yon retès boukl oswa yon poller kouri plat soti. Sou limit ou jwenn 429; polling yon match kouri chak kèk segonn pi pito pase kontinyèlman.

Billing se menm jan ak sit la: ou peye pou chak token nan pri a pibliye pou chak modèl, soti nan kredi prepaid oswa ou pwòp kle ou. Kijan bidjè travay