メインコンテンツへスキップ
X API は、その場での理解やデバッグに役立つ以下のレスポンスコードおよびエラーコードを提供します。詳しくは、下記のデバッグガイドとエラーインデックスを参照してください。 成功したレスポンスは 200 番台の HTTP ステータスコードと、要求されたオブジェクトの取得・作成・更新・削除に関する情報に加え、サーバーによるリクエスト解釈の結果を含む JSON ベースのペイロードで示されます。 エラーレスポンスは 200 番台以外の HTTP ステータスコードで返されます。エラーコードによって原因は異なります。X API は、すべてのリクエストに対して適切な HTTP ステータスコード を返すよう努めています。

X API v2 の HTTP ステータスコード

CodeTextDescriptionTroubleshooting tips
200OKリクエストは成功しました。
400Bad Requestリクエストが無効であるか、処理できません。付随するエラーメッセージが詳細を説明します。認証がない、またはクエリパラメータが無効なリクエストは無効とみなされ、この応答が返されます。JSON クエリの形式を再確認してください。たとえば、ルールに厳密一致やその他の演算子に関連する二重引用符が含まれる場合、JSON 構造と区別するためにバックスラッシュでエスケープする必要がある場合があります。
401Unauthorizedリクエストの認証に問題があります。これは、認証情報が欠落しているか不正確であることが原因の可能性があります。未定義のその他の状況で返される場合もあります。正しい認証方法を使用していること、また認証情報が正しいことを確認してください。
403Forbiddenリクエストは理解されていますが、拒否されたか、アクセスが許可されていません。付随するエラーメッセージが理由を説明します。使用しようとしているエンドポイントへのアクセス権が開発者アカウントに付与されていることを確認してください。アプリの許可リスト登録(例: Engagement API や Ads API)やアクセスの申請が必要な場合もあります。
404Not Found要求された URI が無効であるか、ユーザーなどの要求されたリソースが存在しません。有効なパラメータを使用し、利用中のエンドポイントに対して正しい URI を指定していることを確認してください。
409Connection Exceptionルールが設定されていないフィルタ済みストリームへの接続を試みた際に返されます。接続先のストリームに少なくとも 1 つのルールを作成していることを確認してください。フィルタ済みストリームはアクティブなルールに一致する Post のみを返します。ルールがない場合、ストリームは Post を返しません。
429Too Many Requestsアプリのrate limitまたはPost capを使い切ったため、リクエストを処理できない場合に返されます。詳しくはRate Limitingを参照してください。利用中のエンドポイントで許可されている時間枠あたりのリクエスト数を確認してください。時間枠のリセットを待ってください。リクエストを間隔を空けて送信してレート制限に達しないようにするか、次の利用可能なデータプランにアップグレードしてください。
500Internal Server Error何らかの不具合が発生しています。通常は一時的なエラーで、高負荷の状況やエンドポイントで一時的に問題が発生している場合などに起こります。他の人にも同様の問題が発生していないか、X API のステータスページ開発者コミュニティフォーラムを確認するか、時間をおいて再試行してください。
501UnimplementedX API はこのエンドポイントをサポートしておらず、リクエストを完了できません。
503Service UnavailableX のサーバーは稼働していますが、リクエスト過多で処理できません。後でもう一度お試しください。他の人にも同様の問題が発生していないか、X API のステータスページ開発者コミュニティフォーラムを確認するか、時間をおいて再試行してください。
リクエスト中にエラーが発生した場合、問題の診断に役立つエラーの詳細情報がレスポンスボディに返されます。type フィールド(URI)が問題の種類を示し、追加のフィールドが詳細を提供します。type、title、detail フィールドはこれらの本文で常に返されます(以下の表を参照)。以下の例のような追加フィールドは、エラーの種類によって異なります。
{
  "client_id": "101010101",
  "required_enrollment": "スタンダード ベーシック",
  "registration_url": "https://developer.twitter.com/en/account",
  "title": "クライアントアクセス拒否",
  "detail": "このリクエストは、要求されたエンドポイントに登録されている承認済みの開発者アカウントを使用して行う必要があります。詳細については、ドキュメントをご覧ください。",
  "reason": "クライアント未登録",
  "type": "https://api.x.com/2/problems/client-forbidden"
}

