API

HTTP ਰਾਹੀਂ ਸਾਇਟ ਜੋ ਵੀ ਕਰਦਾ ਹੈ: ਇੱਕ ਦਾਅਵਾ ਅਤੇ ਪੱਟੀ ਸਾਫ਼ ਕਰੋ, ਪੈਨਲ ਸੈੱਟ ਕਰੋ ਅਤੇ ਪੁਲਿਸ ਕਰੋ ਜਦੋਂ ਤੱਕ ਰਿਫਰੈਂਡਮ ਨੇ ਹਰ ਮਾਪਦੰਡ ਨੂੰ ਪੂਰਾ ਨਹੀਂ ਕਰ ਲਿਆ ਹੈ । ਇੱਕੋ ਪੈਨਲ, ਇੱਕੋ ਬਿਲਿੰਗ, ਇੱਕੋ ਖਰਚ ਲਿਮਟ - ਕੋਈ ਬਰਾਊਜ਼ਰ ਨਹੀਂ ।

ਤੁਹਾਡੀਆਂ ਕੁੰਜੀਆਂ

ਕੁੰਜੀਆਂ ਤੁਹਾਡੇ ਅਕਾਊਂਟ ਤੋਂ ਬਣਾਈਆਂ ਜਾਂਦੀਆਂ ਹਨ । ਲਾਗਇਨ ਕਰੋ ਜਾਂ ਇੱਕ ਬਣਾਓ — ਨਵੇਂ ਅਕਾਊਂਟ ਲਈ ਸ਼ੁਰੂਆਤੀ ਕ੍ਰੈਡਿਟ ਮਿਲਦਾ ਹੈ, ਜੋ ਕਿ ਅਸਲੀ match ਲਈ ਕਾਫ਼ੀ ਹੈ ।

ਸਾਈਨ ਅੱਪ ਲਾਗਇਨ
ਪਰਮਾਣਕਿਤਾ

ਹਰੇਕ ਮੰਗ ਉੱਤੇ ਕੁੰਜੀ ਨੂੰ ਇੱਕ ਬੀਅਰਰ ਟੋਕਨ ਵਾਂਗ ਭੇਜੋ । ਇਹ ਇੱਕ ਸਰਟੀਫਿਕੇਟ ਹੈ, ਜੋ ਕਿ ਤੁਹਾਡਾ ਬਾਲਨ ਖਰਚ ਸਕਦਾ ਹੈ, ਇਸ ਲਈ ਇਸ ਨੂੰ ਪਾਸਵਰਡ ਵਾਂਗ ਹੀ ਵਰਤੋ: ਸਿਰਫ਼ ਸਰਵਰ- ਪਾਸੇ, ਕਦੇ ਵੀ ਬਰਾਊਜ਼ਰ ਵਿੱਚ, ਕਦੇ ਵੀ ਰਿਪੋਜ਼ਟਰੀ ਵਿੱਚ । ਇੱਕ ਲੀਕ ਕੁੰਜੀ ਨੂੰ ਇਸ ਸਫ਼ੇ ਤੋਂ ਵਾਪਸ ਲੈ ਲਿਆ ਜਾਂਦਾ ਹੈ ਅਤੇ ਤੁਰੰਤ ਕੰਮ ਕਰਨਾ ਬੰਦ ਕਰ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ ।

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

ਬੇਸ URL: https://theorem.chat/api/v1/. ਬੇਨਤੀਆਂ ਅਤੇ ਜਵਾਬ JSON ਹਨ । ਵਰਜਨ ਪਾਥ ਵਿੱਚ ਹੈ, ਇਸ ਲਈ ਇੱਕ ਤਬਦੀਲੀ v2 ਵਾਂਗ ਭੇਜੀ ਜਾਂਦੀ ਹੈ ਅਤੇ ਤੁਹਾਡਾ ਕੋਡ ਕੰਮ ਕਰਦਾ ਹੈ ।

POST /api/v1/matches/

