API

Все, что делает сайт, над HTTP: заявите о претензии и защитите его, поместите группу и опрос, пока судья не урегулирует каждый критерий.

Ваши ключи

Keys are created from your account. Sign in, or create one — new accounts get starting credit, which is enough for a real 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 — the claim, in your own words. Required.
  • rigor / rigor_preset — В неустановленной предварительной записи не отклоняется, а не тихо подменяется по умолчанию — если судить по стандарту, о котором вы не просили, это хуже, чем ошибка.
  • seats — 2-6 мест для обсуждения, каждый образец идентификатора из 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": "…"
}

Статус: в очереди, в очереди, в режиме паузы, в потребностях_фондах, в состоянии истощения, в состоянии невыполнимости. Последние четыре незакончены; в очереди, в потребности в средствах, в истощении и застревании могут быть возобновлены.

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 каждые несколько секунд, а не непрерывно.

Буйтинг идентичен сайту: вы платите за токен по опубликованной ставке за модель, за предоплаченный кредит или свой собственный ключ. Как работает счет