API

Всичко, което сайтът прави, в сравнение с HTTP: да издаде твърдение и бара той трябва да изясни, седне на панел, и анкета, докато съдията е урежда всеки критерий. Същият панел, еднакъв обчисления, същите ограничения на разходите - без браузър.

Ключовете ти.

Ключовете са създадени от вашия акаунт. Впишете се или създавайте един — новите сметки получават начален кредит, което е достатъчно за реални match.

Записване Вход
Автентифициране

Изпрати ключа като носител на всеки искане. Това е удостоверение, което може да похарчи баланса си, така че третирайте го като парола: само на сървъра, никога в браузър, никога в репазитор. Изтекъл ключ се оттече от тази страница и спира да работи незабавно.

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

Базов URL: https://theorem.chat/api/v1/. Заявленията и отговорите са JSON. Версията е на път, така че разрушаване на промени кораби като v2 и вашия код продължава да работи.

POST /api/v1/matches/

Старт match. Само целта е необходима: да оставите панела навън и по подразбиране се състои от различни доставчици, защото модели, обучени за покриване на данните споделят слепи точки и панел, който се съгласява със себе си не е доказателство. match се поставя в опашка незабавно и работи от сървър, така че искането се завърна веднага, щом се приеме.

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

Поля

  • goal — Търся, с вашите думи.
  • rigor / rigor_preset — барът ви държи, дословно или по име: стандарт, публикуване, формален, награда, решение. Неизвестен преднастройка е отказан, вместо тихо подменяне за неизпълнен — да бъдете съдени по стандарт, който не сте искали е по-лошо от грешка.
  • seats — 2 до 6 дискусии, всеки модел ID от GET /api/v1/models / и опционална позиция.
  • referee — модел, който определя критериите и проверява отново доказателствата.
  • max_rounds, usd_ceiling — Достигането на тавана спира match, вместо да прекара покрай него, а спирането match възобновява точно там, където е спрял.
  • public — публикуват окончателните match на публична галерия.
GET /api/v1/matches/{token}/

Цялата match: статус, критериите за приемане и как всеки е бил уреден, счетоводната книга на установените резултати, доказателствата зад всяко решение, и присъдата, след като има една. match бягат за минути до часове, така че анкета на всеки няколко секунди докато е жива – отговорът ви казва кога да спрете.

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

Статуси: редица, задействана, паузирана, needs_ funds, решена, изчерпана, заглавена, неуспешна. Последните четири са терминални; паузирани, needs_ funds, изчерпани и заглавени могат да бъдат възобновени.

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

Give a stopped match more rounds or more budget. Everything the panel established is kept — results are written to a ledger once and never re-derived, and recorded dead ends stop it walking back into an approach that already failed.

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"}'
Останалото.
  • GET /api/v1/ — Каквото съществува, така че клиентът да намери пътя си без тази страница.
  • GET /api/v1/models/ — Модели за седалки с техните нива на ниво, контекстен прозорец и цени на всеки милион. Същият списък, като страница.
  • GET /api/v1/matches/ — matches, най-новия, първо; филтър по състояние, страница с граници и офсет.
  • GET /api/v1/account/ — баланс, разходи за живота и дали сте на предплатени кредит или собствения си ключ за изчисляване.
  • GET /api/v1/keys/, DELETE /api/v1/keys/{prefix}/ — Изброяване и отнемане на ключове. Първият ключ може да бъде изработен само тук, в браузър.
Грешка

Всеки неуспех има еднаква форма. Разклонение на кода, който е стабилен; съобщението е проза и може да бъде преработено.

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

401 за липсващ или отнема ключ, 402 когато балансът е празен, 404 за жетон, който не е ваш, 409 за match, който вече работи, 429, когато отивате твърде бързо, 400 за нещо, което искането се обърка.

Гранични стойности

Преброен на ключ: 240 чете и 30 match започва на минута. Разпуснете с цел - това, което всъщност ограничава match е, че той харчи баланса си, а те са тук, за да спре повторното повторение или опресняч, който тича на разстояние. Над границата получавате 429; анкета match на няколко секунди, вместо непрекъснато.

Билингът е идентичен на сайта: вие плащате на жетон на публикуваната за модел процент, от предварително платен кредит или собствения си ключ. Как работи с парите