錯誤
所有錯誤都有相同的結構和固定不變的 code。請按代碼分支處理——訊息是寫給人看的,措辭可能會更改。
{ "error": { "code": "invalid_key", "message": "That API key does not exist." } }
部分錯誤除這兩個欄位外,還帶有額外欄位:parameter 指出出錯的參數,retry_after 指出需等待多久,limit 及 used 則用於已用完的配額。
所有代碼
| 狀態 | 代碼 | 出現時機 |
|---|---|---|
| 400 | missing_query | query 為空或缺失。 |
| 400 | unknown_format | format 不是六種格式之一。 |
| 400 | unknown_column | columns 指定了不存在的欄位。 |
| 400 | format_not_available | 在返回內容並非結果列表的地方要求了平面格式。 |
| 400 | per_page_too_large | per_page 超出您方案的項數上限。錯誤中會註明上限。 |
| 400 | invalid_json | POST 內容不是有效的 JSON。 |
| 401 | missing_key | 沒有 Authorization: Bearer 標頭。 |
| 401 | invalid_key | 此 Token 不對應任何帳戶。 |
| 403 | plan_required | 帳戶沒有付費方案。 |
| 404 | unknown_endpoint | 沒有此路徑。錯誤中會列出已知的路徑。 |
| 405 | method_not_allowed | 唯讀 API。請使用 GET,或以 POST 發送 JSON 內容。 |
| 429 | too_many_requests | 請求速度超過每分鐘十個(API 與 MCP 合計)。 |
| 429 | quota_exceeded | 當日的搜尋配額已用完。 |
| 429 | snippet_quota_exceeded | 當日的程式碼片段配額已用完。不帶程式碼片段的搜尋仍可使用。 |
如何處理
- 400:請求本身有誤,重試也無補於事。
parameter欄位會指出是哪個參數。 - 401、403:Token 或方案的問題。在情況改變之前,不值得重試。
- 429
too_many_requests:等待retry_after秒後重試。這次請求沒有消耗任何東西。 - 429
quota_exceeded:配額會在下一個 UTC 午夜恢復;retry_after會告訴您還有多久。提早重試也無補於事。 - 5xx:我們的問題。請逐步延長間隔後重試。
錯誤與格式
錯誤以 JSON 返回;如請求了 format=xml,則以 XML 返回。平面格式沒有表示錯誤的結構,因此要求 csv 但失敗的請求會收到 JSON——所以讀取 CSV 的用戶端應檢查狀態碼,而不是假設每個看似 200 的回應內容都是結果。
不看本頁也能讀取代碼
GET / 會以 JSON 列出上述所有代碼及其含義。它無須 Token,因此無須任何人開啟瀏覽器,也能針對整套代碼編寫用戶端。
curl https://api.publicwww.com/下一頁 網域集