包括的な開発者ガイドとベストプラクティスで、すばやく開発を始められます。
エラーコードと報告
エラーハンドリング
失敗時は共通の error オブジェクトを返します。本章では HTTP ステータスコード、モジュール別エラーコード、request_id を用いた問題報告手順を整理します。
共通エラー構造
すべてのエラーは error オブジェクトに包まれ、固定 4 フィールド(code / message / details / request_id)を持ちます。
エラー応答例
json
{
"error": {
"code": "validation_error",
"message": "Request validation failed",
"details": {
"issues": [
{ "field": "text", "message": "String must contain at most 5000 character(s)" }
]
},
"request_id": "0af7651916cd43dd8448eb211c80319c"
}
}汎用エラーメッセージ
一部のエラー(internal_server_error / service_unavailable / translation_failed / asr_failed など)の message は汎用文で、デバッグ可能な詳細は含みません。サポートへの問い合わせ時は request_id を添えてください。
HTTP ステータスコード
- 200 OK — リクエスト成功。
- 400 Bad Request — パラメータが仕様に反しています。
- 401 Unauthorized — キーの欠落・無効・失効。
- 404 Not Found — パスまたはリソースが存在しません。
- 409 Conflict — 名前または用語の重複。
- 413 Payload Too Large — 音声が上限超過(JSON/Base64 経路は raw 1 MB で audio_too_long、multipart は 15 MB で file_too_large)。
- 429 Too Many Requests — RPM または当期クォータ超過(rate_limited_* / quota_exceeded_*)。
- 500 Internal Server Error — サーバー内部エラー。
- 502 Bad Gateway — 処理失敗(translation_failed / asr_failed)。
- 503 Service Unavailable — 一時的に利用不可。
- 504 Gateway Timeout — 処理タイムアウト。
共通エラーコード
どのエンドポイントでも発生し得ます:
- validation_error(400)— リクエストボディのバリデーション失敗。details.issues にフィールド単位のエラーを列挙。
- unauthorized(401)— キーの欠落・無効・失効。
- not_found(404)— パスが存在しません。
- internal_server_error(500)— サーバー内部エラー。
- service_unavailable(503)— サービスが一時的に利用不可。しばらくして再試行を。
翻訳モジュールのエラーコード
- model_not_found(400)— 指定のモデルコードが存在しません。
- content_policy_violation(400)— 安全ポリシー違反のコンテンツ。
- dictionary_type_mismatch(400)— 辞書 ID の type がパラメータと不一致(例:forced_replacement 辞書を vocabulary に指定)。
- dictionary_not_found(404)— 指定の辞書が存在しません。
- translation_failed(502)— 翻訳サービスが一時的に利用できません。
- translation_timeout(504)— 翻訳処理がタイムアウトしました。
音声認識モジュールのエラーコード
- unsupported_audio_format(422)— 音声フォーマットを判別できません。
- asr_audio_decode_error(422)— Base64 が破損、または内容と宣言フォーマットが不一致。
- asr_content_policy_violation(400)— 安全ポリシー違反のコンテンツ。
- audio_too_long(413)— JSON(Base64)経路の音声が raw 1 MB 上限を超過。大きいファイルは multipart で。
- file_too_large(413)— multipart アップロードが 15 MB 上限を超過。
- asr_service_busy(503)— 音声認識サービスがビジー状態。バックオフ後に再試行を。
- asr_failed(502)— 音声認識サービスが一時的に利用できません。
- asr_timeout(504)— 音声認識処理がタイムアウトしました。
辞書モジュールのエラーコード
- dictionary_not_found(404)— 指定の辞書が存在しません。
- term_not_found(404)— 指定の用語が存在しません。
- duplicate_name(409)— 辞書名が重複。
- duplicate_term(409)— 同一辞書内で用語が重複。
日付フィールドの形式
応答内の `created_at` / `updated_at` はすべて ISO 8601 UTC、`YYYY-MM-DDTHH:mm:ss.sssZ` 形式です。クライアント側で `new Date(...)` を呼んでローカルタイムゾーンに変換してください。
問題を報告する
問題報告時は request_id を必ず添えてください。サーバー側ログから該当リクエストの全コンテキストを特定できます。すべてのエラー応答に request_id が含まれ、SSE の error イベントも同様です。
報告テンプレート
次の情報をご提供ください:(1) エンドポイントパスと HTTP メソッド、(2) リクエスト発生時刻(タイムゾーン付き)、(3) error.code、(4) request_id、(5) 再現手順または最小再現例。報告に API キーの生値は含めないでください。

