La API

Ĉio, kion la retejo faras, per HTTP: deklari postulon kaj la barelon, kiun ĝi devas malplenigi, sidi panelon, kaj voĉdoni ĝis la arbitraciisto solvis ĉiun kriterion. Sama panelo, sama fakturado, sama elspezolimo - sen retumilo.

Viaj ŝlosiloj

Ŝlosiloj estas kreitaj el via konto. Ensalutu aŭ kreu novan konton - novaj kontoj ricevas komencan krediton, kiu sufiĉas por vera kongruo.

Subskribi Saluto
Aŭtentigo

Sendi la ŝlosilon kiel portantan signon je ĉiu peto. Ĝi estas identigilo, kiu povas elspezi vian monon, do traktu ĝin kiel pasvorton: nur servile, neniam en retumilo, neniam en deponejo. Elfluinta ŝlosilo estas revokita de tiu paĝo kaj ĉesas funkcii tuj.

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

Baza URL: https://theorem. chat/ api/ v1 /. Petoj kaj respondoj estas JSON. La versio estas en la vojo, do rompoŝanĝo estas sendita kiel v2 kaj via kodo daŭre funkcias.

POST /api/v1/matches/

Komenci kongruon. Nur la celo estas bezonata: lasi la panelon ekstere kaj apriora aranĝo estas metita de malsamaj provizantoj, ĉar modeloj trejnitaj sur koincida datumo kunhavas blindajn punktojn kaj panelo kiu konsentas kun si mem ne estas pruvo. La kongruo estas envicigata tuj kaj prilaborita de servilo, do la peto revenas tuj kiam ĝi estas akceptita.

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

Kampoj

  • goal — la postulo, laŭ viaj propraj vortoj. Necesa.
  • rigor / rigor_preset — la normo, kiun la juĝisto postulas de vi, laŭvorte aŭ laŭ nomo: normo, publikaĵo, formala, premio, decido. Nekonata antaŭagordo estas malakceptita anstataŭ silente anstataŭigita per la defaŭlta - esti juĝita laŭ normo, kiun vi ne petis, estas pli malbona ol eraro.
  • seats — du al ses debatantaj seĝoj, ĉiu modelo id de GET /api/v1/models/ kaj opcia pozicio.
  • referee — la modelo kiu regas la kriteriojn kaj rekontrolas la pruvojn. Estas valora elspezi por ĝi.
  • max_rounds, usd_ceiling — malfacilaj limoj. Se vi atingas la plafonon, vi paŭzas la ludon anstataŭ pasigi ĝin, kaj paŭzita ludo daŭras ĝuste tie, kie ĝi ĉesis.
  • public — publikigi la finitan ludon al la publika galerio.
GET /api/v1/matches/{token}/

La tuta ludo: stato, akcepto-kriterioj kaj kiel ĉiu estis solvita, la libro de la fiksitaj rezultoj, la pruvo malantaŭ ĉiu decido, kaj la verdikto kiam estas unu. Ludo daŭras dum minutoj ĝis horoj, do voĉdonu ĉiun kelkajn sekundojn dum vivas - la respondo diras al vi kiam halti.

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

Statusoj: enviĉita, rulanta, paŭzita, bezonas_fondojn, solvita, elĉerpita, blokita, malsukcesa. La lastaj kvar estas terminalaj; paŭzita, bezonas_fondojn, elĉerpita kaj blokita povas esti rekomencita.

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

Donu al haltigita ludo pli da rondoj aŭ pli da buĝeto. Ĉio, kion la panelo starigis, estas konservita - rezultoj estas skribitaj al libro unufoje kaj neniam re- derivitaj, kaj registritaj senfinaj finaĵoj malhelpas ĝin reveni al aliro, kiu jam malsukcesis.

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"}'
La resto
  • GET /api/v1/ — kio ekzistas, por ke kliento povu trovi sian vojon sen tiu paĝo.
  • GET /api/v1/models/ — seatingable modeloj kun ilia nivelo, kunteksta fenestro kaj per-miliono-token tarifoj. La sama listo, kiel paĝo.
  • GET /api/v1/matches/ — @ title: window
  • GET /api/v1/account/ — balance, lifetime spend and whether you are on prepaid credit or your own inference key.
  • GET /api/v1/keys/, DELETE /api/v1/keys/{prefix}/ — list kaj revoki ŝlosilojn. La unua ŝlosilo nur povas esti kreita tie ĉi, en foliumilo.
Eraroj

@ info

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

401 por mankanta aŭ revokita ŝlosilo, 402 kiam la saldo estas malplena, 404 por signo kiu ne estas via, 409 por kongruo kiu jam ruliĝas, 429 kiam vi iras tro rapide, 400 por io ajn la peto mem malsukcesis.

Limitoj de rapideco

Nombrita per klavo: 240 legaĵoj kaj 30 kongruaj startoj po minuto. Malferma intence - kio vere limigas kongruon estas ke ĝi elspezas vian monon, kaj tiuj ĉi estas tie por haltigi reprovan ciklon aŭ polerilon kiu elĉerpiĝas. Super la limo vi ricevas 429; polari rulantan kongruon ĉiun kelkajn sekundojn anstataŭ daŭre.

La kostoj estas identaj al la retejo: vi pagas po token laŭ la publikigita modelo-prezo, el antaŭpagita kredito aŭ via propra ŝlosilo. Kiel funkcias fakturado