match ਸ਼ੁਰੂ ਕਰੋ । ਸਿਰਫ ਟੀਚਾ ਹੀ ਲੋੜੀਦਾ ਹੈ: ਪੈਨਲ ਨੂੰ ਬਾਹਰ ਛੱਡੋ ਅਤੇ ਵੱਖ ਵੱਖ ਵੇਚਣ ਵਾਲਿਆਂ ਤੋਂ ਡਿਫਾਲਟ ਲਾਈਨਅੱਪ ਸੈੱਟ ਕਰੋ, ਕਿਉਂਕਿ ਮਾਡਲ ਜੋ ਕਿ ਓਵਰਲੇਪ ਡਾਟਾ ਸਾਂਝੇ ਕਰਨ ਲਈ ਸਿਖਲਾਈ ਪ੍ਰਾਪਤ ਹਨ ਅਤੇ ਇੱਕ ਪੈਨਲ ਜੋ ਕਿ ਆਪਣੇ ਆਪ ਨਾਲ ਸਹਿਮਤ ਹੈ, ਸਬੂਤ ਨਹੀਂ ਹੈ । match ਤੁਰੰਤ ਕਤਾਰ ਵਿੱਚ ਲੱਗ ਜਾਂਦਾ ਹੈ ਅਤੇ ਸਰਵਰ ਦੁਆਰਾ ਕੰਮ ਕਰਦਾ ਹੈ, ਇਸ ਲਈ ਬੇਨਤੀ ਜਿੰਨੀ ਜਲਦੀ ਸੰਭਵ ਹੋਵੇ ਵਾਪਸ ਆ ਜਾਂਦੀ ਹੈ ।

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

ਖੇਤਰ

  • goal — ਆਪਣੇ ਆਪ ਵਿੱਚ, ਦਾਅਵਾ ਕਰੋ । ਲੋੜੀਦਾ ਹੈ ।
  • rigor / rigor_preset — ਬਾਰ, ਜਿਸ ਨੂੰ ਰਿਫਰੈਸ਼ਰ ਤੁਹਾਨੂੰ ਨਾਂ ਜਾਂ ਸ਼ਬਦ- ਸ਼ਬਦ ਨਾਲ ਰੱਖਦਾ ਹੈ: ਸਟੈਂਡਰਡ, ਪਬਲੀਕੇਸ਼ਨ, ਫਾਰਮੈਟ, ਪੁਰਸਕਾਰ, ਫੈਸਲਾ । ਇੱਕ ਅਣਜਾਣ ਪ੍ਰੀ- ਸੈੱਟ ਨੂੰ ਡਿਫਾਲਟ ਲਈ ਚੁੱਪ ਚਾਪ ਬਦਲਣ ਦੀ ਬਜਾਏ ਰੱਦ ਕੀਤਾ ਜਾਂਦਾ ਹੈ - ਇੱਕ ਸਟੈਂਡਰਡ ਨਾਲ ਜੋ ਤੁਸੀਂ ਨਹੀਂ ਮੰਗਿਆ ਹੈ, ਨਾਲ ਜੁੜਨਾ ਗਲਤੀ ਤੋਂ ਵੀ ਮਾੜਾ ਹੈ ।
  • seats — ਦੋ ਤੋਂ ਛੇ ਵਿਵਾਦੀ ਸੀਟਾਂ, ਹਰੇਕ GET /api/v1/models/ ਤੋਂ ਇੱਕ ਮਾਡਲ id ਅਤੇ ਇੱਕ ਚੋਣਵੀਂ ਸਥਿਤੀ ਹੈ।
  • referee — ਇਹ ਮਾਡਲ ਜੋ ਕਿ ਮਾਪਦੰਡਾਂ ਉੱਤੇ ਰਾਜ ਕਰਦਾ ਹੈ ਅਤੇ ਸਬੂਤ ਨੂੰ ਮੁੜ-ਚੈੱਕ ਕਰਦਾ ਹੈ। ਇਸ ਉੱਤੇ ਖਰਚ ਕਰਨ ਯੋਗ ਹੈ।
  • max_rounds, usd_ceiling — ਸਖਤ ਸੀਮਾਵਾਂ । ਸੀਮਾ ਤੱਕ ਪਹੁੰਚਣ ਨਾਲ match ਨੂੰ ਵਿਰਾਮ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ, ਨਾ ਕਿ ਇਸ ਤੋਂ ਅੱਗੇ ਖਰਚ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਅਤੇ ਵਿਰਾਮ ਕੀਤਾ match ਉਸੇ ਥਾਂ ਤੋਂ ਮੁੜ ਸ਼ੁਰੂ ਹੁੰਦਾ ਹੈ, ਜਿੱਥੇ ਕਿ ਇਹ ਰੁਕਿਆ ਹੋਇਆ ਸੀ ।
  • public — match ਨੂੰ ਪਬਲਿਕ ਗੈਲਰੀ ਵਿੱਚ ਪ੍ਰਕਾਸ਼ਿਤ ਕਰੋ।
GET /api/v1/matches/{token}/

