XのAPIエンドポイント完全版(2024年7月時点)
注意: この情報は2024年7月時点の公式ドキュメントに基づいています。APIの利用には適切な認証と権限が必要です。
1. 認証
1.1 OAuth 2.0認証
エンドポイント: `https://api.twitter.com/2/oauth2/token`
メソッド: POST
説明: アクセストークンを取得する
主なパラメータ:
`client_id`: アプリケーションのクライアントID
`client_secret`: アプリケーションのクライアントシークレット
`grant_type`: 認証タイプ(例: "client_credentials"、"authorization_code")
`code`: 認証コード(grant_typeが"authorization_code"の場合)
`redirect_uri`: リダイレクトURI(grant_typeが"authorization_code"の場合)
1.2 アプリ専用の認証(App-only Auth)
エンドポイント: `https://api.twitter.com/2/oauth2/token`
メソッド: POST
説明: アプリケーション専用のアクセストークンを取得する
主なパラメータ:
`client_id`: アプリケーションのクライアントID
`client_secret`: アプリケーションのクライアントシークレット
`grant_type`: "client_credentials"(固定)
2. ツイート
2.1 ツイート投稿
エンドポイント: `https://api.twitter.com/2/tweets`
メソッド: POST
説明: 新しいツイートを投稿する
主なパラメータ:
`text`: ツイートの本文(必須、最大280文字)
`reply`: 返信の設定(オプション)
`media`: メディア添付の設定(オプション)
2.2 ツイート取得
エンドポイント: `https://api.twitter.com/2/tweets/{id}`
メソッド: GET
説明: 特定のツイートの詳細を取得する
パラメータ:
`id`: 取得したいツイートのID
オプションのクエリパラメータ:
`tweet.fields`: 取得したいツイートのフィールド(例: "author_id,created_at,public_metrics")
2.3 ツイート削除
エンドポイント: `https://api.twitter.com/2/tweets/{id}`
メソッド: DELETE
説明: 特定のツイートを削除する
パラメータ:
`id`: 削除したいツイートのID
2.4 複数ツイート取得
エンドポイント: `https://api.twitter.com/2/tweets`
メソッド: GET
説明: 複数のツイートを一度に取得する
主なクエリパラメータ:
`ids`: カンマ区切りのツイートID(最大100個)
`tweet.fields`: 取得したいツイートのフィールド
2.5 ツイート数カウント
メソッド: GET
説明: 特定のクエリに合致するツイート数をカウントする
主なクエリパラメータ:
`query`: 検索クエリ(必須)
`start_time`: カウント開始時間
`end_time`: カウント終了時間
`granularity`: カウントの粒度("minute", "hour", "day")
2.6 いいね追加
メソッド: POST
説明: 特定のツイートにいいねを追加する
パラメータ:
`id`: いいねを追加するユーザーのID
リクエストボディ:
`tweet_id`: いいねを追加するツイートのID
2.7 いいね解除
エンドポイント: `https://api.twitter.com/2/users/{id}/likes/{tweet_id}`
メソッド: DELETE
説明: 特定のツイートのいいねを解除する
パラメータ:
`id`: いいねを解除するユーザーのID
`tweet_id`: いいねを解除するツイートのID
2.8 リツイート
メソッド: POST
説明: 特定のツイートをリツイートする
パラメータ:
`id`: リツイートするユーザーのID
リクエストボディ:
`tweet_id`: リツイートするツイートのID
2.9 リツイート解除
エンドポイント: `https://api.twitter.com/2/users/{id}/retweets/{source_tweet_id}`
メソッド: DELETE
説明: 特定のツイートのリツイートを解除する
パラメータ:
`id`: リツイートを解除するユーザーのID
`source_tweet_id`: リツイートを解除するツイートのID
3. ユーザー
3.1 ユーザープロフィール取得
エンドポイント: `https://api.twitter.com/2/users/{id}`
メソッド: GET
説明: 特定のユーザーのプロフィール情報を取得する
パラメータ:
`id`: 取得したいユーザーのID
オプションのクエリパラメータ:
`user.fields`: 取得したいユーザーのフィールド(例: "created_at,description,public_metrics")
3.2 複数ユーザープロフィール取得
エンドポイント: `https://api.twitter.com/2/users`
メソッド: GET
説明: 複数のユーザーのプロフィール情報を一度に取得する
主なクエリパラメータ:
`ids`: カンマ区切りのユーザーID(最大100個)
`user.fields`: 取得したいユーザーのフィールド
3.3 フォロワー取得
メソッド: GET
説明: 特定のユーザーのフォロワーリストを取得する
パラメータ:
`id`: フォロワーを取得したいユーザーのID
オプションのクエリパラメータ:
`max_results`: 1回のリクエストで取得する最大結果数(デフォルト: 100、最大: 1000)
`pagination_token`: ページネーションのためのトークン
3.4 フォロー中のユーザー取得
メソッド: GET
説明: 特定のユーザーがフォローしているユーザーのリストを取得する
パラメータ:
`id`: フォロー中のユーザーを取得したいユーザーのID
オプションのクエリパラメータ:
`max_results`: 1回のリクエストで取得する最大結果数(デフォルト: 100、最大: 1000)
`pagination_token`: ページネーションのためのトークン
3.5 ユーザーフォロー
エンドポイント: `https://api.twitter.com/2/users/{source_user_id}/following`
メソッド: POST
説明: 特定のユーザーをフォローする
パラメータ:
`source_user_id`: フォローするユーザーのID
リクエストボディ:
`target_user_id`: フォロー対象のユーザーID
3.6 ユーザーフォロー解除
エンドポイント: `https://api.twitter.com/2/users/{source_user_id}/following/{target_user_id}`
メソッド: DELETE
説明: 特定のユーザーのフォローを解除する
パラメータ:
`source_user_id`: フォロー解除するユーザーのID
`target_user_id`: フォロー解除対象のユーザーID
3.7 ユーザーのツイート取得
メソッド: GET
説明: 特定のユーザーのツイートを取得する
パラメータ:
`id`: ツイートを取得したいユーザーのID
オプションのクエリパラメータ:
`max_results`: 1回のリクエストで取得する最大結果数(デフォルト: 10、最大: 100)
`tweet.fields`: 取得したいツイートのフィールド
`start_time`: 取得開始時間
`end_time`: 取得終了時間
4. タイムライン
4.1 ホームタイムライン取得
エンドポイント: `https://api.twitter.com/2/users/{id}/timelines/reverse_chronological`
メソッド: GET
説明: 認証されたユーザーのホームタイムラインを取得する
パラメータ:
`id`: タイムラインを取得したいユーザーのID
オプションのクエリパラメータ:
`max_results`: 1回のリクエストで取得する最大結果数(デフォルト: 100、最大: 100)
`tweet.fields`: 取得したいツイートのフィールド
`exclude`: 除外したいツイートのタイプ(例: "retweets,replies")
4.2 メンションタイムライン取得
メソッド: GET
説明: 特定のユーザーへのメンションを取得する
パラメータ:
`id`: メンションを取得したいユーザーのID
オプションのクエリパラメータ:
`max_results`: 1回のリクエストで取得する最大結果数(デフォルト: 10、最大: 100)
`tweet.fields`: 取得したいツイートのフィールド
`start_time`: 取得開始時間
`end_time`: 取得終了時間
5. 検索
5.1 ツイート検索
メソッド: GET
説明: 最近のツイートを検索する
主なクエリパラメータ:
`query`: 検索クエリ(必須)
`max_results`: 1回のリクエストで取得する最大結果数(デフォルト: 10、最大: 100)
`tweet.fields`: 取得したいツイートのフィールド
`start_time`: 検索開始時間
`end_time`: 検索終了時間
5.2 全アーカイブツイート検索
メソッド: GET
説明: 全アーカイブからツイートを検索する(Academic Research アクセスレベルが必要)
主なクエリパラメータ:
`query`: 検索クエリ(必須)
`max_results`: 1回のリクエストで取得する最大結果数(デフォルト: 10、最大: 500)
`tweet.fields`: 取得したいツイートのフィールド
`start_time`: 検索開始時間
`end_time`: 検索終了時間
6. メディア
6.1 メディアアップロード
メソッド: POST
説明: 画像や動画をアップロードする(V1.1 APIを使用)
主なパラメータ:
`media`: アップロードするファイル
`media_category`: メディアのカテゴリ(例: "tweet_image", "tweet_video")
注意: 大きなファイルの場合、チャンク分割アップロードが必要
7. ダイレクトメッセージ
7.1 DM送信
エンドポイント: `https://api.twitter.com/2/dm_conversations/with/{participant_id}/messages`
メソッド: POST
説明: 特定のユーザーにダイレクトメッセージを送信する
パラメータ:
`participant_id`: メッセージを送信する相手のユーザーID
リクエストボディ:
`text`: 送信するメッセージの本文
7.2 DM履歴取得
エンドポイント: `https://api.twitter.com/2/dm_conversations/with/{participant_id}/messages`
メソッド: GET
説明: 特定のユーザーとのダイレクトメッセージ履歴を取得する
パラメータ:
`participant_id`: 履歴を取得したい相手のユーザーID
オプションのクエリパラメータ:
`max_results`: 1回のリクエストで取得する最大結果数(デフォルト: 100、最大: 100)
`pagination_token`: ページネーションのためのトークン
7.3 DM会話リスト取得
メソッド: GET
説明: ユーザーのDM会話リストを取得する
オプションのクエリパラメータ:
`max_results`: 1回のリクエストで取得する最大結果数(デフォルト: 100、最大: 100)
`pagination_token`: ページネーションのためのトークン
8. リスト
8.1 リスト作成
エンドポイント: `https://api.twitter.com/2/lists`
メソッド: POST
説明: 新しいリストを作成する
リクエストボディ:
`name`: 作成するリストの名前(必須、最大25文字)
`description`: リストの説明(オプション、最大100文字)
`private`: リストをプライベートにするかどうか(オプション、デフォルトはfalse)
8.2 リスト取得
エンドポイント: `https://api.twitter.com/2/lists/{id}`
メソッド: GET
説明: 指定されたIDのリストの詳細を取得する
パラメータ:
`id`: 取得したいリストのID
オプションのクエリパラメータ:
`list.fields`: 取得したいリストのフィールド(例: "created_at,follower_count,member_count")
8.3 リストメンバー追加
メソッド: POST
説明: 指定したリストに新しいメンバー(ユーザー)を追加する
パラメータ:
`id`: メンバーを追加したいリストのID
リクエストボディ:
`user_id`: リストに追加するユーザーのID
8.4 リストメンバー取得
メソッド: GET
説明: 指定したリストのメンバー(ユーザー)一覧を取得する
パラメータ:
`id`: メンバーを取得したいリストのID
オプションのクエリパラメータ:
`max_results`: 1回のリクエストで取得する最大結果数(デフォルト: 100、最大: 100)
`pagination_token`: ページネーションのためのトークン
8.5 ユーザーのリスト取得
メソッド: GET
説明: 指定したユーザーが所有するリストの一覧を取得する
パラメータ:
`id`: リストを取得したいユーザーのID
オプションのクエリパラメータ:
`max_results`: 1回のリクエストで取得する最大結果数(デフォルト: 100、最大: 100)
`pagination_token`: ページネーションのためのトークン
8.6 リスト削除
エンドポイント: `https://api.twitter.com/2/lists/{id}`
メソッド: DELETE
説明: 指定したリストを削除する(リストの所有者のみ可能)
パラメータ:
`id`: 削除したいリストのID
8.7 リストのツイート取得
メソッド: GET
説明: 指定したリストのメンバーのツイートを取得する
パラメータ:
`id`: ツイートを取得したいリストのID
オプションのクエリパラメータ:
`max_results`: 1回のリクエストで取得する最大結果数(デフォルト: 100、最大: 100)
`pagination_token`: ページネーションのためのトークン
9. トレンド
9.1 トレンド取得
メソッド: GET
説明: 特定の場所のトレンドを取得する(V1.1 APIを使用)
主なクエリパラメータ:
`id`: 場所のWOEID(Where On Earth ID)
注意: このエンドポイントはV1.1 APIを使用しているため、認証方法が異なる場合があります
10. コンプライアンスとポリシー
10.1 ツイートの隠蔽
メソッド: PUT
説明: 特定のツイートを隠蔽する(作成者のみ)
パラメータ:
`id`: 隠蔽したいツイートのID
リクエストボディ:
`hidden`: true(隠蔽する)またはfalse(隠蔽を解除する)
10.2 ツイートの隠蔽解除
メソッド: DELETE
説明: 特定のツイートの隠蔽を解除する(作成者のみ)
パラメータ:
`id`: 隠蔽を解除したいツイートのID
11. 使用状況と制限
11.1 アプリのレート制限状況確認
エンドポイント: `https://api.twitter.com/2/usage/tweets`
メソッド: GET
説明: 現在のアプリケーションのツイート使用状況を確認する
オプションのクエリパラメータ:
`start_time`: 確認開始時間
`end_time`: 確認終了時間
`usage.fields`: 取得したい使用状況のフィールド(例: "monthly_usage,daily_usage")
注意事項:
APIの利用には適切な認証と権限が必要です。アクセスレベルによって利用可能なエンドポイントが異なる場合があります。
一部のエンドポイント(メディアアップロード、トレンド取得など)は依然としてV1.1 APIを使用しています。
エンドポイントによっては、追加のパラメータやオプションが利用可能な場合があります。
API利用時は常に最新の公式ドキュメントを参照することをお勧めします。
エンドポイントの利用可能性や仕様は、Xのポリシー変更により予告なく変更される可能性があります。
レート制限に注意してください。各エンドポイントには特定の制限があり、それを超えるとアクセスが一時的にブロックされる可能性があります。