部分的なエラー

場合によっては、200 ステータスコードを返したレスポンスに、上記の詳細な errors が含まれることがあります。そのような場合、エンドポイントは返せる範囲の data を返しつつ、返せなかった内容についての詳細なエラーを提供するよう設計されています。 たとえば、Posts lookup endpoint では、X の開発者アプリから複数の ID をリクエストできます。これらの Post の一部が取得可能で、うち 1 つが削除されている場合、取得可能な Post はレスポンスの data フィールドで返されます。さらに、返却できなかったリクエスト対象の Post を示す追加の errors フィールドがペイロードに含まれます。問題の診断を容易にするため、完全なリクエストエラーと同じ形式が用いられます。

エラー情報

各Problemタイプは、発生した問題の内容を示します。想定されるProblemの一覧は、API specificationにも掲載しています。 X APIは、すべてのリクエストに対して適切なHTTPステータスコードを返すよう努めています。
タイトルタイプ説明
一般的なProblemabout:blankHTTPステータスコードで提供される情報以外の追加情報がない一般的なProblemです。
無効なリクエストのProblemhttps://api.X.com/2/problems/invalid-requestこのリクエストが無効であることを示すProblemです。リクエストにPOSTボディがある場合は、内容が有効なJSONであり、OpenAPI specに準拠していることを確認してください。
リソース未検出のProblemhttps://api.X.com/2/problems/resource-not-found指定されたPostやUserが存在しないことを示すProblemです。
リソース認可なしのProblemhttps://api.X.com/2/problems/not-authorized-for-resource特定のPostやUserを閲覧する権限がないことを示すProblemです。
クライアント禁止のProblemhttps://api.X.com/2/problems/client-forbiddenクライアントにこのリクエストの実行が禁止されていることを示すProblemです。
不許可リソースのProblemhttps://api.X.com/2/problems/disallowed-resourceリクエストされたリソースが本APIの要件に違反していることを示すProblemです。
非対応の認証のProblemhttps://api.X.com/2/problems/unsupported-authentication使用された認証方式がサポートされていないことを示すProblemです。
利用上限のProblemhttps://api.X.com/2/problems/usage-capped利用上限を超過したことを示すProblemです。
接続例外のProblemhttps://api.X.com/2/problems/streaming-connection接続に問題があることを示すProblemです。
クライアント切断のProblemhttps://api.X.com/2/problems/client-disconnectedクライアントが切断されました。
運用上の切断のProblemhttps://api.X.com/2/problems/operational-disconnect運用上の理由により切断されました。
ルール上限のProblemhttps://api.X.com/2/problems/rule-capルールの最大数を超過しました。
ルール長のProblemhttps://api.X.com/2/problems/rule-lengthアクセスレベルに基づき、クエリまたはルールの最大文字数を超過しました。access levelsを参照してください。
無効なルールのProblemhttps://api.X.com/2/problems/invalid-rules提出したルールが無効です。
重複ルールのProblemhttps://api.X.com/2/problems/duplicate-rules提出したルールが重複しています。

トラブルシューティングのヒント

アプリケーションの開発中に、エラーや想定外の問題が発生するのは珍しくありません。以下はコードをデバッグする際のヒントです。まず、問題を小さく分解して原因箇所を特定しましょう。たとえば、REST またはストリーミングのエンドポイントを統合している場合、原因は次のいずれかにある可能性があります。
  • エンドポイントには適切な認証が必要です。
  • エンドポイントには有効なパラメータとヘッダーが必要です。フィルタリングルールは正しい演算子と適切な構文で構築されている必要があります。
  • エンドポイントの URI が正しく、REST エンドポイントの場合は正しい HTTP メソッドを使用している必要があります。
  • アクセスしようとしているデータやリソースに権限がない(例:プライベートなデータは認証済みユーザーのみが利用可能)。
  • 現在のデータパッケージではアクセスできるエンドポイントやレート制限が限定されています。詳細は開発者ポータルをご確認ください。
  • コードでエンドポイント統合にサードパーティ製ライブラリを使用している。
  • コードがエンドポイントのレスポンスを正しくパースできていない。
