API

Sagala hal anu situsna laksanakeun, ngaliwatan HTTP: nyatakeun klaim sareng bar anu kedahna dilereskeun, duduk panel, sareng poll dugi ka referee parantos ngarengsekeun unggal kriteria. Panel anu sami, billing anu sami, wates belanja anu sami - henteu browser.

Kuncimu

Kunci dijieun tina akun anjeun. Log in, atawa nyiptakeun hiji — akun anyar meunang kredit awal, anu cukup pikeun sasuai nyata.

Ndaftar Maju
Autentikasi

Kirimkeun kunci salaku token bearer dina unggal panyungsi. Éta mangrupa kredensial anu bisa ngabutuhkeun saldo anjeun, janten perlakuanana saperti kecap akses: ngan di sisi panyadia, teu pernah dina panyungsi, teu pernah dina repository. Kunci anu lepat ditarik ti halaman ieu sarta langsung teu tiasa dianggo.

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

Basis URL: https://theorem.chat/api/v1/. Permintaan jeung tanggapan nyaéta JSON. Versi aya dina jalan, jadi hiji parobahan breaks kapal salaku v2 jeung kode anjeun tetep gawé.

POST /api/v1/matches/

Ngamimitian hiji pasualan. Ngan tujuan anu diperlukeun: tinggalkeun panel kaluar sarta garis pangluhurna ditempatkeun ti vendor anu béda, sabab model diajar dina data tumpang tindih babagi titik buta sarta panel anu satuju sareng dirina henteu bukti. Parobihan diurutan langsung sarta digawé ku server, jadi pamundut balik deui sanggeus ditarima.

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

Jaringan

  • goal — klaim, nganggo tembungmu. Diperlukeun.
  • rigor / rigor_preset — bar nu dipikabutuh ku pangadilan, sacara harfiah atawa ku ngaran: standar, publikasi, formal, hadiah, kaputusan. Pra-ngatepkeun anu teu katempo ditolak, sabalikna diganti ku piawai - dihukum ku standar anu teu dipikahoyong ku anjeun leuwih goréng ti salah.
  • seats — dua ka genep tempat debating, unggal hiji id model ti GET /api/v1/models/ sarta hiji posisi pilihan.
  • referee — model nu ngawenangkeun kriteria sarta nga-cek deui bukti. Hartosna di-ngayakeun.
  • max_rounds, usd_ceiling — wates hard. Mun nepi ka plafond bakal ngaleupaskeun pamaén ti kaulinan, sarta pamaén anu dileupaskeun bakal ngamimitian deui ti tempatna.
  • public — nyalin kecocokan sing rampung menyang galeri umum.
GET /api/v1/matches/{token}/

Saluruh pamaén: status, kriteria pangtarimaan sarta kumaha masing-masing ditangtukeun, buku hasil anu ditetepkeun, bukti di tukang unggal paréntah, sarta verdict lamun aya hiji. Pamaén dijalankeun pikeun menit ka jam, jadi poll unggal sababaraha detik nalika hirup - jawaban ngawartosan anjeun nalika eureun.

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

Status: diangklung, jalan, ditunda, butuh_kauntungan, direngsekeun, leungit, katutup, gagal. Papat panungtungan nyaéta terminal; ditunda, butuh_kauntungan, leungit, katutup, bisa dilanjutkeun.

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

Nyayogikeun babak atawa anggaran langkung ka pamaén anu ditunda. Sadaya anu ditetepkeun panel disimpen - hasilna dituliskeun kana buku-buku hiji kali sarta henteu pernah diturunkeun deui, sarta titik-titik anu teu bisa ditempo disimpen pikeun nyegah éta balik ka pendekatan anu geus gagal.

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"}'
Sisa
  • GET /api/v1/ — nu aya, supados klien bisa manggihan jalanna tanpa kaca ieu.
  • GET /api/v1/models/ — model seatable kalawan tingkat, jendela konteks jeung tingkat per-million-token. Sawetara uga digawé minangka kaca.
  • GET /api/v1/matches/ — Pareuman anjeun, anu anyar pisan; nyaring ku status, halaman kalayan watesan sareng offset.
  • GET /api/v1/account/ — balanja, ngayakeun hirup sarta naha anjeun dina kredit prepaid atawa konci inference sorangan.
  • GET /api/v1/keys/, DELETE /api/v1/keys/{prefix}/ — Nyarankeun sarta ngarevokasi konci. Kunci kahiji ngan bisa dijieun di dieu, dina panyungsi.
Kesalahan

Satiap kasalahan mibanda bentuk anu sami. Ngarang kode, anu stabil; pesenna prosa sarta bisa diucapkeun deui.

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

401 pikeun kunci anu kaleungitan atanapi ditarik, 402 nalika saldo kosong, 404 pikeun token anu henteu milik anjeun, 409 pikeun match anu parantos dijalankeun, 429 nalika anjeun ngajalankeun gancang, 400 pikeun naon waé anu dipikahoyong.

Batas laju

Diitung per tombol: 240 maca jeung 30 ngamimitian pamaén sa menit. Loose on purpose — naon anu nyababkeun pamaén ngawatesan nyaéta éta ngabutuhkeun saldo anjeun, sarta ieu aya pikeun ngahalangan loop coba deui atawa poller jalankeun flat out. Di luhur wates anjeun meunang 429; polling hiji pamaen jalankeun unggal sababaraha detik tinimbang terus-terusan.

Biaya anu ditanggung ku pausahaan nyaéta biaya anu ditanggung ku pausahaan, anu diitung dina jumlah anu ditanggung ku pausahaan, dina jumlah anu ditanggung ku pausahaan. Carane ngitung