API / 版本 1

以穩定的 JSON 呈現證據。

公開 API 所揭露的觀測與網站相同,皆附有時間戳記。此 API 為唯讀,且不需要金鑰或帳號。

請求與快取

每個回應都是 application/json,並帶有 Cache-Control: public, s-maxage=60, stale-while-revalidate=300。遵守該標頭不會對你造成任何成本,也能讓索引的供應維持低廉,因此請從你的快取讀取,而不要輪詢。僅提供 GET 與 HEAD;任何其他方法都會傳回 405,並附上 Allow 標頭。

錯誤絕不會只傳回狀態碼。回應主體一律是物件,其中包含可安全用於分支判斷的 code,以及為人撰寫的 message:

{ "error": { "code": "invalid_limit", "message": "limit must be an integer from 1 to 100" } }

列出伺服器

GET /api/v1/servers
q
比對標題、登錄名稱與說明的自由文字。
state
verified、stale、broken、auth_required 或 unverifiable 其中之一。
package
套件登錄檔類型:npm、pypi 或 oci。
transport
Registry 紀錄所宣告的傳輸方式,例如 stdio。
client
用戶端代稱,如「用戶端」頁面所列,例如 claude-code。 公開 API
limit
1 到 100 的整數。預設為 25。超出此範圍的值會被拒絕,而不是被截斷,因此用戶端絕不會在未被告知的情況下,拿到與要求不同的資料列數。
cursor
前一個回應中的 nextCursor。第一頁請省略此參數;最後一頁時其值為 null。
GET /api/v1/servers?state=verified&package=npm&limit=2

{
  "data": [
    {
      "id": "srv_01J…",
      "registryName": "example/one",
      "title": "Example Server",
      "description": "What the server says it does.",
      "state": "verified",
      "observedAt": "2026-09-15T00:00:00.000Z",
      "toolCount": 3,
      "url": "/servers/example/one"
    }
  ],
  "nextCursor": null
}

伺服器詳細資料

GET /api/v1/servers/:namespace/:name

在 data 底下傳回某部伺服器的 Registry 中介資料、可執行的套件,以及公開觀測記錄。該記錄中的每次執行都會註明所測試的確切套件版本,而該版本通常不是現今發布的版本。未知的組合會傳回 404,並帶有錯誤碼 not_found。

驗證執行

GET /api/v1/verification-runs/:id

依識別碼取得單一觀測。尚未通過確認規則的執行不會出現在這裡,並會傳回 404 與錯誤碼 not_found —— 與從未存在過的執行得到相同答案,因為兩者之間的任何差異,都會揭露該規則所要保留的失敗。

資料集統計資料

GET /api/v1/stats
{ "data": { "indexedServers": 979, "verifiedServers": 0, "observedAt": null } }

錯誤碼

invalid_limit
400 — limit 不是 1 到 100 的整數。
invalid_cursor
400 — cursor 格式錯誤,或是針對不同的排序順序所產生。請從第一頁重新開始。
not_found
404 — 沒有這部伺服器,或沒有具備該識別碼的可發布執行。
method_not_allowed
405 — 此 API 為唯讀。回應會列出所提供的方法。

未揭露的內容

內部的 stderr、工作程序租約,以及待確認的詳細資料永遠不會發布;狀態一律帶有其所描述之觀測的時間戳記,而不是你查詢當下的時間。