API

Sitenin yaptığı her şey HTTP üzerinden: bir iddia ve bar temizlenmesi gerekiyor, bir paneli oturt, ve hakem her kritere karar verinceye kadar oylama. Aynı panel, aynı fatura, aynı harcama limitleri - tarayıcı yok.

Anahtarların.

Anahtarlar hesabınızdan oluşturulur. Giriş yapın veya bir tane oluşturun — yeni hesaplar başlangıç kredisi alır, bu gerçek bir match için yeterlidir.

Kayıt Ol Giriş
Kimlik doğrulama

Anahtarı her istekte taşıyıcı token olarak gönder. Bu kredi kartınızı harcayan bir kimlik bilgisidir, bu yüzden ona bir şifre gibi davranın: sadece sunucu tarafı, asla bir tarayıcıda, asla bir depoda. Sızdırılmış bir anahtar bu sayfadan geri çekilir ve derhal çalışmaz.

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

Temel URL: https://theorem.chat/api/v1/. İstekler ve cevaplar JSON'dur. Sürüm yolundaki, böylece bir kırma değişikliği v2 olarak gönderilir ve kodun çalışmaya devam eder.

POST /api/v1/matches/

match'i başlat. Sadece hedef gereklidir: paneli dışarı bırak ve farklı satıcılardan varsayılan bir sıralama oturtulur, çünkü modellerin örtüşen verilerle eğitimi kör noktaları paylaşır ve kendisiyle aynı fikirde olan bir panel kanıt değildir. match hemen sıralanır ve bir sunucu tarafından işlenir, bu yüzden talep kabul edildiğinde hemen geri döner.

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

Alanlar

  • goal — İddiayı kendi sözcüklerinizle belirtin.
  • rigor / rigor_preset — hakem tarafından size uygulanan standart, kelime anlamıyla veya adıyla: standart, yayın, resmi, ödül, karar. Bilinmeyen bir önayarlama varsayılan ile sessizce değiştirilmek yerine reddedilir - istemediğiniz bir standartla yargılanmak hatadan daha kötüdür.
  • seats — iki ile altı arasında tartışmalı koltuk, her biri GET /api/v1/models/'den bir model ID'si ve seçenek statüsü.
  • referee — Kriterleri belirleyen ve kanıtları tekrar kontrol eden model, harcamaya değer bir model.
  • max_rounds, usd_ceiling — Tavan seviyesine ulaşmak match'i durdurur, onu geçmek yerine, ve durdurulmuş bir match tam olarak durduğu yerden devam eder.
  • public — Bittiğinde match'i halka açık galeride yayınlayacağım.
GET /api/v1/matches/{token}/

Tüm match: durum, kabul kriterleri ve her birinin nasıl çözüldüğü, belirlenen sonuçların defterleri, her bir kararın arkasındaki kanıtlar ve bir karar çıktığında verilecek karar. match dakikalardan saatlere kadar çalışır, bu yüzden canlı iken birkaç saniye arayla sorgulayın - cevap ne zaman duracağınızı söyler.

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

Durumlar: sıralanmış, çalıştırılmış, durdurulmuş, needs_funds, çözülmüş, tükenmiş, sıkışmış, başarısız. Son dört terminaldir; durdurulmuş, needs_funds, tükenmiş ve sıkışmış devam edebilir.

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

Give a stopped match more rounds or more budget. Everything the panel established is kept — results are written to a ledger once and never re-derived, and recorded dead ends stop it walking back into an approach that already failed.

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"}'
Geri kalanı
  • GET /api/v1/ — Var olan her şeyi, böylece bir müşteri bu sayfa olmadan yolunu bulabilsin.
  • GET /api/v1/models/ — Sıraları, bağlam pencereleri ve milyon dolarlık token oranları ile oturabilir modelleri. Aynı liste, sayfa olarak.
  • GET /api/v1/matches/ — matches'iniz, önce yenisi; durum, sınır ve offset ile sayfaya göre filtre.
  • GET /api/v1/account/ — Dengesi, yaşam süresi harcamaları ve ön ödemeli kredi kullanıp kullanmadığınızı ya da kendi çıkarım anahtarınızı.
  • GET /api/v1/keys/, DELETE /api/v1/keys/{prefix}/ — anahtarları listele ve geri al. İlk anahtar sadece burada, bir tarayıcıda üretilebilir.
Hatalar

Her hata aynı biçimde. Kod üzerinde dalgalanır, bu da istikrarlıdır. Mesaj prosedüreldir ve yeniden yazılabilir.

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

401 kayıp veya iptal edilmiş bir anahtar için, 402 denge boş olduğunda, 404 sizin olmadığı bir token için, 409 zaten çalışan bir match için, 429 çok hızlı gittiğinizde, 400 herhangi bir şey için isteğin kendisi yanlış gitti.

Oran sınırları

Anahtarlar başına sayılan: dakikada 240 okuma ve 30 match başlatma. Kasten gevşek — match'i aslında sınırlayan şey, balansınızı harcaması ve bunlar tekrar denemenin döngüsünü veya poller'ın tamamen kapanmasını durdurmak için buradalar. Limitin üzerinde 429'a ulaşacaksınız; sürekli değil, birkaç saniye arayla çalıştırılan match'i sorgulayın.

Faturalama site ile aynıdır: model başına yayınlanan fiyata, ön ödemeli krediden veya kendi anahtarınızdan token başına ödeme yaparsınız. Faturalama nasıl çalışır