API

Zonse zomwe tsambalo limachita, pa HTTP: kunena kuti ndilo lamulo ndipo bar iyenera kuchotsa, kuyendetsa paneli, ndi kufunsa mpaka woyang'anira akwaniritse zonse zomwe zimafunikira. Palibe paneli, kulipira kofanana, kulipira kofanana - palibe browser.

Mavuto anu

Mavuto amapangidwa kuchokera ku akaunti yanu. Kulowa, kapena kupanga imodzi - akaunti yatsopano apeza kuyamba ngongole, zomwe ndi zokwanira kwa match.

Kulembetsa Kulowa
Kutsimikizira

Kutumiza chingwe ngati chingwe chonyamula pazosowa zonse. Ndi chitsimikizo chomwe chimagwiritsa ntchito ndalama zanu, choncho gwiritsani ntchito ngati mawu achinsinsi: pa server-side okha, nthawi zonse m'masamba osakira, nthawi zonse m'ma repository. Chingwe chotuluka chimatulutsidwa kuchokera patsambali ndipo chimalephera ntchito mwamsanga.

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

Base URL: https://theorem.chat/api/v1/. Mafunso ndi mayankho ndi JSON. Version ndi m'njira, kotero kugunda kusintha nsomba monga v2 ndi code yanu imakhala yogwira ntchito.

POST /api/v1/matches/

Kuyambira match. Koma zofuna zofunikira: kuchotsa panel ndi default lineup ndi kulowa kuchokera kwa opanga ena, chifukwa mafano ophunzira pa kugwirizana deta kugawana blind spots ndi panel kuti amagwirizana ndi yekha si umboni. The match ndi kunyamula mwamsanga ndi ntchito ndi m'modzi server, kotero kuti lamulo limakhalanso nthawi yomweyo pamene anavomerezedwa.

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

Madera

  • goal — mfundo zokhudzana ndi chindapusacho, mwa mawu anu.
  • rigor / rigor_preset — the bar the referee holds you to, verbatim or by name: standard, publication, formal, prize, decision. An unknown preset is refused rather than quietly swapped for the default — being judged against a standard you did not ask for is worse than an error.
  • seats — awiri mpaka asanu kukambirana malo, aliyense ndi mtundu id kuchokera GET /api/v1/models/ ndi zosafunikira stance.
  • referee — mtundu womwe umayendetsa pa zikhalidwe ndi kuyankhanso zidziwitso. Ndikofunika kulipira.
  • max_rounds, usd_ceiling — Kufika pansi pa msewu amaletsa match kuposa kugwiritsa ntchito kupita izo, ndi padded match imabwerera moyenera pamene anatha.
  • public — kufalitsa yatha match kwa anthu gallery.
GET /api/v1/matches/{token}/

The match lonse: khalidwe, zolinga kuvomereza ndi mmene aliyense ana settled, buku la zotsatira zokhazikitsidwa, umboni mmbuyo pa zonse lamulo, ndi chigamulo pamene pali mmodzi. A match amayenda kwa mphindi mpaka maola, kotero poll nthawi iliyonse mphindi zingapo pamene moyo - yankho akukuwuzani pamene kuletsa.

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

Statuses: queued, kuyendetsa, paused, needs_funds, anathamangitsa, exhausted, kulephera, analephera. The 4 zapitazo ndi terminal; paused, needs_funds, exhausted ndi kulephera angayambenso.

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

Kupatsa match opitilira match kapena ndalama zambiri. Zonse zomwe paneli idakhazikitsa zimasungidwa - zotsatira zimalemba ku ledar nthawi imodzi ndipo sizimachokeranso, ndipo zolemba zosatha zimalepheretsa kulowa m'njira yomwe yalephera.

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"}'
Kubwerera
  • GET /api/v1/ — zimene zilipo, kotero kuti kasitomala angapeze njira yake popanda nkhaniyi.
  • GET /api/v1/models/ — seatable mafano ndi tier awo, context zenera ndi per-million-token mitengo. Mmodzi wa mnda, monga tsamba.
  • GET /api/v1/matches/ — matches yanu, yatsopano yoyamba; filter ndi khalidwe, tsamba ndi malire ndi offset.
  • GET /api/v1/account/ — malire, moyo wogwiritsa ntchito ndi ngati inu ndinu pa prepaid ngongole kapena wanu yekha chida kumvetsa.
  • GET /api/v1/keys/, DELETE /api/v1/keys/{prefix}/ — Kulemba ndi kuchotsa mabowo. Mabowo oyamba angagwiritsidwe ntchito pano, m'manja mwa msakatuli.
Mavuto

Kulephera kuli ndi mtundu umenewu. Chigawo pa code, yomwe ndi yolimba; uthenga ndi malemba ndi angagwiritsidwe ntchito.

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

401 kwa kulephera kapena kulephera koyamba, 402 pamene malire ndi wosanjikiza, 404 kwa token kuti si wanu, 409 kwa match kuti ndi kale kuyendetsa, 429 pamene inu mukupitabe mofulumira, 400 kwa chilichonse lamulo la m'malo anaipa.

Kusinthanitsa

Kuwerengedwa pa batani: 240 amawerenga ndi 30 match amayamba mphindi. Loose pa ntchito - zimene mwamsanga amaletsa match ndi kuti amagwiritsa ndalama zanu, ndipo izi ndizipita kuletsa retry loop kapena poller kuyendetsa flat out. Pambuyo pa malire inu mupeza 429; poll a kuyendetsa match nthawi zonse masekondi angapo kuposa mosalekeza.

Kulipira ndi chimodzimodzi ndi tsambalo: mumalipira per token pa mtengo wosindikizidwa pa-model, kuchokera ku credit yolipira kapena chida chanu chokha. Momwe kulipira kumagwira ntchito