API

Gjithçka që bën site-i, mbi HTTP: deklaron një pretendim dhe barrën që duhet të pastrohet, vendos një panel, dhe sondazh deri sa gjykatësi të zgjidhë çdo kriter. I njëjti panel, i njëjti faturim, i njëjti limit shpenzimi - pa shfletues.

Çelësat e tu.

Kyçet janë krijuar nga llogaria juaj. Futu ose krijo një — llogaritë e reja marrin kredit fillestar, i cili është i mjaftueshëm për një match të vërtetë.

Regjistrohu Hyr
Autentifikim

Dërgo kyçin si token në çdo kërkesë. Ky është një kredencial që mund të shpenzojë bilancin tuaj, kështu që trajto atë si një fjalëkalim: vetëm në anën e serverit, kurrë në një shfletues, kurrë në një depozitë. Një kyç i rrjedhur do të anullohet nga kjo faqe dhe do të ndalet menjëherë.

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

URL e bazë: https://theorem.chat/api/v1/. Kërkesat dhe përgjigjet janë JSON. Versioni është në rrugë, kështu që një ndryshim i thyer dërgohet si v2 dhe kodi juaj vazhdon të funksionojë.

POST /api/v1/matches/

Fillon një match. Vetëm qëllimi është i nevojshëm: lë panelin jashtë dhe një linjë e paracaktuar është vendosur nga shitës të ndryshëm, sepse modelet e trajnuara në mbivendosjen e të dhënave ndajnë pika të verbëta dhe një panel që pajtohet me veten nuk është provë. match është në radhë menjëherë dhe punohet nga një server, kështu që kërkesa kthehet sapo pranohet.

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

Fusha

  • goal — pretendimin, me fjalët tuaja.
  • rigor / rigor_preset — standardi që ju mban gjykuesi, me fjalë të plota ose me emër: standard, publikim, formal, çmim, vendim. Një paracaktim i panjohur refuzohet në vend që të zëvendësohet me të paracaktuarin - të gjykohesh me një standard që nuk e ke kërkuar është më keq se një gabim.
  • seats — dy deri në gjashtë vende debatesh, secili me një id modeli nga GET /api/v1/models/ dhe një qëndrim opcional.
  • referee — Modeli që rregullon kriteret dhe rikontrollon provat, që ia vlen të shpenzohet.
  • max_rounds, usd_ceiling — Kur arrihet tavani, match-ta ndalen, në vend që të shpenzohen më tej, dhe match-ta e ndaluar rifillon pikërisht atje ku ka ndaluar.
  • public — Publiko match-ën e përfunduar në galerinë publike.
GET /api/v1/matches/{token}/

E gjithë match: gjendja, kriteret e pranimit dhe se si çdo njëri u zgjidh, libri i rezultateve të vendosura, provat pas çdo vendimi, dhe verdikti kur ka një. Një match punon për minuta deri në orë, kështu që pyet çdo disa sekonda ndërsa jeton - përgjigjet të tregojnë kur të ndalosh.

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

Gjendja: në radhë, në kryerjen, në pauzë, needs_funds, zgjidhur, i shteruar, i bllokuar, i dështuar. Katër të fundit janë terminale; i ndalë, needs_funds, i shteruar dhe i bllokuar mund të rifillojë.

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

Jepi një ndalesë match raunde më shumë ose më shumë buxhet. Gjithçka që paneli vendos është mbajtur - rezultatet janë shkruar në një shënim një herë dhe kurrë nuk ri-derdhen, dhe të regjistruara të bllokuara ndalon atë nga kthimi në një qasje që tashmë dështoi.

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"}'
Pjesa tjetër.
  • GET /api/v1/ — Çfarë ekziston, kështu që një klient mund të gjejë rrugën e vet pa këtë faqe.
  • GET /api/v1/models/ — Modelet e uljes me nivelin e tyre, dritare kontekst dhe për milion-token normat. E njëjta listë, si një faqe.
  • GET /api/v1/matches/ — matches juaj, më i riu i parë; filtrimi sipas gjendjes, faqe me kufi dhe offset.
  • GET /api/v1/account/ — balanca, shpenzimet e jetës dhe nëse jeni në kredit të parapaguar apo çelësi i vetë konkluzionit.
  • GET /api/v1/keys/, DELETE /api/v1/keys/{prefix}/ — listë dhe të heqë kyçin. kyçi i parë mund të krijohet vetëm këtu, në një shfletues.
Gabime

Çdo dështim ka të njëjtën formë. Dega në kod, që është e qëndrueshme; mesazhi është prozë dhe mund të riformulohet.

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

401 për një kyç të munguar ose të anulluar, 402 kur balanca është bosh, 404 për një token që nuk është juaja, 409 për një match që është tashmë në funksionim, 429 kur jeni duke shkuar shumë shpejt, 400 për çdo gjë që kërkesa vetë ka gabuar.

Limitet e shpejtësisë

Numruar për kyç: 240 lexime dhe 30 match nisje për minutë. E lëmuar me qëllim — ajo që në fakt kufizon një match është se ai harxhon balancën tuaj, dhe këto janë këtu për të ndaluar një cikl riprovimi ose një poller që po shkon jashtë. Mbi limitin ju merrni 429; pyet një match që po shkon çdo disa sekonda në vend të vazhdimisht.

Fatura është identike me faqen: ju paguani për token në normën e publikuar për model, nga krediti i parapaguar ose çelësi juaj. Si funksionon faturimi