API

Mọi thứ trang web làm, qua HTTP: tuyên bố một tuyên bố và thanh nó phải dọn sạch, đặt một bảng, và bỏ phiếu cho đến khi người giám khảo đã giải quyết mọi tiêu chí.

Chìa khóa của anh.

Chìa khóa được tạo từ tài khoản của bạn. Đăng nhập, hoặc tạo một — tài khoản mới sẽ nhận được tiền khởi đầu, đủ cho một match thật.

Đăng ký Đăng nhập
Xác thực

Gửi khóa như một token người mang trên mỗi yêu cầu. Nó là một chứng thực có thể tiêu hết số tiền còn lại của bạn, vì vậy xem nó như một mật khẩu: chỉ bên máy chủ, không bao giờ trong trình duyệt, không bao giờ trong kho. Một khóa bị rò rỉ sẽ bị hủy bỏ trên trang này và ngừng hoạt động ngay lập tức.

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

URL cơ sở: https://theorem.chat/api/v1/. Yêu cầu và đáp ứng là JSON. Phiên bản là trong đường dẫn, vì vậy một thay đổi phá vỡ được gửi như v2 và mã của bạn vẫn hoạt động.

POST /api/v1/matches/

Bắt đầu match. Chỉ cần mục tiêu: bỏ bảng ra và một hàng mặc định được đặt từ các nhà cung cấp khác nhau, vì các mô hình được huấn luyện trên dữ liệu trùng lặp chia sẻ điểm mù và một bảng đồng ý với bản thân nó không phải là bằng chứng. match được xếp hàng ngay lập tức và được máy chủ xử lý, vì vậy yêu cầu trở lại ngay khi nó được chấp nhậ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
  }'

Các trường

  • goal — Điều kiện, theo lời của anh.
  • rigor / rigor_preset — Đường thẳng mà trọng tài yêu cầu bạn phải đi, theo nghĩa đen hay theo tên: tiêu chuẩn, xuất bản, chính thức, giải thưởng, quyết định. Một mặc định chưa biết sẽ bị từ chối thay vì thay đổi lặng lẽ cho mặc định — bị đánh giá theo một tiêu chuẩn mà bạn không yêu cầu là tệ hơn một lỗi.
  • seats — 2 đến 6 ghế tranh luận, mỗi ghế có một ID mô hình từ GET /api/v1/models/ và một vị trí tùy chọn.
  • referee — mô hình điều khiển các tiêu chuẩn và kiểm tra lại các bằng chứng.
  • max_rounds, usd_ceiling — Đến với giới hạn sẽ tạm dừng match thay vì tiêu quá nó, và match tạm dừng sẽ tiếp tục chính xác từ nơi nó dừng lại.
  • public — công bố match hoàn thành cho công chúng xem.
GET /api/v1/matches/{token}/

Toàn bộ match: trạng thái, tiêu chí chấp nhận và cách mỗi người được giải quyết, sổ sách của kết quả đã được thiết lập, bằng chứng đằng sau mỗi quyết định, và phán quyết khi có một. Một match chạy trong vài phút đến vài giờ, vì vậy thăm dò mỗi vài giây trong khi sống - phản hồi nói cho bạn biết khi nào để dừng.

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

Tình trạng: xếp hàng, chạy, tạm dừng, cần_ tiền, giải quyết, hết, bị kẹt, thất bại. Bốn trạng thái cuối là cuối; tạm dừng, cần_ tiền, hết và bị kẹt có thể tiếp tục.

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"}'
Còn lại
  • GET /api/v1/ — cái gì tồn tại, để khách hàng có thể tìm ra cách mà không cần trang này.
  • GET /api/v1/models/ — Các mô hình có thể đặt chỗ với các cấp, cửa sổ ngữ cảnh và tỷ lệ hàng triệu token. Cùng danh sách, như một trang.
  • GET /api/v1/matches/ — matches của bạn, mới nhất trước; lọc theo trạng thái, trang với giới hạn và lệch.
  • GET /api/v1/account/ — số dư, chi tiêu suốt đời và liệu anh có dùng tiền gửi trước hay là khóa suy luận của riêng anh.
  • GET /api/v1/keys/, DELETE /api/v1/keys/{prefix}/ — Danh sách và hủy khóa. Khóa đầu tiên chỉ có thể được tạo ở đây, trong trình duyệt.
Lỗi

Mỗi sự cố đều có cùng một hình dạng. Nhánh trên mã, ổn định; thông điệp là văn xuôi và có thể được viết lại.

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

401 cho một khóa bị mất hoặc bị hủy bỏ, 402 khi số dư là trống, 404 cho một token không phải của bạn, 409 cho một match đã chạy, 429 khi bạn đang chạy quá nhanh, 400 cho bất kỳ điều gì mà yêu cầu đã sai.

Giới hạn tốc độ

Đếm theo phím: 240 đọc và 30 match bắt đầu mỗi phút. Lỏng lẻo vì mục đích — điều thực sự hạn chế match là nó tiêu thụ tiền của bạn, và những điều này ở đây để ngăn chặn vòng lặp thử lại hoặc một máy poller chạy hết. Vượt quá giới hạn bạn sẽ có 429; thử một match chạy mỗi vài giây thay vì liên tục.

Đăng ký là tương tự như trang web: bạn trả cho mỗi token theo tỷ lệ được công bố cho mỗi mẫu, từ tín dụng trả trước hoặc chìa khóa của riêng bạn. Điều khoản