HTTP ステータスコード
成功コード
| Code | 意味 | 説明 |
|---|---|---|
| 200 | OK | リクエストが成功しました |
| 201 | Created | POST リクエストでリソースが作成されました |
| 204 | No Content | レスポンスボディのない成功レスポンスです (DELETE リクエスト) |
Client エラーコード
| Code | Meaning | Common causes |
|---|---|---|
| 400 | 不正なリクエスト (Bad Request) | 無効な JSON、不正なクエリ、必須パラメータの不足 |
| 401 | 認証エラー (Unauthorized) | 無効または不足している認証情報 |
| 403 | Forbidden (権限なし) | 認証は有効だが、このリソースやアクションの権限がない |
| 404 | Not Found (リソースが見つからない) | リソースが存在しないか、削除されている |
| 409 | 競合 (Conflict) | ストリームにルールが設定されていない (filtered stream のみ) |
| 429 | リクエスト過多 (Too Many Requests) | レート制限または利用上限を超過した |
サーバーエラーコード
| Code | Meaning | What to do |
|---|---|---|
| 500 | 内部サーバーエラー | 少し待ってから再試行し、ステータスページ を確認してください |
| 502 | 不正なゲートウェイ | 少し待ってから再試行してください |
| 503 | サービス利用不可 | X が過負荷です。少し待ってから再試行してください |
| 504 | ゲートウェイタイムアウト | 少し待ってから再試行してください |
エラーレスポンス形式
| Field | 説明 |
|---|---|
type | エラー種別を識別するURI |
title | エラーの簡潔な説明 |
detail | このエラーに関する具体的な説明 |
エラーの種類
| Type | 説明 |
|---|---|
about:blank | 汎用エラー (HTTP ステータスコードを参照) |
.../invalid-request | リクエストの形式不備または無効なパラメータ |
.../resource-not-found | ポスト、ユーザー、その他のリソースが存在しない |
.../not-authorized-for-resource | 非公開/保護されたコンテンツへのアクセス権がない |
.../client-forbidden | App が登録されていない、または必要なアクセス権が付与されていない |
.../usage-capped | 利用上限を超過 |
.../rate-limit-exceeded | レート制限を超過 |
.../streaming-connection | ストリーム接続の問題 |
.../rule-cap | Filtered Stream のルールが多すぎる |
.../invalid-rules | ルール構文エラー |
.../duplicate-rules | ルールがすでに存在する |
部分的なエラー
data と errors の両方が含まれる場合があります。
一般的なエラーのトラブルシューティング
401 Unauthorized
401 Unauthorized
403 Forbidden
403 Forbidden
アクセスを確認する:
- App がこのエンドポイントへアクセスできることを確認する
- 一部のエンドポイントは特定の登録や承認が必要
- ユーザーコンテキストのエンドポイントには適切な OAuth スコープが必要
- リソースが非公開または保護されている可能性がある
429 Too Many Requests
429 Too Many Requests
レート制限:
- 再試行のタイミングは
x-rate-limit-resetヘッダーを確認する - 指数バックオフを実装する
- レスポンスのキャッシュを検討する
- リクエストを時間枠全体に分散させる
400 Bad Request
400 Bad Request
リクエストを修正する:
- JSON 構文を検証する
- 必須パラメータの欠落がないか確認する
- パラメータの型 (文字列か数値か) を検証する
- クエリ内の特殊文字をエスケープする
Missing expected posts
Missing expected posts
次の要因を確認する:
- 保護されたアカウントの投稿は、認可がある場合にのみ表示される
- 削除された投稿は 404 を返す
- 一部の投稿は特定の地域で表示が制限されることがある
- 検索クエリ構文が正しいことを確認する
Stream disconnections
Stream disconnections
再接続を処理する:
- バックオフ付きの自動再接続を実装する
- 欠落データの復旧機能を利用する
- (クライアントの処理が追いつかないことによる) バッファフルによる切断を確認する
- 少なくとも 1 つのストリームルールが存在することを確認する
レート制限ヘッダー
| Header | Description |
|---|---|
x-rate-limit-limit | 現在のウィンドウでの最大リクエスト数 |
x-rate-limit-remaining | 残りのリクエスト数 |
x-rate-limit-reset | ウィンドウがリセットされる時刻 (Unix タイムスタンプ) |
ベストプラクティス
ステータスコードを確認する
レスポンスボディを解析する前に、必ず HTTP ステータスコードを確認してください。
部分的なエラーを処理する
200 レスポンスであっても
errors 配列が含まれていないかどうかを確認してください。リトライロジックを実装する
429 および 5xx エラーには指数バックオフを使用してください。
リクエスト詳細をログに記録する
デバッグ用に request ID とタイムスタンプを含めてください。
ヘルプを利用する
- API エンドポイント URL
- リクエストヘッダー (認証情報は必ずマスクしてください)
- エラー応答の全文
- 想定していた挙動
- 既に試した手順
Developer Forum
質問したり、解決策を検索したりできます。
API Status
既知の問題が発生していないか確認してください。