A API

Todo o que fai o sitio, a través de HTTP: indicar unha reclamación e a barra que debe limpar, colocar un panel e votar ata que o árbitro resolva todos os criterios. Mesmo panel, mesma facturación, mesmos límites de gasto - sen navegador.

As túas chaves

As chaves créanse a partir da súa conta. Inicie sesión ou cree unha nova - as contas novas reciben crédito inicial, que é suficiente para unha coincidencia real.

Inscrición Acceso
Autenticación

Enviar a chave como token de portador en cada petición. É unha credencial que pode gastar o seu saldo, polo que trátea como un contrasinal: só do lado do servidor, nunca nun navegador, nunca nun repositorio. Unha chave filtrada é revogada desta páxina e deixa de funcionar inmediatamente.

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

URL base: https:// theorem. chat/ api/ v1 /. As solicitudes e respostas son JSON. A versión está na rota, polo que unha modificación que rompa envíase como v2 e o código segue funcionando.

POST /api/v1/matches/

Iniciar unha coincidencia. Só se require o obxectivo: deixar o panel fóra e colocar unha listaxe por omisión de diferentes provedores, porque os modelos adestrados con datos superpostos comparten puntos cegos e un panel que concorda consigo mesmo non é proba. A coincidencia enfila inmediatamente e é procesada por un servidor, polo que a petición regresa tan pronto como é aceptada.

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

  • goal — a reclamación, nas súas propias palabras. Requirido.
  • rigor / rigor_preset — a barra á que o árbitrobriga, literalmente ou polo nome: estándar, publicación, formal, premio, decisión. Unha predefinición descoñecida é rexeitada en vez de ser silenciosamente trocada pola predeterminada; ser xulgado contra un estándar que non pediu é peor que un erro.
  • seats — de dous a seis postos de debate, cada un cun id de modelo de GET / api/ v1/ models / e unha posición opcional.
  • referee — O modelo que goberna os criterios e comproba de novo a evidencia. Vale a pena gastar.
  • max_rounds, usd_ceiling — límites duros. Ao acadar o teito, a partida pausa en lugar de gastar máis, e unha partida pausada retoma exactamente onde se detivo.
  • public — publicar a coincidencia rematada na galería pública.
GET /api/v1/matches/{token}/

Toda a partida: estado, criterios de aceptación e como se resolveu cada unha, o libro de resultados establecidos, a evidencia detrás de cada decisión e o veredicto unha vez que haxa un. Unha partida dura de minutos a horas, polo que se pregunta cada poucos segundos mentres está en directo; a resposta dille cando 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: en fila, en execución, pausado, require_ fondos, resolto, esgotado, atascado, fallado. Os últimos catro son terminais; pode continuarse con pausado, require_ fondos, esgotado e atascado.

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

Dar máis roldas ou máis orzamento a unha partida parada. Mantéñense todos os datos do panel: os resultados escríbense nunha conta unha vez e nunca se derivan de novo, e os puntos mortos rexistrados impiden que se repita unha estratexia que xa fallou.

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"}'
O resto
  • GET /api/v1/ — que existe, para que un cliente poida atopar o seu camiño sen esta páxina.
  • GET /api/v1/models/ — modelos asequibles co seu nivel, xanela contextual e taxas por millón de tokens. A mesma lista, como unha páxina.
  • GET /api/v1/matches/ — as súas coincidencias, primeiro as máis recentes; filtrar polo estado, páxina con límite e desprazamento.
  • GET /api/v1/account/ — saldo, gasto vitalicio e se está en crédito prepago ou na súa propia chave de inferencia.
  • GET /api/v1/keys/, DELETE /api/v1/keys/{prefix}/ — lista e revoga as chaves. A primeira chave só pode ser acuñada aquí, nun navegador.
Erros

Cada fallo ten a mesma forma. Ramifica o código, que é estable; a mensaxe é prosa e pode ser reescrito.

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

401 para unha chave que falta ou revogada, 402 cando o saldo está baleiro, 404 para un token que non é seu, 409 para unha coincidencia que xa está a executarse, 429 cando vai demasiado rápido, 400 para calquera cousa que o pedido en si fallou.

Límites de taxa

Contado por tecla: 240 lecturas e 30 coincidencias iniciadas por minuto. Abandonado a propósito - o que realmente limita unha coincidencia é que gasta o seu saldo, e estas están aquí para deter un bucle de reintentos ou un sondador que se esgota. Sobre o límite obtén 429; sonda unha coincidencia en execución cada poucos segundos en vez de continuamente.

A facturación é idéntica á do sitio: paga por token á taxa publicada por modelo, desde crédito prepago ou a súa propia chave. Como funciona a facturación