コンテンツにスキップ

エラーコード

失敗時は HTTP ステータスコードと message フィールドを確認してください。

業務エラーは常に機械可読な code を返すため、プログラムで分岐できます。パラメータ検証エラーや存在しないルートは Laravel 標準形式 { “message”: ”…”, “errors”: { … } } を返します。送信前に入力値の検証を行ってください。

{
"code": "insufficient_balance",
"message": "Insufficient balance. Please top up and try again."
}
codeHTTP説明
unauthorized401APIキーが未指定、無効、または無効化されています。
account_banned403アカウントは停止中です。サポートにご連絡ください。
invalid_realtime_request400リアルタイムリクエストの形式が不正です(例:country 未指定時に + 国際プレフィックスのない電話番号)。
idempotency_key_required400リアルタイムリクエストには Idempotency-Key ヘッダーが必要です。
invalid_idempotency_key422Idempotency-Key が不正です:英数字と . _ : - のみ、1〜128 文字。
idempotency_conflict409同じ Idempotency-Key が異なる内容のリクエストに使用されました。
request_in_progress409同一のリアルタイムリクエストが処理中です。少し待って再試行してください(Retry-After: 1)。
empty_input422アップロードされたファイルに有効な行がありません。
product_not_found422指定された製品スラッグが存在しないか無効です。
product_mode_not_supported422このエンドポイントはこの製品モードを受け付けません(リアルタイム製品を一括処理エンドポイントには送れません)。
invalid_country422その製品は指定された国に対応していません。
too_few_numbers422提出数が製品の最小件数に満たません。
too_many_numbers422提出数がプラットフォームの上限を超えています。
insufficient_balance402残高が不足しています。チャージ後に再試行してください。
realtime_disabled403このアカウントではリアルタイム検出が有効になっていません。
realtime_rate_limited429リアルタイム検出のレート制限を超えました。retry_after に従ってください。
product_pricing_unavailable503この製品の価格が未設定です。サポートにご連絡ください。
detection_capacity_unavailable503現在利用可能な検出ルートがありません。後でもう一度お試しください。
realtime_route_unavailable503現在利用可能なリアルタイムルートがありません。後でもう一度お試しください。
realtime_fact_cache_unavailable503リアルタイム検出の依存サービスが一時的に利用できません。後でお試しください。
realtime_rate_limiter_unavailable503レートリミッターが一時的に利用できません。後でお試しください。
internal_error500サーバー内部エラーです。同じ Idempotency-Key での再試行は安全です。

すべての失敗に code があるわけではありません。タスクエンドポイントは4つの状況を HTTP ステータスと message だけで報告します。これらの失敗はビジネスエラーの経路に到達する前に発生するためです:

HTTP状況本文
404task_id が存在しない、または別のアカウントに属していますmessage のみ
404GET /v1/tasks/{token}/download — 結果ファイルが利用できない、期限切れ、またはダウンロードできない状態ですmessage のみ
422GET /v1/tasks/{token}/result — 結果の準備ができていません。タスクが未完了か、ファイルが未生成か、期限切れですmessage のみ
422リクエストパラメータの検証に失敗しました{ "message": …, "errors": { … } }

これらは HTTP ステータスで分岐してください。message はログとインシデントを読む人向けであり、制御フロー用ではありません。

失敗への適切な対応は、リクエストを繰り返すことで異なる結果が得られるかどうかによって決まります。

変更せずに再試行すると、同じ失敗が繰り返されます。

unauthorized, account_banned, invalid_realtime_request, idempotency_key_required, invalid_idempotency_key, idempotency_conflict, empty_input, product_not_found, product_mode_not_supported, invalid_country, too_few_numbers, too_many_numbers, insufficient_balance, realtime_disabled, product_pricing_unavailable

一時的な問題です。同じリクエストは後で成功するはずです。

realtime_rate_limited, request_in_progress, detection_capacity_unavailable, realtime_route_unavailable, realtime_fact_cache_unavailable, realtime_rate_limiter_unavailable

リクエストが適用されたかどうかは不明です。同じキーで再試行してください。

internal_error