エラーメッセージを確認しましょう。問題の見当をつけるのに役立ちます。各エラーコードに特化したトラブルシューティングのヒントは、エラーおよびレスポンスコードのセクションの表を参照してください。REST エンドポイントについては、PostmanInsomnia などの REST クライアントを使って上記の手順 (1)〜(5) を検証できます(“Postman を使い始める”ガイドをご覧ください)。REST クライアントでのリクエストが 200 の成功ステータスコードを返す場合、問題はエンドポイントのリクエスト自体ではなく、あなたのコードまたは使用しているライブラリ側にあると考えられます。ストリーミングエンドポイントについては、cURL(URL 構文でリクエストを送受信するコマンドラインツール)を使用して、問題がエンドポイントへのリクエスト(上記の手順 (1)〜(5))にあるのか、コード自体(上記の手順 (6)〜(7))にあるのかを切り分けできます。
  • エンドポイントに必要な適切な認証方法を使用していることを確認してください。エンドポイントの API リファレンスページで確認できます。
  • 認証情報が正しいことを確認してください。Apps セクション(開発者ダッシュボードの「Details」内)でアプリのキーやトークンを確認または再生成できます。
  • oauth_nonceoauth_signatureoauth_timestamp を用いて、OAuth 1.0a リクエストを正しく認可していることを確認してください。
  • 問題が続く場合は、OAuth ライブラリ、PostmanInsomnia のような REST クライアント、または xurl の使用を検討してください。
上記の詳細については、認証に関するガイドを参照してください。
429 エラーは、特定のエンドポイントでレート制限に達した場合、またはPost上限に達した場合に返されることがあります。「Too many requests」という特定のエラーが返された場合は、そのエンドポイントのレート制限に達しています。つまり、指定の時間内に許可されるリクエスト数の上限を超えています。レート制限はアプリ単位およびユーザー単位で設定されています。
  • X アプリレベルは、OAuth 2.0 App-Only を使用する際に許可されるリクエスト数を示し、レート制限はアプリ全体に対してグローバルに適用されます。例えば、あるメソッドのレート制限ウィンドウあたりの許可リクエスト数が15の場合、X アプリとして各ウィンドウで15件のリクエストが可能です。この上限はユーザーレベルの上限とは完全に独立しています。詳細は OAuth 2.0 App-Only のガイドをご覧ください。
  • ユーザーコンテキストレベルは、OAuth 1.0a ユーザーコンテキストまたは OAuth 2.0 認可コード(PKCE 対応)を使用する際、ユーザーの Access Token ごとに行えるリクエスト数を示します。例えば、あるメソッドのレート制限ウィンドウあたりの許可リクエスト数が15の場合、各ウィンドウにつきユーザーの Access Token ごとに15件のリクエストが可能です。ユーザーの Access Token を取得する方法については、OAuth 1.0a および OAuth 2.0 のガイドをご覧ください。
まず、使用しているエンドポイントのレート制限を確認してください。この情報はエンドポイントの API リファレンスページおよび新しい開発者ポータルのダッシュボードで確認できます。レート制限に関する追加情報として、特定のレート制限に対してアプリがどの位置にあるかを追跡するために HTTP ヘッダーを利用する方法、429 のレート制限エラーからのリカバリー方法、およびそもそもレート制限を回避するためのヒントについて、ドキュメントをご確認ください。“Usage cap exceeded: Monthly product cap” という特定のエラーを受け取った場合は、利用中のアクセスレベルにおける Post 上限に達しています。これらのPost 上限についてはドキュメントページで詳しく説明しています。
Post が返されるはずなのにエンドポイントから返ってこなかった場合は、以下の手順に従ってください。
  • 使用しているオペレーター構文が正しいか、ルールを確認してください。正しい構文を確認するため、ルールをより小さな節に分割して検証してください。
  • Post を送信したアカウントが Post 作成時点で保護されていた場合、リクエスト時点でアカウントが公開であっても、その Post は返されません。通常、これは X Advanced Search で確認できます。X Advanced Search で Post が表示されない場合、その Post はエンドポイントでも返されないと考えてください。
