Skip to Content
APIリファレンスエラーコード

エラーコード

TWP公開APIが返すエラーコードの一覧です。

エラーレスポンス形式

{ "error": { "code": "ERROR_CODE", "message": "エラーの説明" } }

バリデーションエラー(問い合わせAPI)の場合は、詳細情報が含まれます。

{ "error": { "code": "VALIDATION_ERROR", "message": "入力内容に誤りがあります。", "details": [ { "field": "inquirer_email", "message": "メールアドレスの形式が正しくありません" } ] } }

共通エラーコード

認証・認可

APIキーの検証はAPIゲートウェイで行われるため、認証の段階で拒否されたときは error オブジェクトを持たない次の形で返ります。キーが無い・形式が違う・存在しない・無効化済み・有効期限切れ・テナントが利用停止中のいずれも同じ応答で、理由は区別されません。

{ "message": "Forbidden" }
状況HTTPステータスレスポンス
APIキーが無い・無効・無効化済み・期限切れ403{"message": "Forbidden"}
そのAPIに必要な権限がキーに無い403error.code: FORBIDDEN(Insufficient permissions)
MCP接続(OAuth)の資格情報で呼び出した403error.code: FORBIDDEN
クレジット不足・API利用の無効化403下記の形式

クレジット不足などでAPIの利用が止まっているときは、次の形式で返ります。error_code は credit_exhausted(クレジット残高不足)または manually_disabled(管理者による無効化)です。

{ "message": "Forbidden", "error_code": "credit_exhausted", "error_description": "テナントのクレジット残高が不足しているため、APIの利用が一時停止されています。" }

リクエスト

コードHTTPステータス説明
MISSING_BODY400リクエストボディが空
INVALID_JSON400JSONのパースエラー
VALIDATION_ERROR422バリデーションエラー(問い合わせAPI)
NOT_FOUND404リソースが見つからない
METHOD_NOT_ALLOWED405許可されていないHTTPメソッド

サーバー

コードHTTPステータス説明
INTERNAL_ERROR500サーバー内部エラー

短時間にリクエストが集中した場合は、429 と {"message": "Too Many Requests"} が返ることがあります(error オブジェクトは付きません)。間隔を空けてリトライしてください。

コンテンツAPI固有のエラー

コードHTTPステータス説明
CATEGORY_NOT_FOUND404指定されたカテゴリが存在しない
MISSING_CATEGORY400カテゴリの指定が必要
MISSING_ID400IDの指定が必要
MISSING_SLUG400スラッグの指定が必要
INVALID_CURSOR400カーソルの形式が不正
INVALID_LIMIT400limit値が不正(1〜100の範囲外)
INVALID_SORT_PARAM400ソートパラメータが不正
TOO_MANY_FILTERS400フィルター条件が多すぎる(最大3件)
TAG_FILTER_SORT_NOT_SUPPORTED400タグフィルターとソートの併用は非対応

検索API固有のエラー

コードHTTPステータス説明
MISSING_QUERY400検索クエリが指定されていない
QUERY_TOO_LONG400検索クエリが長すぎる(500文字超)
INVALID_SIZE400size値が不正(1〜100の範囲外)
INVALID_FROM400from値が不正(負の値)
SEARCH_WINDOW_EXCEEDED400from + size が10,000件を超えている(絞り込み条件を追加してください)
SEARCH_ERROR500検索エンジンエラー

プレビュー機能のエラー

コードHTTPステータス説明
INVALID_PREVIEW_TOKEN401プレビュートークンが無効または期限切れ
PREVIEW_TOKEN_TENANT_MISMATCH401プレビュートークンのテナントが一致しない
PREVIEW_TOKEN_VERIFICATION_ERROR401プレビュートークンの検証エラー
INVALID_PREVIEW_TYPE400プレビュートークンの種類が不正
CONTENT_ID_MISMATCH403プレビュートークンとコンテンツIDが一致しない

問い合わせAPI固有のエラー

コードHTTPステータス説明
VALIDATION_ERROR422必須項目の不足・形式の誤り(details に項目ごとの理由が入ります)。存在しない・無効なカテゴリコードを指定した場合もこのコードになります
server_error500問い合わせの作成に失敗した

エラーハンドリングの例

async function fetchContent(id) { const response = await fetch(`${API_URL}/v1/cms/contents/${id}`, { headers: { 'X-API-Key': API_KEY }, }); if (!response.ok) { const body = await response.json(); // 認証エラー・クレジット不足・リクエスト集中は error オブジェクトを持たない if (!body.error) { if (body.error_code === 'credit_exhausted') { throw new Error('クレジット残高が不足しています'); } if (response.status === 429) { // リクエスト集中 - 間隔を空けてリトライ await sleep(1000); return fetchContent(id); } // 認証エラー - APIキーを確認 throw new Error('APIキーを確認してください'); } switch (body.error.code) { case 'NOT_FOUND': // コンテンツが見つからない return null; case 'FORBIDDEN': // 権限不足 - APIキーのパーミッションを確認 throw new Error('APIキーの権限を確認してください'); default: throw new Error(body.error.message); } } return response.json(); }
Last updated on