API リファレンス

API 概要

Base URL、認証、エラー形式、および全エラーコードリファレンス

Base URL

https://openapi.thunderbit.com/openapi/v1

認証

すべてのエンドポイントで HTTP Bearer(API Key)を使用します:

Authorization: Bearer YOUR_API_KEY

Thunderbit ダッシュボード からキーを取得してください。キーは取り消し可能で環境ごとに分離されています —— 本番キーをクライアント側コードに埋め込まないでください。

エラーレスポンスの形式

すべてのエラーレスポンスは同じエンベロープを共有します。デフォルトは LEGACY 形式:

{
  "success": false,
  "error": {
    "code":    "INVALID_URL",
    "status":  400,
    "message": "The provided URL is not valid",
    "details": null
  }
}

Note: 以前 GOOGLE_RPC 代替エンベロープが記載されており、codestatus の型が入れ替わっていました(string ↔ number)。このモードは 非推奨 です — 厳格型のクライアント(OpenAPI codegen、Pydantic、serdeencoding/json)は逆シリアライズに失敗します。上記の LEGACY 形式を使ってください。将来も code: stringstatus: number を維持します。 details フィールドには構造化されたコンテキストが含まれることがあります —— 例えば INVALID_PARAMETER では { field: message } 形式のフィールド単位の検証エラーが返されます。

標準エラーコード

HTTPCode意味
400INVALID_URLURL の形式が無効
400INVALID_SCHEMAJSON Schema が無効
400INVALID_PARAMETER1 つ以上のリクエストパラメータが検証に失敗
400SCHEMA_OR_PROMPT_REQUIRED抽出には schema(または prompt)が必要
400SCHEMA_AND_PROMPT_EXCLUSIVEschemaprompt は同時指定不可
400BATCH_SIZE_EXCEEDEDバッチリクエストが 100 URL 上限を超過
400MALFORMED_REQUEST_BODYリクエストボディが有効な JSON ではない
401API_KEY_MISSINGAuthorization ヘッダーが欠落
401API_KEY_INVALID_FORMATAPI Key の形式が無効
401API_KEY_NOT_FOUNDAPI Key がシステム内に見つからない
401API_KEY_REVOKEDAPI Key が取り消し済み
401API_KEY_DISABLEDAPI Key が無効化済み
401API_KEY_EXPIREDAPI Key が期限切れ
401INVALID_API_KEY(非推奨、上記の具体的な API_KEY_* を使用してください)
402INSUFFICIENT_CREDITSアカウントのクレジット不足
404JOB_NOT_FOUNDバッチジョブが見つからない
404RESOURCE_NOT_FOUNDリソースが見つからない
408REQUEST_TIMEOUTAPI リクエストがタイムアウト
408SCRAPE_TIMEOUT対象ページの応答がタイムアウト
422SCRAPE_SSL_ERROR対象サイトに SSL/TLS の問題
422SCRAPE_DNS_RESOLUTION_ERROR対象ホスト名を解決できない
422SCRAPE_SITE_ERROR対象サイトがエラーを返した
422SCRAPE_EMPTY_CONTENT対象ページが空のコンテンツを返した
422SCRAPE_CONTENT_TOO_LARGE対象ページがサイズ上限を超過
422SCRAPE_TARGET_FORBIDDEN対象サイトがアクセスを拒否(403)
422SCRAPE_TARGET_NOT_FOUND対象 URL が 404 を返した
422SCRAPE_UNSUPPORTED_FILEサポートされていないファイル形式
429RATE_LIMIT_EXCEEDEDアカウントのレート制限に達した
429SCRAPE_TARGET_RATE_LIMITED対象サイトがリクエストにレート制限をかけた
500INTERNAL_ERROR一般的な内部エラー
500DISTILL_FAILED蒸留パイプラインが失敗
500EXTRACT_FAILED抽出パイプラインが失敗
500PIPELINE_ERRORパイプラインのいずれかのステップで失敗
500AI_EXTRACTION_FAILEDAI 抽出ステップが失敗
500MARKDOWN_CONVERSION_FAILEDHTML から Markdown への変換が失敗
502SCRAPE_ALL_PROVIDERS_FAILEDすべてのスクレイピングプロバイダが失敗
502UPSTREAM_BAD_GATEWAYアップストリームが無効な応答を返した
503SCRAPE_PROVIDER_UNAVAILABLEスクレイピングプロバイダが利用不可
503AI_SERVICE_UNAVAILABLEAI サービスが利用不可
503DOWNSTREAM_SERVICE_UNAVAILABLEダウンストリームサービスが一時的に利用不可
504UPSTREAM_TIMEOUTアップストリームゲートウェイがタイムアウト
504AI_TIMEOUTAI サービス呼び出しがタイムアウト

リトライ戦略リファレンス

エラー区分リトライ?方法
4xx(入力エラー)❌ 不可リクエストを修正して再試行
401(認証)❌ 不可API Key を再発行 / 差し替え
402(クレジット)❌ 不可チャージ
408 / 504(タイムアウト)✅ 可指数バックオフ、最大 3 回
429(レート制限)✅ 可X-RateLimit-Reset まで待機 —— レート制限 を参照
5xx(サーバー)✅ 可指数バックオフ、最大 3 回
SCRAPE_TARGET_*(対象サイト)⚠️ ケースバイケースrenderMode を上げて 1 回再試行