API

Alles, was die Website tut, über HTTP: Geben Sie einen Anspruch und die Bar muss es klar, Sitz ein Panel, und Umfrage, bis der Schiedsrichter hat jedes Kriterium geregelt.

Ihre Schlüssel

Schlüssel werden von Ihrem Konto erstellt. Melden Sie sich an oder erstellen Sie einen — neue Konten erhalten Startguthaben, was für eine echte match genug ist.

Registrieren Anmelden
Authentifizierung

Senden Sie den Schlüssel als Träger-Token auf jeder Anfrage. Es ist ein Credential, das Ihr Guthaben verbringen kann, so behandeln Sie es wie ein Passwort: Server-Seite nur, nie in einem Browser, nie in einem Repository. Ein undichter Schlüssel wird von dieser Seite widerrufen und hört sofort auf zu arbeiten.

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

Basis-URL: https://theorem.chat/api/v1/. Anfragen und Antworten sind JSON. Die Version befindet sich im Pfad, also ein Bruch ändert sich als v2 und Ihr Code funktioniert weiter.

POST /api/v1/matches/

Starten Sie einen match. Nur das Ziel ist erforderlich: Lassen Sie das Panel aus und eine Standard-Lineup ist von verschiedenen Anbietern sitzen, weil Modelle auf überlappende Daten teilen blinde Spots trainiert und ein Panel, das sich mit sich selbst ist kein Beweis. Die match wird sofort in die Warteschlange gestellt und von einem Server gearbeitet, so dass die Anfrage zurück, sobald sie akzeptiert wird.

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

Felder

  • goal — die Forderung, in Ihren eigenen Worten. Erforderlich.
  • rigor / rigor_preset — die Bar, an die der Schiedsrichter Sie hält, wörtlich oder namentlich: Standard, Veröffentlichung, formal, Preis, Entscheidung. Eine unbekannte Voreinstellung wird abgelehnt, anstatt leise gegen den Standard zu tauschen — an einem Standard, den Sie nicht verlangt haben, zu beurteilen ist schlimmer als ein Fehler.
  • seats — zwei bis sechs Diskussionssitze, jeweils ein Modell ID von GET /api/v1/models/ und eine optionale Haltung.
  • referee — das Modell, das die Kriterien regelt und die Beweise überprüft.
  • max_rounds, usd_ceiling — Die Decke zu erreichen hält die match eher als Ausgaben vorbei, und eine Pause match wieder genau dort, wo es aufgehört hat.
  • public — veröffentlichen die fertige match in die öffentliche Galerie.
GET /api/v1/matches/{token}/

Die ganze match: Status, die Akzeptanzkriterien und wie jeder geregelt wurde, das Buch der etablierten Ergebnisse, die Beweise hinter jeder Entscheidung, und das Urteil, wenn es ein. Eine match läuft für Minuten bis Stunden, so Umfrage alle paar Sekunden während live - die Antwort sagt Ihnen, wann zu stoppen.

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

Statuses: Warteschlange, ausgeführt, angehalten, requireds_funds, gelöst, erschöpft, sticked, fehlgeschlagen. Die letzten vier sind Terminals; angehalten, requireds_funds, erschöpft und sticked können wieder aufgenommen werden.

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

Geben Sie eine gestoppte match mehr Runden oder mehr Budget. Alles, was das Panel eingerichtet wird, wird gehalten – Ergebnisse werden einmal in ein Buch geschrieben und nie wieder abgeleitet, und aufgezeichnete Sackgassen stoppen es, zurück in einen Ansatz zu gehen, der bereits gescheitert.

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"}'
Die übrigen
  • GET /api/v1/ — was existiert, so dass ein Client ohne diese Seite seinen Weg finden kann.
  • GET /api/v1/models/ — sitzbare Modelle mit ihren Stufen-, Kontextfenster- und Per-Millionen-Token-Raten. Dieselbe Liste, wie eine Seite.
  • GET /api/v1/matches/ — Ihre matches, neueste erste; Filter nach Status, Seite mit Limit und Offset.
  • GET /api/v1/account/ — Balance, lebenslange Ausgaben und ob Sie auf Prepaid-Kredit oder Ihre eigenen Schlussfolgerung Schlüssel.
  • GET /api/v1/keys/, DELETE /api/v1/keys/{prefix}/ — liste und entferne Schlüssel. Der erste Schlüssel kann nur hier, in einem Browser, geprägt werden.
Fehler

Jeder Fehler hat die gleiche Form. Zweig auf Code, der stabil ist; Nachricht ist Prosa und kann umformuliert werden.

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

401 für einen fehlenden oder widerrufenen Schlüssel, 402 wenn das Gleichgewicht leer ist, 404 für ein Token, das nicht dein ist, 409 für einen bereits laufenden match, 429 wenn du zu schnell gehst, 400 für alles, was die Anfrage selbst falsch gemacht hat.

Steuersätze

Gezählt pro Schlüssel: 240 liest und 30 match beginnt eine Minute. Lockere Absicht — was tatsächlich begrenzt eine match ist, dass es Ihr Guthaben ausgibt, und diese sind hier, um eine Wiederholung Schleife oder einen Poller laufen flach aus. Über die Grenze erhalten Sie 429; Umfrage eine match alle paar Sekunden statt kontinuierlich.

Die Abrechnung ist identisch mit der Website: Sie zahlen pro Token zum veröffentlichten per-Modell-Rate, von Prepaid-Kredit oder Ihrem eigenen Schlüssel. Wie die Abrechnung funktioniert