> ## Documentation Index
> Fetch the complete documentation index at: https://docs.x.com/llms.txt
> Use this file to discover all available pages before exploring further.

# エラーコードとレスポンス

> X Ads API のレスポンス構造とエラー処理のリファレンス。HTTP ステータスコード、エラーコード定数、一般的なデバッグ・トラブルシューティングのヒントを掲載します。

## 典型的なレスポンス構造

成功レスポンスは 200 系の HTTP コードと、リクエストされた/作成された/変更された/削除されたオブジェクトを含む JSON ベースのペイロードで示され、サーバーがリクエストをどう解釈したかも表現されます。

成功したリクエストを発行した場合、レスポンスの一部としてリクエストをエコーバックする `request` ノードを受け取ります。

*例:* [GET accounts/abcdefg/campaigns?with\_deleted=true](/x-ads-api/campaign-management/reference#campaigns)

```json theme={null}
{
  /* the data of your response... */,
  "request": {
    "params": {
      "account_id": "abcdefg",
      "with_deleted": "true"
    }
  }
}
```

JSON レスポンスの `data` フィールドには、対象リソースに関連する固有のオブジェクトが含まれます。`data` ノードの形式は、レスポンスに 1 つまたは複数の結果が含まれる場合は JSON 配列、レスポンスに 1 つの結果しか含まれ得ない場合は JSON ハッシュとして返されます。まれに、通常はコレクションを含むはずのレスポンスがハッシュマップで返される場合があります。その場合は、単一のハッシュマップを `type` フィールドで指定された同種オブジェクトとみなしてください。

## エラーレスポンス構造

エラーレスポンスは、200 系以外の HTTP コードで返されます。通常は JSON レスポンスが添付されますが、一部のエラーは異なる種類のボディで応答します。レスポンス構造がパースできない場合、HTTP コードの本来の意味を優先してください。たとえば、HTML レスポンスとともに HTTP 404 が返ることがまれにあります。この場合、コンテンツが見つからない(HTTP 404 は「Not Found」を意味します)と想定して差し支えありません。

典型的なエラーレスポンスは、成功レスポンスと同様の構造に従います。エラーの内容は、レスポンスの `errors` ノードで伝えられます。`errors/code` ノードは、解決策の判断にプログラムで利用できる CAPS\_CASE 定数のエラーコードを示します。`errors/message` ノードは、通常英語による、人間が読めるエラーの説明を示します。より詳細なエラーの内容を示す追加フィールドが付与される場合もあります。

```json title="Example response" lines wrap icon="https://mintcdn.com/x-preview/Vn2KEkZaPF9LiPi3/icons/xds/icon-brackets.svg?fit=max&auto=format&n=Vn2KEkZaPF9LiPi3&q=85&s=ed2428e77bab43e57800e1a590e982fa" theme={null}
{
  "errors": [
    {
      "parameter": "start_time",
      "details": "invalid date",
      "code": "INVALID_PARAMETER",
      "value": "",
      "message": "Expected time, got \"\" for start_time"
    }
  ],
  "request": {
    "params": {
      "account_id": "hkk5"
    }
  }
}
```

上の例では、`start_time` パラメーターに無効な値を指定して analytics エンドポイントへリクエストしました。無効なパラメーターを含むリクエストの `errors/code` は `INVALID_PARAMETER` です。

| HTTP Code | Error Code                                                  |
| :-------- | :---------------------------------------------------------- |
| 403       | `ACCOUNT_LOCKED_OUT`                                        |
| 404       | `ACCOUNT_MEDIA_NOT_FOUND`                                   |
| 403       | `ACCOUNT_NOT_FOUND`                                         |
| 403       | `ACTION_NOT_ALLOWED`                                        |
| 404       | `APP_EVENT_PROVIDER_CONFIGURATION_NOT_FOUND`                |
| 404       | `APP_EVENT_TAG_NOT_FOUND`                                   |
| 404       | `BEHAVIOR_OR_BEHAVIOR_EXPANDED_NOT_FOUND`                   |
| 404       | `CAMPAIGN_NOT_FOUND`                                        |
| 408       | `CANCELLED_REQUEST`                                         |
| 404       | `CARD_NOT_FOUND`                                            |
| 403       | `CURRENT_USER_SUSPENDED`                                    |
| 400       | `DUPLICATE_TWEET`                                           |
| 400       | `EXCLUSIVE_PARAMETERS`                                      |
| 400       | `FEATURE_NOT_AVAILABLE`                                     |
| 403       | `FUNDING_INSTRUMENT_ACCESS_NOT_ALLOWED`                     |
| 403       | `FUNDING_INSTRUMENT_EXCEEDS_AVAILABLE_CREDIT_LIMIT`         |
| 404       | `FUNDING_INSTRUMENT_NOT_FOUND`                              |
| 403       | `GENERIC_TWEET_ERROR`                                       |
| 400       | `ILLEGAL_CHARACTERS`                                        |
| 400       | `INCLUSIVE_PARAMETERS`                                      |
| 500       | `INTERNAL_ERROR`                                            |
| 404       | `INVALID_APP_ID`                                            |
| 404       | `INVALID_APP_STORE`                                         |
| 400       | `INVALID_DENOMINATION`                                      |
| 400       | `INVALID_FUNDING_INSTRUMENT`                                |
| 404       | `INVALID_IAB_CATEGORY`                                      |
| 404       | `INVALID_ID_ILLEGAL_CHARACTERS`                             |
| 400       | `INVALID_IMAGE`                                             |
| 400       | `INVALID_MEDIA`                                             |
| 400       | `INVALID_MEDIA_ID`                                          |
| 400       | `INVALID_PARAMETER`                                         |
| 400       | `INVALID_PLACEMENT_TYPE`                                    |
| 400       | `INVALID_TAILORED_AUDIENCE_TYPE`                            |
| 400       | `INVALID_TARGETING_TYPE`                                    |
| 400       | `INVALID_TIME_WINDOW`                                       |
| 400       | `INVALID_TV_SHOW_LOCATIONS`                                 |
| 400       | `INVALID_TWEET`                                             |
| 400       | `INVALID_USER`                                              |
| 400       | `INVALID_USER_ID`                                           |
| 423       | `LOCK_ACQUISITION_TIMEOUT`                                  |
| 404       | `LINE_ITEM_APP_NOT_FOUND`                                   |
| 404       | `LINE_ITEM_NOT_FOUND`                                       |
| 404       | `MACT_APP_NOT_FOUND`                                        |
| 403       | `MALWARE_STATUS`                                            |
| 404       | `MEDIA_CREATIVE_NOT_FOUND`                                  |
| 404       | `MEDIA_NOT_FOUND`                                           |
| 405       | `METHOD_NOT_ALLOWED`                                        |
| 400       | `MISSING_PARAMETER`                                         |
| 404       | `NO_PROVIDER_AVAILABLE_FOR_THIS_CLIENT_APPLICATION`         |
| 404       | `NOT_FOUND`                                                 |
| 404       | `PROMOTABLE_USER_NOT_FOUND`                                 |
| 404       | `PROMOTED_ACCOUNT_NOT_FOUND`                                |
| 404       | `PROMOTED_TWEET_NOT_FOUND`                                  |
| 403       | `READONLY_CLIENT_APPLICATION`                               |
| 400       | `REQUEST_TOO_COMPLEX`                                       |
| 404       | `ROUTE_NOT_FOUND`                                           |
| 503       | `SERVICE_UNAVAILABLE`                                       |
| 503       | `OVER_CAPACITY`                                             |
| 400       | `SPEND_EXCEEDS_BUDGET`                                      |
| 404       | `TAILORED_AUDIENCE_CHANGE_FILE_NOT_FOUND`                   |
| 404       | `TAILORED_AUDIENCE_NOT_FOUND`                               |
| 404       | `TAILORED_AUDIENCE_OR_TAILORED_AUDIENCE_EXPANDED_NOT_FOUND` |
| 404       | `TARGETING_CRITERION_NOT_FOUND`                             |
| 400       | `TOO_MANY_CAMPAIGNS`                                        |
| 400       | `TOO_MANY_LINE_ITEMS`                                       |
| 429       | `TOO_MANY_REQUESTS`                                         |
| 400       | `TV_SHOW_OUTSIDE_MARKET`                                    |
| 400       | `TWEET_CANNOT_BE_BLANK`                                     |
| 403       | `TWEET_IS_SPAM`                                             |
| 404       | `TWEET_NOT_FOUND`                                           |
| 429       | `TWEET_RATE_LIMIT_EXCEEDED`                                 |
| 401       | `UNAUTHORIZED_ACCESS`                                       |
| 403       | `UNAUTHORIZED_CLIENT_APPLICATION`                           |
| 400       | `UNKNOWN_CARD_TYPE`                                         |
| 400       | `UNKNOWN_CRITERIA_TYPE`                                     |
| 403       | `USER_NOT_FOUND`                                            |
| 404       | `WEB_EVENT_TAG_NOT_FOUND`                                   |
