エラーコード (Errors)
Findip API は標準 HTTP ステータスコードを使用し、原因の詳細を含む JSON エラーレスポンスを返します。
エラーレスポンスの形式
ほとんどのエラーレスポンスは次の構造に従います。
{
"detail": "人が読めるエラーメッセージ"
}ただし 422 リクエスト検証エラーだけは、detail が文字列ではなくフィールド単位のエラーオブジェクトの配列になります。detail を文字列と決めつけず、型を確認してから処理してください。
HTTP ステータスコード
成功
| コード | ステータス | 説明 |
|---|---|---|
200 | OK | リクエスト成功。 |
クライアントエラー
| コード | ステータス | 説明 |
|---|---|---|
400 | Bad Request | 不正なリクエスト形式(例: 不正な日付形式、4 文字未満の IPC コード、query・image_url・sequence をすべて省略)。 |
401 | Unauthorized | API キーの欠落または無効。X-API-Key ヘッダをご確認ください。 |
403 | Forbidden | API キーが無効化されています。 |
422 | Unprocessable Entity | リクエスト検証に失敗(必須フィールドの欠落、型/値の誤り)。 |
429 | Too Many Requests | 検索クレジット不足、または1分あたり60リクエストのレート制限に到達しました。プランをアップグレードするか、有料プランは次回請求日のリセットまでお待ちください。 |
サーバーエラー
| コード | ステータス | 説明 |
|---|---|---|
500 | Internal Server Error | 予期せぬサーバー側エラーが発生しました(埋め込み失敗を含む)。少し時間をおいてから再試行してください。 |
503 | Service Unavailable | サーバーが一時的に利用できません(メンテナンス、高負荷、または認証サービス障害)。 |
よくあるエラーケース
API キーの欠落・誤り
{
"detail": "Missing X-API-Key header"
}{
"detail": "Invalid API key"
}リクエストに X-API-Key: pmk_live_... ヘッダが含まれているかご確認ください。
無効化された API キー
{
"detail": "API key is deactivated"
}キーは存在しますが無効化されています。ご契約のお客様は、ダッシュボードの API キー 画面から新しいキーを発行していただけます。
検索クレジット不足
未使用の検索クレジットは次の周期に繰り越されません。検索クレジットに現金価値はなく、他のアカウントへ譲渡できません。サーバーが受け付けたテキスト検索は1クレジット、画像(図面)検索・配列検索とトレンド分析は2クレジット、詳細・図面・番号照会は0クレジットです。LLMが1つの回答のために複数回検索すると、受け付けられた検索ごとにクレジットを使用します。操作ごとの単価は 認証 の表をご参照ください。
1分あたりのAPIリクエスト制限はクレジットとは別にリクエスト数を計算し、0クレジットの呼び出しも含みます。detailの文言と任意メタデータはバックエンドのバージョンにより異なるため、クライアントは文字列ではなくHTTP 429ステータスを基準に処理してください。使用量ダッシュボードでクレジット残高をご確認ください。
リクエスト検証エラー
{
"detail": [
{
"type": "string_type",
"loc": ["body", "query"],
"msg": "Input should be a valid string",
"input": 123
}
]
}型や値がスキーマと一致しません。loc が問題のフィールドパスを、msg が理由を示します。Search APIのリクエストスキーマをご確認ください。
定義されていないフィールドを送ってもエラーにはなりません — サーバーが黙って無視して 200 を返すため、パラメータ名のタイプミスはエラーではなくフィルタが効いていない結果として現れます。
不正なパラメータ
{
"detail": "invalid date: '2024/01/01' (expected YYYY-MM-DD)"
}特許詳細取得における項目ごとの not_found
POST /api/v1/patents/details は、一部の ID を解決できない場合でも 200 OK を返します。解決できなかった ID は、トップレベルのエラーではなく patents 配列内に {"patent_id": "...", "error": "not_found"} として現れます。各エントリを個別にご確認ください。
{
"patents": [
{ "patent_id": "KR1020230012345A", "metadata": { ... }, "content": "..." },
{ "patent_id": "US99999999B2", "error": "not_found" }
]
}エラー処理のベストプラクティス
- レスポンスボディをパースする前に必ず HTTP ステータスコードを確認してください。
429・500時は指数バックオフ (Exponential Backoff) でリトライしてください。- デバッグのため、エラーレスポンス全体をログに残してください。
detailフィールドに原因特定の主要情報が入ります。 POST /api/v1/patents/detailsでは、200レスポンスでも各項目のerror: "not_found"を確認してください。- 適切なリクエストタイムアウトを設定してください。検索は通常 2–6 秒で完了しますが、余裕を見て 30 秒を、詳細取得・図面・カバレッジなどその他のエンドポイントは 10 秒を推奨します。