Le chiavi
Keys are created from your account. Sign in, or create one — new accounts get starting credit, which is enough for a real match.
Iscriviti
Accesso
Autenticazione
Invia la chiave come token al portatore su ogni richiesta. È una credenziale che può spendere il tuo saldo, quindi trattala come una password: solo lato server, mai in un browser, mai in un repository. Una chiave trapelata viene revocata da questa pagina e smette di funzionare immediatamente.
curl https://theorem.chat/api/v1/account/ \
-H "Authorization: Bearer thm_live_xxxxxxxx.xxxxxxxxxxxxxxxx"
URL di base: https://theorem.chat/api/v1/. Le richieste e le risposte sono JSON. La versione è nel percorso, quindi un cambiamento di rotta navi come v2 e il codice continua a funzionare.
POST /api/v1/matches/
Avviare un match. L'obiettivo è solo quello: lasciare fuori il pannello e la lineup predefinita è seduta da diversi fornitori, perché modelli addestrati su spot non vedenti sovrapposti e un pannello che concorda con se stesso non è prova. L'match viene messo in coda immediatamente e lavorato da un server, quindi la richiesta ritorna non appena è accettata.
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
}'
Campi
GET /api/v1/matches/{token}/
L'intero match: stato, i criteri di accettazione e come ciascuno è stato risolto, il registro dei risultati stabiliti, le prove dietro ogni sentenza, e il verdetto una volta che c'è uno. Un match funziona per minuti a ore, quindi sondaggi ogni pochi secondi mentre in diretta...
{
"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": "…"
}
Stato: in coda, in esecuzione, in pausa, deces_funds, risolto, esaurito, bloccato, fallito. Gli ultimi quattro sono terminali; in pausa, deces_funds, esauriti e bloccati possono essere ripresi.
POST /api/v1/matches/{token}/resume/
Dare un pausa match più giri o più budget. Tutto il pannello stabilito è mantenuto risultati
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"}'
Errori
Ogni guasto ha la stessa forma. Ramo sul codice, che è stabile; il messaggio è in prosa e può essere riformulato.
{"error": {"code": "insufficient_balance",
"message": "Add credit or connect your own inference key…"}}
401 per una chiave mancante o revocata, 402 quando il saldo è vuoto, 404 per un token che non è tuo, 409 per un match che è già in esecuzione, 429 quando si sta andando troppo veloce, 400 per qualsiasi cosa la richiesta stessa ha sbagliato.
Limiti di frequenza
Contato per chiave: 240 letture e 30 match inizia un minuto. Loose di proposito... ciò che effettivamente limita un match è che spende il vostro saldo, e questi sono qui per fermare un ciclo di riprova o un sondaggio che corre piatto fuori. Oltre il limite si ottiene 429; sondaggio un esecuzione match ogni pochi secondi, piuttosto che continuamente.
La fatturazione è identica al sito: si paga per token al tasso pubblicato per modello, dal credito prepagato o dalla propria chiave.
Come funziona la fatturazione