Skip to main content

Base Message Format

Every message sent over the websocket follows this base format:

Tweet Events

This is always the first event fired for any new tweet. It prioritizes speed over completeness, you get core tweet info instantly, but subtweet data (quotes, retweets, replies) won’t be populated yet.A tweet.update will follow shortly after if the tweet:
  • Is quoting, replying to, or retweeting another tweet
Sent a bit after tweet.mini.update with complete tweet data including resolved subtweets.Note: Subtweet chains are resolved up to 2 levels deep. If a chain is 3+ levels (e.g. a retweet of a reply to another tweet), levels 3+ will have minimal/default data. See tweet.full for fully resolved deep chains.
Same as tweet.update but with full untruncated text and article content if present.Only sent when:
  • The tweet text was truncated in tweet.update
  • The tweet contains an article
Sent when a tweet has a subtweet chain 3 or more levels deep. Every level in the chain is fully resolved with complete author data, metrics, media, and body text.Only triggered for chains 3+ levels deep. Standalone tweets, simple retweets, and single-level quotes/replies will not trigger this event.Timeline:
  • tweet.mini.update arrives first (fastest)
  • tweet.update arrives ~60ms later (levels 3+ may have empty data)
  • tweet.full arrives ~200-500ms later (all levels fully resolved)
Example chain (5 levels): 
In tweet.update, levels 3-5 would have empty/default data. In tweet.full, every level has complete data.Supports up to 6 levels including the main tweet, we might increase it in the future, but 6 levels seems good for most use cases for now

Profile Events


Activity Events

Don’t rely on metrics being accurate for deleted tweets — they reflect the last known values before deletion.

Types

TwitterUser

TwitterMiniUser

TwitterTweet

TwitterMiniTweet


Event Flow

Here’s the order events fire for different tweet types:
We are always working on new events — keep an eye on this section for updates!