メインコンテンツまでスキップ

エラー処理

PROOF APIは標準HTTPステータスコードを使用します。エラーレスポンスには人が読めるメッセージを含むdetailフィールドが含まれます。

エラーコード​

ステータス意味アクション
400不正なリクエスト — 無効なファイル形式、欠落フィールドリクエスト形式を確認
401無効または欠落APIキーAPIキーを確認
402クレジット不足/paymentでクレジットを追加購入
403禁止 — スコープ欠落または開発者でないキースコープを確認
404ジョブまたはリソースが見つからないジョブIDを確認
413ファイルが大きすぎるまたはページが多すぎるファイルサイズを減らすまたはPDFを分割
429レート制限超過Retry-Afterヘッダー後に待機して再試行
502ダウンストリーム処理エラー指数バックオフで再試行

エラーレスポンス形式​

{
"detail": "Insufficient credits"
}

再試行戦略​

429および502エラーの場合、指数バックオフを使用してください:

import time
import requests

def retry_request(url, max_retries=3):
for attempt in range(max_retries):
resp = requests.get(url, headers=HEADERS)
if resp.status_code == 429:
wait = int(resp.headers.get("Retry-After", 5))
time.sleep(wait)
continue
if resp.status_code == 502 and attempt < max_retries - 1:
time.sleep(2 ** attempt)
continue
return resp
return resp

ジョブエラー​

ジョブが失敗した場合、GET /jobs/{id}は以下を返します:

{
"job_id": "job-abc123",
"status": "error",
"error_log": "LLM inference timeout after 120s"
}

一般的なジョブエラー:

  • LLM推論タイムアウト — モデルが長時間かかった、再試行またはページ数を減らす
  • サポートされていないファイル形式 — サポート形式を確認
  • Storageアップロード失敗 — 一時的インフラエラー、再試行
  • クレジット不足 — 確認ステップで検出、/paymentでクレジット購入