ਪੂਰਾ match: ਹਾਲਤ, ਸਵੀਕਾਰਨ ਮਾਪਦੰਡ ਅਤੇ ਕਿਹੜਾ ਇੱਕ ਹੱਲ ਕੀਤਾ ਗਿਆ ਸੀ, ਸਥਾਪਤ ਨਤੀਜਿਆਂ ਦੀ ਲੇਖ, ਹਰ ਫੈਸਲੇ ਪਿੱਛੇ ਸਬੂਤ, ਅਤੇ ਇੱਕ ਵਾਰੀ ਇੱਕ ਫੈਸਲਾ ਹੋ ਗਿਆ ਹੈ। ਇੱਕ match ਮਿੰਟਾਂ ਤੋਂ ਘੰਟਿਆਂ ਲਈ ਚੱਲਦਾ ਹੈ, ਇਸ ਲਈ ਹਰ ਕੁਝ ਸਕਿੰਟ ਵਿੱਚ ਪੁੱਛੋ ਜਦੋਂ ਕਿ ਲਾਈਵ ਹੈ - ਜਵਾਬ ਤੁਹਾਨੂੰ ਦੱਸਦਾ ਹੈ ਕਿ ਕਦੋਂ ਰੋਕਣਾ ਹੈ।

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

ਹਾਲਤ: ਕਤਾਰ ਵਿੱਚ, ਚੱਲ ਰਿਹਾ, ਵਿਰਾਮ, ਲੋੜੀਦੇ_ ਫੰਡ, ਹੱਲ਼, ਖਤਮ, ਰੁਕਿਆ, ਫੇਲ੍ਹ। ਆਖਰੀ ਚਾਰ ਟਰਮੀਨਲ ਹਨ; ਵਿਰਾਮ, ਲੋੜੀਦੇ_ ਫੰਡ, ਖਤਮ ਅਤੇ ਰੁਕਿਆ ਮੁੜ- ਚਾਲੂ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।

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

match ਹੋਰ ਗੇੜ ਜਾਂ ਬਜਟ ਰੋਕ ਦਿਓ । ਪੈਨਲ ਵੱਲੋਂ ਨਿਰਧਾਰਿਤ ਸਭ ਕੁਝ ਰੱਖਿਆ ਜਾਂਦਾ ਹੈ — ਨਤੀਜੇ ਇੱਕ ਵਾਰੀ ਲੇਜ਼ਰ ਵਿੱਚ ਲਿਖੇ ਜਾਂਦੇ ਹਨ ਅਤੇ ਕਦੇ ਮੁੜ- ਪ੍ਰਾਪਤ ਨਹੀਂ ਕੀਤੇ ਜਾਂਦੇ, ਅਤੇ ਰਿਕਾਰਡ ਕੀਤੇ ਅੰਤ- ਨੁਕਸਾਨ ਇਸ ਨੂੰ ਪਹਿਲਾਂ ਹੀ ਫੇਲ੍ਹ ਹੋਏ ਢੰਗ ਵਿੱਚ ਵਾਪਸ ਜਾਣ ਤੋਂ ਰੋਕਦੇ ਹਨ ।

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"}'
ਬਾਕੀ
  • GET /api/v1/ — ਜੋ ਕਿ ਮੌਜੂਦ ਹੈ, ਤਾਂ ਕਿ ਕਲਾਂਇਟ ਇਸ ਪੇਜ਼ ਤੋਂ ਬਿਨਾਂ ਆਪਣਾ ਰਸਤਾ ਲੱਭ ਸਕੇ ।
  • GET /api/v1/models/ — ਉਨ੍ਹਾਂ ਦੇ ਟਾਇਰ, ਸੰਬੰਧਿਤ ਵਿੰਡੋ ਅਤੇ ਪ੍ਰਤੀ ਮਿਲੀਅਨ-ਟੋਕਨ ਦਰਾਂ ਨਾਲ seatable ਮਾਡਲ। ਇੱਕ ਸਫ਼ੇ ਵਾਂਗ ਇੱਕੋ ਲਿਸਟ ਹੈ ।
  • GET /api/v1/matches/ — ਤੁਹਾਡਾ matches, ਨਵਾਂ ਪਹਿਲਾਂ; ਹਾਲਤ, ਲਿਮਟ ਅਤੇ ਆਫਸੈੱਟ ਨਾਲ ਪੇਜ਼ ਨਾਲ ਫਿਲਟਰ ਕਰੋ ।
  • GET /api/v1/account/ — ਯੋਗਤਾ, ਜੀਵਨ ਕਾਲ ਖਰਚ ਅਤੇ ਕੀ ਤੁਸੀਂ ਪ੍ਰੀ-ਪੈਡ ਕਰੈਡਿਟ ਜਾਂ ਆਪਣੀ ਆਪਣੀ ਅੰਦਾਜ਼ਾ ਕੁੰਜੀ ਉੱਤੇ ਹੋ ।
  • GET /api/v1/keys/, DELETE /api/v1/keys/{prefix}/ — ਕੁੰਜੀਆਂ ਦੀ ਲਿਸਟ ਅਤੇ ਵਾਪਸੀ ਕੁੰਜੀਆਂ । ਪਹਿਲੀ ਕੁੰਜੀ ਇੱਥੇ ਹੀ ਬਰਾਊਜ਼ਰ ਵਿੱਚ ਬਣਾਈ ਜਾ ਸਕਦੀ ਹੈ ।
