Connection
Subscribe to a Channel
Send a JSON message:Receive Events
When data changes, the server pushes an event. Only changed fields are included — no event is sent if nothing changed. Example — tweet gets 2 new views:Unsubscribe
Available Channels
| Channel | Description | Required Params | Default Interval | Min/Max |
|---|---|---|---|---|
user:tweets | New tweets from a user | username | 30s | 15-120s |
user:mentions | Tweets mentioning a user | username | 30s | 15-120s |
user:followers | Follower count changes | username | 60s | 30-300s |
tweet:engagement | Live likes, retweets, views | tweet_id | 15s | 10-120s |
search:tweets | New tweets matching a query | query | 30s | 15-120s |
Event Data Formats
user:tweets
New tweets from a specific user.user:mentions
New tweets mentioning a user.user:followers
Follower count changes. Reports the new count, previous count, and delta.tweet:engagement
Live engagement metrics. Only changed fields are included, each with its delta.search:tweets
New tweets matching a search query.Error Events
Sent when polling fails (e.g. rate limit, account issues):INVALID_JSON, INVALID_CHANNEL, SUBSCRIBE_FAILED, POLL_ERROR, UNKNOWN_TYPE
Keepalive
Send periodic pings to keep the connection alive:Full JavaScript Example
Full Python Example
Behavior Details
- Deduplication: Multiple clients on the same resource share one poll
- First poll: Captures initial snapshot without emitting events (avoids flood)
- Auto-cleanup: Polling stops when all clients unsubscribe from a resource
- Max subscriptions: 100 total across all connected clients
- Snapshot cap: 500 IDs per subscription to prevent memory growth
- Error backoff: After 5 consecutive poll failures, an error event is sent to all subscribers