As suas chaves
As chaves são criadas a partir da sua conta. Entre ou crie uma — novas contas recebem crédito inicial, o que é suficiente para um real match.
Inscrever-se
Login
Autenticação
Enviar a chave como um token de portador em cada pedido. É um credencial que pode gastar o seu saldo, então trate-o como uma senha: o lado do servidor apenas, nunca em um navegador, nunca em um repositório. Uma chave vazada é revogada desta página e pára de funcionar imediatamente.
curl https://theorem.chat/api/v1/account/ \
-H "Authorization: Bearer thm_live_xxxxxxxx.xxxxxxxxxxxxxxxx"
URL da base: https://theorem.chat/api/v1/. Pedidos e respostas são JSON. A versão está no caminho, por isso uma mudança de navegação como v2 e seu código continua a funcionar.
POST /api/v1/matches/
Comece um match. Só é necessáriobjetivo: deixar o painel fora e um lineup padrão está sentado de diferentes fornecedores, porque modelos treinados em pontos sobrepostos compartilhar dados e um painel que concorda com si não é evidência. O match é encadeado imediatamente e trabalhado por um servidor, assim o pedido retorna assim que é aceite.
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
}'
Campos
GET /api/v1/matches/{token}/
O estado, os critérios de aceitação e de como cada um foi resolvido, o livro de resultados estabelecidos, as provas por trás de cada decisão, e o veredicto uma vez que existe um. A match corre por minutos a horas, assim sonda a cada poucos segundos enquanto está vivo — a resposta diz-lhe quando parar.
{
"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": "…"
}
Estado: encadeado, executado, pausado, needs_funds, resolvido, exausto, preso, falhado. Os últimos quatro são terminal; pausado, needs_funds, exausto e preso podem ser retomados.
POST /api/v1/matches/{token}/resume/
Dê um tempo de match mais ou mais voltas ou mais orçamento. Tudo o que o painel estabelecido é mantido – os resultados são escritos para um livro uma vez e nunca re-derrived, e registrou extremidades mortas parar de voltar para uma abordagem que já falha.
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"}'
Erros
Cada falha tem a mesma forma. Branco no código, que é estável; mensagem é prosa e pode ser reformulado.
{"error": {"code": "insufficient_balance",
"message": "Add credit or connect your own inference key…"}}
401 para uma chave faltante ou revogada, 402 quando o saldo está vazio, 404 para um token que não é seu, 409 para um match que já está a correr, 429 quando você está indo muito rápido, 400 para qualquer coisa que o pedido em si se enganou.
Limites de taxa
Contado por chave: 240 lidas e 30 match começa por minuto. Solta por propósito — o que realmente limita um match é que ele gasta o seu saldo, e estes estão aqui para parar um loop de repetição ou um polender a correr plano fora. Sobre o limite você recebe 429; pesquisa um match a cada poucos segundos em vez de continuamente.
A facturação é idêntica ao site: você paga por token à taxa publicada por modelo, a partir de crédito pré-pago ou sua própria chave.
Como funciona a facturação