Skip to main content
Account Activity API (AAA) は非推奨となります。今後のリアルタイムなユーザーアクティビティ配信については X Activity API (XAA) をご確認ください。
Account Activity API (AAA) は、Webhook を介して X ユーザーアカウントに関連するイベントをリアルタイムで受け取る方法を提供します。事前に構成した Webhook に特定のユーザーアカウントをサブスクライブすることで、Post、ダイレクトメッセージ、いいね、フォロー、ブロックなど、所有または購読している 1 つ以上のアカウントで発生するさまざまなアクティビティを、単一の接続を通じてアプリケーションで受け取ることができます。 この API は、ユーザーの操作に即座に反応する必要があるアプリケーションや、ユーザーのアクティビティに基づいて最新の状態を維持する必要があるアプリケーションの構築によく利用されます。

概要

Webhook 配信

イベントをサーバーへリアルタイムに配信

リアルタイム

X のスピードでデータを配信 — ポーリング不要

包括的

Post、DM、フォロー、いいね、ブロック、ミュートなど

サブスクリプション方式

ユーザーアカウントをサブスクライブしてすべてのアクティビティを受信

仕組み

  1. Webhook を登録するV2 Webhooks API 経由で Webhook URL を登録します
  2. ユーザーをサブスクライブする — Webhook にユーザーサブスクリプションを追加します
  3. イベントを受信する — JSON ペイロードを含む POST リクエストとしてアクティビティイベントを受け取ります
  4. イベントを処理する — アプリケーションでイベントを処理し、200 OK を返します

アクティビティタイプ

Webhook 登録に対する各ユーザーサブスクリプションについて、以下のすべての関連アクティビティを受信します:
  • Post (ユーザーによる)
  • Post の削除 (ユーザーによる)
  • @メンション (ユーザーへの)
  • 返信 (ユーザーへ、またはユーザーから)
  • リポスト (ユーザーによる、またはユーザーの Post に対する)
  • 引用 Post (ユーザーによる、またはユーザーの Post に対する)
  • 引用 Post のリポスト (ユーザーによる、またはユーザーの Post に対する)
  • いいね (ユーザーによる、またはユーザーの Post に対する)
  • フォロー (ユーザーによる、またはユーザーに対する)
  • アンフォロー (ユーザーによる、またはユーザーに対する)
  • ブロック (ユーザーによる、またはユーザーに対する)
  • ブロック解除 (ユーザーによる、またはユーザーに対する)
  • ミュート (ユーザーによる、またはユーザーに対する)
  • ミュート解除 (ユーザーによる、またはユーザーに対する)
  • ダイレクトメッセージの送信 (ユーザーによる)
  • ダイレクトメッセージの受信 (ユーザーによる)
  • 入力中インジケーター (ユーザーへの)
  • 既読通知 (ユーザーへの)
  • サブスクリプションの取り消し (ユーザーによる)
Account Activity API 経由でホームタイムラインのデータは配信されません。このデータの取得には User Posts timeline by User ID エンドポイントをご利用ください。Account Activity API から返される Post は、月次の Post 上限にカウントされます。

機能サマリー


Account Activity データオブジェクトの構造

利用可能なアクティビティ


ペイロード例

以下は各 Account Activity イベントのペイロード例です。

tweet_create_events (Post、リポスト、返信、引用 Post)

tweet_create_events (@メンション)

favorite_events

follow_events

unfollow_events

block_events

unblock_events

mute_events

unmute_events

user_event

direct_message_events

direct_message_indicate_typing_events

direct_message_mark_read_events

tweet_delete_events


ロングフォーム Post のサポート

V2 Account Activity API は ロングフォーム Post、つまり 280 文字を超える Post をサポートしています。ロングフォーム Post が tweet_create_events ペイロードに含まれる場合、text フィールドには最初の 140 文字 (またはそれ以下) が含まれ、truncated フィールドは true に設定されます。Post の全文は extended_tweet オブジェクトで配信され、以下が含まれます:
  • full_text — 280 文字の制限を超える文字も含めた、Post の全文。
  • entities — 全文中に現れるエンティティ (ハッシュタグ、URL、ユーザーメンション、シンボルなど)。280 文字目以降に現れるものも含みます。
  • display_text_range — 全文を考慮して表示する文字の範囲。
これにより、アプリケーションはテキストの後半に現れるメンションやその他のエンティティを含め、ロングフォーム Post のコンテンツ全体を処理できます。以下は、ロングフォーム Post に対する tweet_create_events ペイロードの例です:

よくある質問

Account Activity API は Webhook を利用しており、(ストリーミング API のような) 接続を張り続ける必要も、(REST API のような) 頻繁なポーリングも不要でリアルタイムにデータを配信します。主な利点は以下のとおりです:
  • 速度 — X のスピードでデータを配信します。
  • シンプルさ — Post、@メンション、返信、リポスト、引用 Post、いいね、DM、フォロー、ブロック、ミュートなど、アカウントに関するすべてのイベントを単一の Webhook 接続を通じて提供します。
  • スケール — 管理対象アカウントのすべてのアクティビティを、レート制限やイベント上限なしでサポートします (Enterprise ティア)。
はい! 複数の Webhook URL を登録し、V2 Webhooks API を介してサブスクリプションを個別に管理できます。
認証要件はエンドポイントによって異なります:
  • ユーザー固有のアクション (例: ユーザーのサブスクライブ) には OAuth 1.0a (3-legged OAuth フロー) が必要です。
  • アプリレベルのアクション (例: サブスクリプションの一覧取得や削除、サブスクリプション数の取得) には OAuth2 App Only Bearer Token が必要です。
詳細は認証セクションをご確認ください。
はい。アプリがユーザー A とユーザー B のサブスクリプションを持っている場合に、ユーザー A が Post 内でユーザー B をメンションすると、Webhook は 2 件のイベント (ユーザーごとに 1 件) を受信します。for_user_id フィールドを使用してサブスクリプションを識別してください。
いいえ。利用可能なのは /all/ プロダクトのみで、サポートされるすべてのイベントタイプを配信します。
Webhook の上限はアプリごとではなく、アカウント単位で設定されています。例えば、Webhook が 3 つでアプリが 2 つの場合、一方のアプリで 2 つ、もう一方で 1 つの Webhook を利用することはできますが、各アプリで 3 つずつ利用することはできません。

API リファレンス一覧

Webhook 管理用のエンドポイント (登録、閲覧、検証、削除) については、V2 Webhooks API ドキュメントを参照してください。

はじめる

前提条件
  • 承認済みの開発者アカウント
  • Developer Console 内の Project と App
  • 公開アクセス可能な HTTPS Webhook エンドポイント
  • Account Activity API に対する Enterprise または Pay Per Use のアクセス権

クイックスタート

サブスクリプションを設定してイベントの受信を開始する

Webhooks API

Webhook を登録・管理する

移行ガイド

レガシーの Enterprise から v2 へ移行する

Activity stream

Webhook に代わるストリーミング方式