API

网站所做的一切,都超过HTTP:指出一个要求和它必须清理的酒吧,一个板块,直到裁判解决了所有标准。 同一个板块,同样的账单,同样的支出限额 — — 没有浏览器。

你的钥匙

密钥从您的账户中创建。 签名或创建一个 — 新账户开始积分, 足够实际的 match 。

签名上签名 登录
验证

将密钥作为无记名的Token发送到每个请求中。 它是一个可以使用您的余额的证书, 所以把它当作密码处理 : 服务器边, 而不是浏览器, 永远也不会在仓库里。 从此页面上撤消一个泄漏的密钥, 并立即停止工作 。

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 — 每一个模型都来自Get/api/v1/models/和可选立场。
  • referee — 标准规则的模型 和重新核对证据。值得花费。
  • max_rounds, usd_ceiling — hard limits. Reaching the ceiling pauses the match rather than spending past it, and a paused match resumes exactly where it stopped.
  • public — publish the finished match to the public gallery.
GET /api/v1/matches/{token}/

The whole match: status, the acceptance criteria and how each was settled, the ledger of established results, the evidence behind every ruling, and the verdict once there is one. A match runs for minutes to hours, so poll every few seconds while live — the response tells you when to stop.

{
  "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/ — your matches, newest first; filter by status, page with limit and offset.
  • 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 for a missing or revoked key, 402 when the balance is empty, 404 for a token that is not yours, 409 for a match that is already running, 429 when you are going too fast, 400 for anything the request itself got wrong.

利率限额

Counted per key: 240 reads and 30 match starts a minute. Loose on purpose — what actually limits a match is that it spends your balance, and these are here to stop a retry loop or a poller running flat out. Over the limit you get 429; poll a running match every few seconds rather than continuously.

账单与网站相同:您按已公布的每套模型费率,通过预付积分或自己的钥匙,按每个Token支付。 开账单如何运作