API

Усё, што сайт робіць праз HTTP: вызначае прэтэнзію і радок, які ён павінен ачысціць, усталёўвае панель і галасуе, пакуль арбітр не вырашыць усе крытэры. Тая ж панель, тое ж плацяжы, тыя ж абмежаванні выдаткаў - без браўзэра.

Вашы ключы

Ключы ствараюцца з вашага рахунку. Увайдзіце ў сістэму або стварыце новы рахунак - новыя рахункі атрымліваюць стартавыя крэдыты, якіх дастаткова для рэальнага спалучэння.

Падпісацца Уваход
Аўтарызацыя

Дасылаць ключ як знак носителя пры кожным запыце. Гэта ідэнтыфікатар, які можа выдаткаваць ваш баланс, таму карыстайцеся ім як паролем: толькі на серверы, ніколі ў браўзэры, ніколі ў сховішчы. Выцечкі ключа адмяняюцца з гэтай старонкі і перастаюць працаваць неадкладна.

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/

Пачаць суадносіны. Неабходна толькі мэта: пакінуць панель і па змаўчанні ўсталяваць суадносіны з розных вытворцаў, бо мадэлі, якія навучаюцца на перакрываючыхся дадзеных, маюць агульныя сляпыя плямы, і панель, якая супадае з сабой, не з' яўляецца доказам. Суадносіны неадкладна ставіцца ў чаргу і апрацоўваецца серверам, таму запыт вяртаецца як толькі ён будзе прыняты.

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 — ад двух да шасці месцаў для абмеркавання, кожнае з якіх мае ідэнтыфікатар мадэлі з GET /api/v1/models/ і дадатковую пазіцыю.
  • referee — мадэль, якая кіруе крытэрамі і перапрацоўвае доказы. Варта выдаткаваць на яе грошы.
  • max_rounds, usd_ceiling — жорсткія межы. Дасягненне верхняга межа прыпыняе гульню, а не перавышае яе, і прыпыненая гульня працягваецца ад таго месца, дзе яна была спыненая.
  • public — апублікаваць завершаны матч у публічнай галерэі.
GET /api/v1/matches/{token}/

Уся гульня: стан, крытэрый прыняцця і як кожны быў вырашаны, лік вызначаных вынікаў, доказы за кожным рашэннем і вердыкт пасля таго, як ён быў зроблены. Гульня доўжыцца ад некалькіх хвілін да гадзін, таму праверце кожныя некалькі секунд, калі гульня жывая - адказ паведаміць вам, калі спыніць гульню.

{
  "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_ fund, вырашана, вычарпаная, затрыманая, памылка. Апошнія чатыры стану - тэрмінальныя; павольны, needs_ fund, вычарпаны і затрыманы могуць быць працягнутыя.

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

Дадаць больш раундаў або больш бюджэту для спыненага матчу. Усё, што ўсталявана на панэлі, захоўваецца - вынікі запісваюцца ў кнігу адзін раз і ніколі не выводзяцца зноў, а запісаныя застоі перашкаджаюць вяртанню да падходу, які ўжо не атрымаўся.

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/ — Вы можаце знайсці вашыя адпаведнасці, новыя ў першую чаргу; фільтраваць па стане, старонцы з абмежаваннем і зрушэннем.
  • 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 для спалучэння, якое ўжо працуе, 429 калі вы ідзеце занадта хутка, 400 для чаго запыт сам па сабе не атрымаўся.

Абмежаванні хуткасці

Падлік на ключ: 240 чытанняў і 30 стартаў суадносін за хвіліну. Неабмежаваная накіраванасць - што сапраўды абмяжоўвае суадносіны, гэта тое, што ён выдаткаваў ваш баланс, і яны тут, каб спыніць паўторную спробу або выкарыстанне полера. За межамі гэтага абмежавання вы атрымліваеце 429; праверыць працуючыя суадносіны кожныя некалькі секунд, а не пастаянна.

У тэксце гаворыцца пра тое, што ўсе рэчы, якія з'яўляюцца ў тэксце, маюць сваё паходжанне, або з'яўляюцца вынікам дзейнасці чалавека. Як працуе разлік