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 ツイート削除

2.4 複数ツイート取得

  • エンドポイント: `https://api.twitter.com/2/tweets`

  • メソッド: GET

  • 説明: 複数のツイートを一度に取得する

  • 主なクエリパラメータ:

    • `ids`: カンマ区切りのツイートID(最大100個)

    • `tweet.fields`: 取得したいツイートのフィールド

2.5 ツイート数カウント

  • エンドポイント: `https://api.twitter.com/2/tweets/counts/recent`

  • メソッド: GET

  • 説明: 特定のクエリに合致するツイート数をカウントする

  • 主なクエリパラメータ:

    • `query`: 検索クエリ(必須)

    • `start_time`: カウント開始時間

    • `end_time`: カウント終了時間

    • `granularity`: カウントの粒度("minute", "hour", "day")

2.6 いいね追加

  • エンドポイント: `https://api.twitter.com/2/users/{id}/likes`

  • メソッド: 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 リツイート

  • エンドポイント: `https://api.twitter.com/2/users/{id}/retweets`

  • メソッド: POST

  • 説明: 特定のツイートをリツイートする

  • パラメータ:

    • `id`: リツイートするユーザーのID

  • リクエストボディ:

    • `tweet_id`: リツイートするツイートのID

2.9 リツイート解除

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 フォロワー取得

  • エンドポイント: `https://api.twitter.com/2/users/{id}/followers`

  • メソッド: GET

  • 説明: 特定のユーザーのフォロワーリストを取得する

  • パラメータ:

    • `id`: フォロワーを取得したいユーザーのID

  • オプションのクエリパラメータ:

    • `max_results`: 1回のリクエストで取得する最大結果数(デフォルト: 100、最大: 1000)

    • `pagination_token`: ページネーションのためのトークン

3.4 フォロー中のユーザー取得

  • エンドポイント: `https://api.twitter.com/2/users/{id}/following`

  • メソッド: 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 ユーザーフォロー解除

3.7 ユーザーのツイート取得

  • エンドポイント: `https://api.twitter.com/2/users/{id}/tweets`

  • メソッド: 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 メンションタイムライン取得

  • エンドポイント: `https://api.twitter.com/2/users/{id}/mentions`

  • メソッド: GET

  • 説明: 特定のユーザーへのメンションを取得する

  • パラメータ:

    • `id`: メンションを取得したいユーザーのID

  • オプションのクエリパラメータ:

    • `max_results`: 1回のリクエストで取得する最大結果数(デフォルト: 10、最大: 100)

    • `tweet.fields`: 取得したいツイートのフィールド

    • `start_time`: 取得開始時間

    • `end_time`: 取得終了時間

5. 検索

5.1 ツイート検索

  • エンドポイント: `https://api.twitter.com/2/tweets/search/recent`

  • メソッド: GET

  • 説明: 最近のツイートを検索する

  • 主なクエリパラメータ:

    • `query`: 検索クエリ(必須)

    • `max_results`: 1回のリクエストで取得する最大結果数(デフォルト: 10、最大: 100)

    • `tweet.fields`: 取得したいツイートのフィールド

    • `start_time`: 検索開始時間

    • `end_time`: 検索終了時間

5.2 全アーカイブツイート検索

  • エンドポイント: `https://api.twitter.com/2/tweets/search/all`

  • メソッド: GET

  • 説明: 全アーカイブからツイートを検索する(Academic Research アクセスレベルが必要)

  • 主なクエリパラメータ:

    • `query`: 検索クエリ(必須)

    • `max_results`: 1回のリクエストで取得する最大結果数(デフォルト: 10、最大: 500)

    • `tweet.fields`: 取得したいツイートのフィールド

    • `start_time`: 検索開始時間

    • `end_time`: 検索終了時間

6. メディア

6.1 メディアアップロード

  • エンドポイント: `https://upload.twitter.com/1.1/media/upload.json`

  • メソッド: POST

  • 説明: 画像や動画をアップロードする(V1.1 APIを使用)

  • 主なパラメータ:

    • `media`: アップロードするファイル

    • `media_category`: メディアのカテゴリ(例: "tweet_image", "tweet_video")

  • 注意: 大きなファイルの場合、チャンク分割アップロードが必要

7. ダイレクトメッセージ