ਗਲਤੀਆਂ

ਹਰੇਕ ਫੇਲ੍ਹ ਇੱਕੋ ਜਿਹਾ ਰੂਪ ਹੈ । ਕੋਡ ਉੱਤੇ ਬਰਾਂਚ, ਜੋ ਕਿ ਸਥਿਰ ਹੈ; ਸੁਨੇਹਾ ਪ੍ਰਸੰਗਿਕ ਹੈ ਅਤੇ ਮੁੜ- ਲਿਖਿਆ ਜਾ ਸਕਦਾ ਹੈ ।

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

401 ਗੁੰਮ ਜਾਂ ਰੱਦ ਕੀਤੀ ਕੁੰਜੀ ਲਈ, 402 ਜਦੋਂ ਬੈਲੇਂਸ ਖਾਲੀ ਹੋਵੇ, 404 ਇੱਕ ਟੋਕਨ ਲਈ ਜੋ ਕਿ ਤੁਹਾਡਾ ਨਹੀਂ ਹੈ, 409 ਇੱਕ match ਲਈ ਜੋ ਪਹਿਲਾਂ ਹੀ ਚੱਲ ਰਿਹਾ ਹੈ, 429 ਜਦੋਂ ਤੁਸੀਂ ਬਹੁਤ ਤੇਜ਼ ਜਾ ਰਹੇ ਹੋ, 400 ਕਿਸੇ ਵੀ ਚੀਜ਼ ਲਈ ਜਿਸ ਲਈ ਬੇਨਤੀ ਗਲਤੀ ਨਾਲ ਹੋਈ ਹੈ ।

ਰੇਟ ਲਿਮਟ

ਪ੍ਰਤੀ ਸਵਿੱਚ ਗਿਣਤੀ: 240 ਪੜ੍ਹੇ ਅਤੇ 30 match ਮਿੰਟ ਵਿੱਚ ਸ਼ੁਰੂ ਹੋਏ । ਲਾਜ਼ਮੀ ਤੌਰ ਉੱਤੇ ਲਾਜ਼ਮੀ ਹੈ — match ਨੂੰ ਅਸਲ ਵਿੱਚ ਸੀਮਿਤ ਕਰਨ ਲਈ ਇਹ ਹੈ ਕਿ ਇਹ ਤੁਹਾਡੇ ਬੈਲੇਂਸ ਨੂੰ ਖਰਚ ਕਰਦਾ ਹੈ, ਅਤੇ ਇਹ ਇੱਥੇ ਇੱਕ ਮੁੜ- ਕੋਸ਼ਿਸ ਲੂਪ ਜਾਂ ਇੱਕ ਪੋਲਰ ਨੂੰ ਚਲਾਉਣ ਤੋਂ ਰੋਕਣ ਲਈ ਹੈ । ਸੀਮਾ ਤੋਂ ਵੱਧ ਤੁਸੀਂ 429 ਪ੍ਰਾਪਤ ਕਰੋਗੇ; ਲਗਾਤਾਰ ਚਲਾਉਣ ਦੀ ਬਜਾਏ ਹਰੇਕ ਕੁਝ ਸਕਿੰਟ ਵਿੱਚ ਇੱਕ ਚੱਲ ਰਹੇ match ਨੂੰ ਪੋਲ ਕਰੋ ।

ਬਿਲਿੰਗ ਸਾਇਟ ਵਾਂਗ ਹੀ ਹੈ: ਤੁਸੀਂ ਪ੍ਰਤੀ ਟੋਕਨ ਪ੍ਰਤੀ ਮਾਡਲ ਦਰ ਨਾਲ ਪ੍ਰਕਾਸ਼ਤ ਕਰਦੇ ਹੋ, ਪ੍ਰੀ-ਪੈਡ ਕਰੈਡਿਟ ਜਾਂ ਆਪਣੀ ਆਪਣੀ ਕੁੰਜੀ ਤੋਂ। ਬਿਲਿੰਗ ਕਿਵੇਂ ਕੰਮ ਕਰਦੀ ਹੈ