API

Konke okuyenza le ndawo, ngaphezulu kwe-HTTP: chaza isinqumo kanye nebha kufanele ihlanzwe, ibekwe iphaneli, futhi ivoti kuze kube ummeli uxazulule yonke imibandela. Iphaneli efanayo, i-invoyisi efanayo, amaphesenti afanayo okusetshenziswa — akukho isiphequluli.

Izinkinobho zakho

Izinkinobho zidalwa kusuka ku-akhawunti yakho. Ngena, noma yenza enye — ama-akhawunti amasha athola isiqalo se-credit, okuzokwanela ku-match eqiniso.

Bhala Ngena
Ukuqinisekisa

Thumela isithonjana njengentokazi ephathekayo nganoma yisiphi isicelo. Kuyintokazi engakwazi ukuchitha izimali zakho, ngakho yenza njengegama lokungenisa: isisebenzisi-sengxenye kuphela, ayikho kwi-browser, ayikho endawo yokugcinwa. Isithonjana esiphukile sizobuyiselwa emuva kusuka kulekhasi futhi sizoyeka ukusebenza ngokushesha.

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

Isisekelo URL: https://theorem.chat/api/v1/. Izicelo kanye nezingxoxo yi-JSON. Uhlobo lukhona kundlela, ngakho ushintsho oluphuthumayo luyahamba njenge-v2 futhi ikhodi yakho ihlala isebenza.

POST /api/v1/matches/

Qala i-match. Inhloso kuphela edingekayo: shiya indawo yokulawula ngaphandle futhi i-lineup ejwayelekile ihlala kusuka kubahlinzeki abahlukene, ngoba amamodeli aqeqeshiwe kudatha edlulayo abelana ngezindawo ezimnyama nendawo yokulawula evumelana nayo ayikho ibufakazi. I-match ifakwe emgodini ngokushesha futhi isebenza ngumhlinzeki, ngakho isicelo sibuyela ngokushesha lapho sivunyelwa.

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

Ama-fields

  • goal — isinqumo, ngezwi lakho. Kudingeka.
  • rigor / rigor_preset — ibha elingakuphatha, ngokusho noma ngegama: isilinganiso, ukushicilelwa, okusemthethweni, isipho, isigqibo. Isilungiselelo esingenalwazi silahlekile ngaphandle kokushintshana ngokukhululeka ngephutha — ukucwaswa ngokuhambisana nesilinganiso ongase ubuze ngaso kunzima kunephutha.
  • seats — ezimbili kuya kweziyisithupha ezixoxa iziqhingi, ngayinye imodeli id kusuka GET /api/v1/models/ kanye nesimo esikhethiwe.
  • referee — imodeli elawula izimo ezifanele futhi iphinde ibheka ubufakazi. Kufanele ukuchitha.
  • max_rounds, usd_ceiling — imingcele eqinile. Ukufinyelela i-loft imisa i-match endaweni yokuchitha ngaphambili, futhi i-match emiswa iqhubeka ngokuqondile lapho ihlala khona.
  • public — ukushicilela i-match eqediwe egumbini lokuxoxa lasekhaya.
GET /api/v1/matches/{token}/

I-match ephelele: isimo, izimo zokuqashwa kanye nendlela ngayinye yamiswa ngayo, i-leadger yemiphumela esungulwe, izimpawu ezingaphansi komthetho wonke, kanye nesinqumo uma kukhona enye. I-match ihamba imizuzu eminingana kuya emahorani, ngakho-ke ukhetho ngamasekondi ambalwa ngesikhathi sokuphila - impendulo itshela ukuthi yini lapho uyeka khona.

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

Izimo: zikhona, zisebenza, zihlehlisiwe, needs_funds, zixazululwe, zilahlekile, zikhathaza, zihluleke. Izimbili ezidlule ziyisiga-nyezi; zikhona, needs_funds, zihlehlisiwe futhi zikhathaza zingaqhubeka.

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

Sinikeze i-match ephuzile noma i-budget engaphezulu. Konke okusetshenzisiwe yi-panel kugcinwa - izimpendulo zibhalwe ku-leader kanye futhi azikho ziye-zivela, futhi izimo ezifile zirekhodiwe ziyeka ukubuyela emuva kundlela edlulele engeke iphumelele.

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"}'
Okushiwo abanye
  • GET /api/v1/ — okhona, ukuze umxhasi athole indlela yakhe ngaphandle kwalekhasi.
  • GET /api/v1/models/ — amamodeli akwazi ukubekwa endaweni ngohlobo lwawo, ifasitela lesimo kanye namaphesenti ayizinkulungwane-token. Uhlu olufanayo, njengekhasi.
  • GET /api/v1/matches/ — matches yakho, entsha kuqala; iqoqa ngokumo, ikhasi ngemikhawulo ne offset.
  • GET /api/v1/account/ — isilinganiso, ukuchitha isikhathi sokuphila kanye nokuthi ngabe ukhona ku-credit ekhokhelwe ngaphambili noma isici sakho sokuthola.
  • GET /api/v1/keys/, DELETE /api/v1/keys/{prefix}/ — hlela futhi ubuyisele izinkinobho. Isinkomba sokuqala singasetshenziswa lapha kuphela, ku msakazo.
Iphutha

Uhluzo lonke lunomqondo ofanayo. Isebe kukhodi, eliqinile; umlayezo uyisiqephu futhi ungaphinde ubhalwe kabusha.

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

401 uma isithonjana silahlekile noma sibuyiselwe emuva, 402 uma isibalo singenalutho, 404 uma isithonjana asikho sakho, 409 uma i-match isebenza, 429 uma uhamba ngokushesha kakhulu, 400 uma iyiphi inkinga icela iphutha.

Amaphesenti

Ibalo lomcibisholo ngamunye: 240 ufunde futhi 30 match iqala imizuzu. Loose on purpose — what actually limits a match is that it spends your balance, and these are here to stop a retry loop or a poller running flat out. Over the limit you get 429; poll a running match every few seconds rather than continuously.

Ukukhokha kufana nendawo: ukhokha nge-token ngayinye ngesilinganiso esishicilelwe ngemodeli ngayinye, kusuka ku-credit ekhokhelwe ngaphambili noma isithonjana sakho. Indlela ukukhokhwa ngayo