以下の手順はストリーミングエンドポイントにのみ該当します。
  • Post が送信されたとき、ストリームに接続していましたか?Post オブジェクトに含まれるタイムスタンプは UTC である点に注意してください。Post が送信された際に切断が発生していた場合は、取り逃したデータを補完するために利用できる復旧と冗長化の機能をご確認ください。
  • Post が送信されたとき、そのルールは有効でしたか?Post オブジェクトに含まれるタイムスタンプは UTC である点に注意してください。
ストリームが当社のデータ配信速度に追いつかず、アプリがストリームから十分な速度でデータを取り込めていない場合、次のいずれかのエラーが発生することがあります:
This stream has been disconnected because your client was unable to keep up with us.
This stream has been disconnected for operational reasons.
当社側では一定期間の遅延を許容し、各ストリームに一時的なステージングバッファを設けています。しかし、追いつけない場合は、現時点から再接続できるよう切断を行います。なお、これによりデータ損失が発生する可能性があります(バッファ満杯による切断時点でバッファ内にあるデータが対象)。これらはデータが急増した際に発生することがあります。一般的には、処理フローとは分離した、迅速な取り込み専用のバッファ処理を用いることを推奨します。v1.1 エンドポイントを利用するエンタープライズのお客様は、このような切断を防ぐためのアプリ最適化について、当社の接続に関する記事や、ストリーミングデータの消費に関するこちらおよびこちらをご参照ください。切断によって取り逃したPostを回収するためのツールがいくつかあり、以下に挙げます。なお、以下のツールはエンタープライズレベルのアクセスでの v1.1 エンドポイントでのみ利用可能です。
  • Redundant Connections - 複数の接続を用いて複数サーバーからストリームを取り込み、いずれかが切断された場合のデータ取り逃しを防ぎます。
  • Replay - 別のストリームを使用し、過去5日以内のデータを回収します。
  • Backfill - 5分以内に再接続し、中断地点から再開します。
  • Recovery and redundancy features - 回復と冗長性に関する詳細情報。
  • Historical PowerTrack - X の全アーカイブからデータを回収します。
  • Additional recovery options - 追加の回復オプションとガイダンス。

ヘルプ

X コミュニティフォーラムでは、X Developer Platform に関する技術的な質問を投稿できます。ディスカッション形式のフォーラムで、他の開発者の質問や、X API の利用に関する幅広いトピックの技術情報を見つけられます。 質問への回答やディスカッションへの参加など、ぜひフォーラムで交流してください。X の社員もサポートのために参加しています。

質問を投稿する前に

  • X の開発者向けドキュメントで、該当する情報を検索する
  • 他の開発者による類似の質問がないか、コミュニティフォーラムを検索する
  • コミュニティフォーラムのガイドラインを確認する

質問を投稿する際は、次の情報を必ず含めてください

  • 問題の概要
  • 実行した API コール(可能であればヘッダーも含める)
  • 返ってきた X のレスポンス(エラーメッセージがあれば含める)
  • 本来想定していた結果
  • これまでに実施したトラブルシューティング手順
  • 再現手順
  • 該当する場合:問題が発生した期間
  • 該当する場合:アプリ ID、Post ID など
  • 関連するコードサンプルやスクリーンショット
1 つの投稿につき、トピック/質問は 1 件のみにしてください。 機能リクエストやフィードバックは、X Developer Platform Feedback Form から送信してください。 アプリの停止などポリシー関連の問題については、Policy support にお問い合わせください。 ログインやアカウントのサポートなど X 関連の問題については、X Help Desk をご利用ください。