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/

Start a match. Only the goal is required: leave the panel out and a default lineup is seated from different vendors, because models trained on overlapping data share blind spots and a panel that agrees with itself is not evidence. The match is queued immediately and worked by a server, so the request returns as soon as it is accepted.

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

状態: キュー中、実行中、一時停止中、資金が必要、解決済み、使い切り、ストップ、失敗。最後の4つはターミナルで、一時停止中、資金が必要、使い切り、ストップは再開できます。

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 はキーが欠けたり、 取り消された場合、402 はバランスが空になった場合、404 は自分のものでないトークン、409 は既に動いている match の場合、429 は速すぎた場合、400 は要求自体が間違っていた場合、401 は 401 の 402 は 401 の 403 は 403 の 404 は 404 の 405 は 405 の 406 は 406 の 407 は 407 の 408 は 408 の 409 は 409 の 409 は 409 の 409 は 409 の 409 は 409

速度制限

キーごとに計算: 1 分間に 240 読み込みと 30 match 起動。意図的に緩やかにしています。match の実際の制限は残高を消費することであり、これは再試行ループやポラリーのフラットアウトを防ぐためです。制限を超えると 429 になります。続けて動作している match をポールするのではなく、数秒ごとにポールします。

請求はサイトと同じで、公開されたモデルごとの料金でトークンごとに支払い、プリペイドクレジットまたは自分の鍵から支払う。 請求の仕組み