7.1 DM送信

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会話リスト取得

  • エンドポイント: `https://api.twitter.com/2/dm_conversations`

  • メソッド: 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 リストメンバー追加

  • エンドポイント: `https://api.twitter.com/2/lists/{id}/members`

  • メソッド: POST

  • 説明: 指定したリストに新しいメンバー(ユーザー)を追加する

  • パラメータ:

    • `id`: メンバーを追加したいリストのID

  • リクエストボディ:

    • `user_id`: リストに追加するユーザーのID

8.4 リストメンバー取得

  • エンドポイント: `https://api.twitter.com/2/lists/{id}/members`

  • メソッド: GET

  • 説明: 指定したリストのメンバー(ユーザー)一覧を取得する

  • パラメータ:

    • `id`: メンバーを取得したいリストのID

  • オプションのクエリパラメータ:

    • `max_results`: 1回のリクエストで取得する最大結果数(デフォルト: 100、最大: 100)

    • `pagination_token`: ページネーションのためのトークン

8.5 ユーザーのリスト取得

  • エンドポイント: `https://api.twitter.com/2/users/{id}/owned_lists`

  • メソッド: GET

  • 説明: 指定したユーザーが所有するリストの一覧を取得する

  • パラメータ:

    • `id`: リストを取得したいユーザーのID

  • オプションのクエリパラメータ:

    • `max_results`: 1回のリクエストで取得する最大結果数(デフォルト: 100、最大: 100)

    • `pagination_token`: ページネーションのためのトークン

8.6 リスト削除

  • エンドポイント: `https://api.twitter.com/2/lists/{id}`

  • メソッド: DELETE

  • 説明: 指定したリストを削除する(リストの所有者のみ可能)

  • パラメータ:

    • `id`: 削除したいリストのID

8.7 リストのツイート取得

  • エンドポイント: `https://api.twitter.com/2/lists/{id}/tweets`

  • メソッド: GET

  • 説明: 指定したリストのメンバーのツイートを取得する

  • パラメータ:

    • `id`: ツイートを取得したいリストのID

  • オプションのクエリパラメータ:

    • `max_results`: 1回のリクエストで取得する最大結果数(デフォルト: 100、最大: 100)

    • `pagination_token`: ページネーションのためのトークン

9. トレンド

9.1 トレンド取得

  • エンドポイント: `https://api.twitter.com/1.1/trends/place.json`

  • メソッド: GET

  • 説明: 特定の場所のトレンドを取得する(V1.1 APIを使用)

  • 主なクエリパラメータ:

    • `id`: 場所のWOEID(Where On Earth ID)

  • 注意: このエンドポイントはV1.1 APIを使用しているため、認証方法が異なる場合があります

10. コンプライアンスとポリシー

10.1 ツイートの隠蔽

  • エンドポイント: `https://api.twitter.com/2/tweets/{id}/hidden`

  • メソッド: PUT

  • 説明: 特定のツイートを隠蔽する(作成者のみ)

  • パラメータ:

    • `id`: 隠蔽したいツイートのID

  • リクエストボディ:

    • `hidden`: true(隠蔽する)またはfalse(隠蔽を解除する)

10.2 ツイートの隠蔽解除

  • エンドポイント: `https://api.twitter.com/2/tweets/{id}/hidden`

  • メソッド: DELETE

  • 説明: 特定のツイートの隠蔽を解除する(作成者のみ)

  • パラメータ:

    • `id`: 隠蔽を解除したいツイートのID

11. 使用状況と制限

11.1 アプリのレート制限状況確認

  • エンドポイント: `https://api.twitter.com/2/usage/tweets`

  • メソッド: GET

  • 説明: 現在のアプリケーションのツイート使用状況を確認する

  • オプションのクエリパラメータ:

    • `start_time`: 確認開始時間

    • `end_time`: 確認終了時間

    • `usage.fields`: 取得したい使用状況のフィールド(例: "monthly_usage,daily_usage")

注意事項:

  1. APIの利用には適切な認証と権限が必要です。アクセスレベルによって利用可能なエンドポイントが異なる場合があります。

  2. 一部のエンドポイント(メディアアップロード、トレンド取得など)は依然としてV1.1 APIを使用しています。

  3. エンドポイントによっては、追加のパラメータやオプションが利用可能な場合があります。

  4. API利用時は常に最新の公式ドキュメントを参照することをお勧めします。

  5. エンドポイントの利用可能性や仕様は、Xのポリシー変更により予告なく変更される可能性があります。

  6. レート制限に注意してください。各エンドポイントには特定の制限があり、それを超えるとアクセスが一時的にブロックされる可能性があります。

いいなと思ったら応援しよう!