API

Tot ce face site-ul, peste HTTP: afirmă o cerere și barul trebuie să clare, să stea un panou și sondaj până când arbitrul a stabilit fiecare criteriu. Același panou, aceeași facturare, aceleași limite de cheltuieli — fără browser.

Cheile tale

Cheile sunt create din contul dvs. Au fost conectate sau create una — noi conturi obțin credit de pornire, care este suficient pentru un real match.

Înregistrează Login
Autentificare

Trimite cheia ca un semn de transport pe fiecare cerere. Este un credincios care poate cheltui echilibrul, astfel tratează-l ca o parolă: la nivelul serverului, nu numai într-un browser, niciodată într-un depozit. O cheie scursă este revocată de pe această pagină și oprește funcționarea imediat.

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

URL de bază: https://theorem.chat/api/v1/. Solicitări și răspunsuri sunt JSON. Versiunea este în cale, astfel încât o schimbare de nave ca v2 și codul continuă să funcționeze.

POST /api/v1/matches/

Începe un match. Doar obiectivul este necesar: lăsați panoul în afara și un lineup implicit este asezat de la diferite furnizori, deoarece modelele instruite pe spoturile de opusare a datelor și un panoul care este de acord cu sine nu este dovezi. match este în coada imediat și funcționat de un server, astfel încât cererea se remite imediat după ce este acceptat.

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

Câmpuri

  • goal — Pretinderea, în propriile cuvinte.
  • rigor / rigor_preset — Barul pe care l-arbitrul o deține, versamet sau pe nume: standard, publicare, premiu, decizia. Un preset necunoscut este refuzat mai degrabă decât schimbat în linişte pentru neregulă — fiind judecat împotriva unui standard pe care nu l-ai cerut este mai rău decât o eroare.
  • seats — două la şase locuri de dezbatere, fiecare model de id de la GET /api/v1/models/ şi o poziţie opţională.
  • referee — modelul care reglementează criteriile și verifică de nou dovezile.
  • max_rounds, usd_ceiling — Limitele greu. Atingerea plafonului pauză match mai degrabă decât a cheltui peste el, și un match de întârziere reluează exact unde s-a oprit.
  • public — publică match în galerie publică.
GET /api/v1/matches/{token}/

Toată match: statutul, criteriile de acceptare şi modul în care fiecare a fost stabilit, ghidul rezultatelor stabilite, dovezile din spatele fiecărei hotărâri, şi verdictul, odată ce există una. A match se desfăşoară timp de câteva minute, aşa că sondajul la fiecare câteva secunde în viaţă – răspunsul vă spune când să se oprească.

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

Statusuri: în coada, rulare, oprire, needs_funds, rezolvate, epuizate, blocate, eșuate. Ultimele patru sunt terminale; oprite, needs_funds, epuizat și blocate pot fi reluate.

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

Dă-le o dată match de runde sau mai mult buget. Tot ce este stabilit panou este păstrat – rezultatele sunt scrise unui registru o dată și nu se re-deriva, și a înregistrat sfârșitul mort opriți-l de mers înapoi într-o abordare care deja a eșuat.

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"}'
Restul
  • GET /api/v1/ — Ce există, astfel încât un client poate găsi calea fără această pagină.
  • GET /api/v1/models/ — modele de bază cu nivel, fereastra de context și rate de per milion de token. Aceeaşi listă, ca o pagină.
  • GET /api/v1/matches/ — matches, cel mai nou prim; filtra prin stare, pagina cu limită și offset.
  • GET /api/v1/account/ — Echilibrul, cheltuirea vieţii şi dacă sunteţi pe creditul prepagat sau cheia de inferenţiere.
  • GET /api/v1/keys/, DELETE /api/v1/keys/{prefix}/ — lista și revocă cheile. Prima cheie poate fi mentionată aici, într-un browser.
Eroare

Fiecare eșec are aceeași formă. Branch pe cod, care este stabil; mesajul este proa și poate fi reformulat.

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

401 pentru o cheie lipsă sau revocată, 402 atunci când soldul este gol, 404 pentru un token care nu este al tău, 409 pentru un match care este deja rulment, 429 atunci când mergeți prea repede, 400 pentru orice cerere în sine a fost greșit.

Limitele ratei

Numărul pe cheie: 240 citiri şi 30 match începe un minut. Linişte la scop — ceea ce limitează un match este că îşi petrece echilibrul, iar acestea sunt aici pentru a opri o bucla de repetiţie sau un pollector care se încheie. Pe limita obţine 429; sondaj un match la fiecare câteva secunde, mai degrabă decât continuu.

Facturarea este identică cu site-ul: plăteşti pe token la rata publicată pe model, de la creditul prepaid sau cheia ta. Cum factură funcționează