API

Wszystko co robi strona, w porównaniu z HTTP: podaje roszczenie i bar musi oczyścić, siedzieć panel, i ankiet dopóki sąd nie ustalić każde kryterium. Ten sam panel, ten sam rachunk, te same limity wydatków – brak przeglądarki.

Twoje kluczyki

Klucze są tworzone z konta. Zaloguj się lub utwórz – nowe konta otrzymują kredyt startowy, co wystarczy na prawdziwą match.

Podpisz Zalogowanie
Uwierzytelnienie

Wyślij klucz jako tokena na każde żądanie. Jest to kredencial, który może wydać saldo, więc traktuj go jak hasło: tylko serwer-bok, nigdy w przeglądarce, nigdy w repozytorium. Wyciekły klucz zostaje odwołany z tej strony i przestanie działać natychmiast.

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

Baza URL: https://theorem.chat/api/v1/. Żądania i odpowiedzi są JSON. Wersja jest na drodze, więc łamanie statków zmianowych jako v2 i kod ciągle działa.

POST /api/v1/matches/

Rozpocznij match. Wymagany jest tylko cel: niech panel wyjdzie z danego miejsca i domyślny zestaw siedzi od różnych dostawców, ponieważ modele wyszkolone na nakładających się miejscach udostępniania danych niezauważone są i panel, który sam się zgadza. match jest w kolejce natychmiast i pracował przez serwer, więc wniosek zwraca się, jak tylko zostanie przyjęty.

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

Pola

  • goal — Opis roszczenia we własnych słowach. Wymagane.
  • rigor / rigor_preset — bar, do którego dowodzi, dosłownie lub według nazwy: standard, publikacja, formalne, nagroda, decyzja. Nieznany ustawienie jest odmówione zamiast cicho wymienić na domyślny — być osądzony w stosunku do standardu, o który nie prosiłeś jest gorszy niż błąd.
  • seats — dwa do sześciu miejsc debatujących, każde model id z GET /api/v1/models / i opcjonalne stanowisko.
  • referee — model, który reguluje kryteria i ponownie sprawdza dowody. Warto wydać.
  • max_rounds, usd_ceiling — Twarde granice. Osiągnięcie sufitu zatrzymuje match zamiast wydawać obok niego, a zatrzymane match wznowi dokładnie tam, gdzie się zatrzymał.
  • public — Opublikować gotowe match do publicznej galerii.
GET /api/v1/matches/{token}/

Całe match: status, kryteria akceptacji i sposób ustalenia każdego, księga ustalonych wyników, dowody za każdym orzeczeniem, a werdykt, gdy jest jeden. match biegnie przez minuty do godzin, więc ankietowanie co kilka sekund w czasie życia – odpowiedź mówi, kiedy zatrzymać.

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

Statusy: w kolejce, w kolejce, wstrzymane, fundacje potrzebne, rozwiązane, wyczerpane, utknięte, nie udało się. Ostatnie cztery są terminalem; wstrzymane, potrzebne_ fundusze, wyczerpane i utknięte mogą być wznowione.

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

Podaj zatrzymane match więcej rund lub więcej budżetu. Wszystko, co utworzony panel jest przechowywany – wyniki są zapisywane do księgi raz i nigdy nie ponownie powołowane, i zapisane ślepe zaułki zatrzymują go w drodze do podejścia, które już nie udało się.

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"}'
Reszta.
  • GET /api/v1/ — To, co istnieje, więc klient może znaleźć sposób bez tej strony.
  • GET /api/v1/models/ — modele siedzące z ich poziomem, oknem kontekstowym i stawkami na milion. Ta sama lista, jak strona.
  • GET /api/v1/matches/ — matches, najnowsze, najpierw filtruj według stanu, strona z limitem i odsetkiem.
  • GET /api/v1/account/ — bilans, wydatki na życie i czy jesteś na kredyt przedpłaty lub własny klucz wyników.
  • GET /api/v1/keys/, DELETE /api/v1/keys/{prefix}/ — lista i cofnąć klucze. Pierwszy klucz może być wymiotowany tylko tutaj, w przeglądarce.
Błądy

Każda awaria ma taki sam kształt. Oddział na kod, który jest stabilny; wiadomość jest proza i może być przeformułowany.

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

401 dla brakującego lub cofniętego klucza, 402 kiedy bilans jest pusty, 404 dla tokenu, który nie jest twój, 409 dla match, który już działa, 429 kiedy idziesz za szybko, 400 dla czegokolwiek sam wniosek źle.

Limity stawek

Policzane na klucz: 240 reads i 30 match starts na minutę. Rozluźnij się celowo — co rzeczywiście ogranicza match to, że wydaje saldo, a te są tutaj, aby zatrzymać pętlę powtórzenia lub polera wybiega. Nad granicą dostaniesz 429; ankietować match co kilka sekund zamiast ciągle.

Rachunk jest identyczny z stroną: płacisz za jeden token w opublikowanej stawce za model, z kredytu przedpłatnego lub własnego klucza. Jak działa rachunki