Skip to main content
The Activity Stream endpoint provides real-time delivery of account activity events for subscribed users. Receive events when users post, like, follow, receive DMs, and more.

Overview

Real-time

Events delivered instantly

Comprehensive

Posts, likes, follows, DMs, and more

Subscription-based

Subscribe to user activity

Webhook delivery

Events delivered to your server

Event types

EventDescription
tweet_create_eventsUser posts a new Post
favorite_eventsUser likes a Post
follow_eventsUser follows or is followed
direct_message_eventsUser sends or receives a DM
block_eventsUser blocks or unblocks
mute_eventsUser mutes or unmutes

Endpoints

MethodEndpointDescription
GET/2/activity/streamConnect to activity stream
POST/2/activity/subscriptionsCreate a subscription
GET/2/activity/subscriptionsList subscriptions
PUT/2/activity/subscriptions/:idUpdate a subscription
DELETE/2/activity/subscriptions/:idDelete a subscription

How it works

  1. Create subscription — Subscribe to a user’s activity
  2. Connect to stream — Establish persistent connection
  3. Receive events — Get real-time activity events
  4. Process events — Handle events in your application

Example: Connect to stream

import requests

def stream_activity(bearer_token):
    url = "https://api.x.com/2/activity/stream"
    headers = {"Authorization": f"Bearer {bearer_token}"}
    
    response = requests.get(url, headers=headers, stream=True)
    
    for line in response.iter_lines():
        if line:
            print(line.decode("utf-8"))

Getting started

Prerequisites