API

Kaikki mitä sivusto tekee, HTTP:n kautta: ilmoita korvausvaatimus ja sen on oltava selvä, aseta paneeli ja kysely, kunnes erotuomari on ratkaissut kaikki kriteerit. Sama paneeli, sama laskutus, samat menorajat – ei selainta.

Avaimesi

Avaimet luodaan tililtäsi. Kirjaudu sisään tai luo sellainen – uudet tilit saavat aloitusluottoa, mikä riittää todelliseen match:een.

Rekisteröidy Kirjautuminen
Todentaminen

Lähetä avain kantajaksi jokaiseen pyyntöön. Se on luotettava, joka voi käyttää tasapainosi, joten kohtele sitä kuin salasanaa: vain palvelimen puolella, ei koskaan selaimessa, ei koskaan arkistossa. Vuotanut avain poistetaan tältä sivulta ja lakkaa toimimasta välittömästi.

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

Perusosoite: https://theorem.chat/api/v1/. Pyynnöt ja vastaukset ovat JSON-sivustolla. versio on polulla, joten murtava vaihtoalus v2:na ja koodisi toimii.

POST /api/v1/matches/

Aloita match. Vain tavoite on: jätä paneeli pois ja oletuskokoonpano on eri myyjiltä, koska päällekkäisiin datanjakoa koskeviin paikkoihin koulutetut mallit ja paneeli, joka on samaa mieltä itsensä kanssa, eivät ole todisteita. match jonotetaan välittömästi ja se on palvelimen tekemä, joten pyyntö palaa heti, kun se hyväksytään.

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

Kenttä

  • goal — Se on teidän omien sanojenne mukaan pakollinen.
  • rigor / rigor_preset — Tuomarin käyttämä rima, sanatarkka tai nimi: vakio, julkaisu, muodollinen, palkinto, päätös. Tuntematon preset ei siirry hiljaisesti oletukseen – se, että arvioidaan sellaisen normin perusteella, jota ei ole pyydetty, on pahempi kuin virhe.
  • seats — Kaksi tai kuusi keskustelupaikkaa, joista jokainen on mallitunniste GET/api/v1/mallista ja valinnainen asento.
  • referee — Perusteita säätelevä malli tarkistaa todisteet.
  • max_rounds, usd_ceiling — Kattoon pääseminen pysäyttää match ihmistä sen sijaan, että menisi sen ohi, ja match:n pysähtyminen jatkuu juuri siihen, mihin se pysähtyi.
  • public — julkaise loppuunmyydyt match yleisölle.
GET /api/v1/matches/{token}/

Koko match: statuksen, hyväksymiskriteerit ja se, miten jokainen on sovittu, vakiintuneiden tulosten kirjan, jokaisen päätöksen takana olevat todisteet ja tuomion saatuaan yksi. match kulkee minuuteista tuntiin, joten kyselyt muutaman sekunnin välein suoritettaessa suoraa lähetystä – vastaus kertoo, milloin on lopetettava.

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

Tilat: jonotettu, käynnissä, tauotettu, tarverahastot, ratkaistu, uupunut, jumissa, epäonnistunut. Neljä viimeistä ovat pääte; pysähtynyt, tarverahastot, uupunut ja jumissa voidaan jatkaa.

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

Anna pysähtyneille match kierrosta lisää tai enemmän budjettia. Kaikki, mitä paneeli on asettanut, pidetään – tulokset kirjoitetaan tilikirjaan kerran eikä koskaan uudelleen johdettuna, ja nauhoitetut umpikujat pysäyttävät sen palaamasta jo epäonnistuneeseen lähestymistapaan.

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"}'
Loput
  • GET /api/v1/ — mitä on olemassa, jotta asiakas voi löytää tiensä ilman tätä sivua.
  • GET /api/v1/models/ — istuvat mallit tasoltaan, kontekstiltaan ja miljoonakertaisiltaan. Sama lista kuin sivulla.
  • GET /api/v1/matches/ — matches, uusin ensin; suodata tilan, sivun ja offset-arvon mukaan.
  • GET /api/v1/account/ — tasapaino, elinikäinen käyttö ja se, onko sinulla prepaid-luottoa vai oma päättelyavain.
  • GET /api/v1/keys/, DELETE /api/v1/keys/{prefix}/ — Luettele ja peruuta avaimet. Ensimmäinen avain voidaan painaa vain täällä, selaimessa.
Virheet

Jokainen epäonnistuminen on saman muotoinen. Oksakoodi on vakaa; viesti on proosa ja se voidaan muotoilla uudelleen.

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

401 puuttuvalle tai peruutetulle avaimelle, 402 kun saldo on tyhjä, 404, kun kyseessä on rahake, joka ei ole sinun, 409, kun kyseessä on jo käynnissä oleva match, 429, kun ajat liian nopeasti, 400, kun pyyntö meni pieleen.

Verorajat

Avainta kohti laskettu lukumäärä on 240 ja aloitusaika on minuutti. Löysä tarkoituksella – itse asiassa match:n raja on se, että se kuluttaa tasapainosi, ja nämä ovat tulleet estämään uudelleenrynnistyksen tai polttajan juoksemisen täysillä. Rajan yli saa 429; ja jos se on käynnissä match:n parissa sekunnissa, se ei ole jatkuva.

Laskutus on sama kuin sivustolla: maksat kuponkia kohti julkaistulla mallikoron mukaan, prepaid-luotolla tai omalla avaimellasi. Miten laskutus toimii