API

Duk abin da shafin yake yi, a kan HTTP: bayyana wani zargi da kuma bar wanda ya kamata ya tsaftace, zauna da wani fanel, da kuma zabar har sai mai yanke hukunci ya daidaita duk wani ka'ida. Fanel mai kama da, billa mai kama da, iyaka masu kama da - ba mai bincike ba.

Maɓallanka

An halitta maɓallu daga asusunka. Yi shiga, ko kuma ƙirƙiri ɗaya — asusun da aka sake samun su suna samun kuɗin farawa, wanda ya isa ga wani match na gaskiya.

QSql @ action
QDialogButtonBox

@ action

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

URL na farko: https://theorem.chat/api/v1/. Tambayar da amsawa sune JSON. Nau'in yana cikin hanya, don haka canji mai lalacewa yana jigilar kamar v2 kuma alamunka suna ci gaba da aiki.

POST /api/v1/matches/

Start a match. Only the goal is required: leave the panel out and a default lineup is seated from different vendors, because models trained on overlapping data share blind spots and a panel that agrees with itself is not evidence. The match is queued immediately and worked by a server, so the request returns as soon as it is accepted.

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

@ action

  • goal — @ action
  • rigor / rigor_preset — @ action
  • seats — biyu zuwa shida da suke tattaunawa, kowanne da wani model id daga GET /api/v1/models/ da wani zaɓi na matsayi.
  • referee — da model da dokoki a kan sharuddan da kuma sake duba da shaida. da kyau kashe a kan.
  • max_rounds, usd_ceiling — hard limits. Reaching the ceiling pauses the match rather than spending past it, and a paused match resumes exactly where it stopped.
  • public — publish the finished match to the public gallery.
GET /api/v1/matches/{token}/

The whole match: status, the acceptance criteria and how each was settled, the ledger of established results, the evidence behind every ruling, and the verdict once there is one. A match runs for minutes to hours, so poll every few seconds while live - the response tells you when to stop.

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

Jihohi: a cikin jerin gwano, tafiyar da, dakata, bukatun_fayil, warware, dakata. Na ƙarshe huɗu sune tashar; dakata, bukatun_fayil, dakata da kuma dakata za'a iya sake su.

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

Ka ba da wani da aka dakatar da match more rounds ko fiye da kasafin kudi. Duk abin da panel ya kafa an kiyaye shi - sakamakon an rubuta zuwa wani littafin sau ɗaya kuma ba a sake samunsa ba, kuma an riga an yi tafiya a cikin hanya da ta riga ta lalace.

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"}'
QFileDialog
  • GET /api/v1/ — @ action
  • GET /api/v1/models/ — seatable siffofin da su tier, context taga da per-million-token farashin. @ action
  • GET /api/v1/matches/ — your matches, newest first; filter by status, page with limit and offset.
  • GET /api/v1/account/ — @ action
  • GET /api/v1/keys/, DELETE /api/v1/keys/{prefix}/ — @ action
QFileDialog

@ action

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

401 ga maɓalli da aka rasa ko aka rufe, 402 idan adadin ya zama baƙi, 404 ga wata alamar da ba ta gare ka ba, 409 ga match da ke tafiyar da kanta, 429 idan kana tafiya da sauri, 400 ga duk wani abu da tambaya ta yi kuskure.

QFileDialog

Counted per key: 240 reads and 30 match starts a minute. 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.

Billa ne daidai da shafin: ka biya a kan kowane token a cikin da aka wallafa a kan kowane model farashin, daga prepaid kudi ko da nakafin. Yadda billa ke aiki