Skip to docs content

Social content events

Social content uses tweet/content; select the platform from author.platform before applying platform-specific fields.

Run the 5-minute quickstart
Open in chat
Reviewed against product code on September 2, 2026

tweet/content

Route a content event by t="tweet" and op="content", then key the post by (author.platform, tweetId).

Tweet content type

typescript
type VerifiedType = 'blue' | 'business' | 'government' | 'verified' | 'none';
type TweetVerifiedLabel = {
  badge: string | null;
  description: string;
  url: string | null;
};
 
type TweetAuthor = {
  banner?: string;
  bio?: string;
  followersCount?: number;
  followingCount?: number;
  id?: string;
  joinedAt?: number;
  location?: string;
  metrics?: {
    likes?: number;
    tweets?: number;
  };
  // Includes a leading @ when present, for example "@elonmusk".
  handle?: string;
  name?: string;
  platform?: 'twitter' | 'truth_social' | 'binance_square';
  profileImage?: string;
  url?: string;
  verifiedLabel?: TweetVerifiedLabel;
  verifiedType?: VerifiedType;
};
 
type Media = {
  url: string;
} & (
  | {
      type: 'video';
      // Every video is a progressive MP4. A public still poster is included when available.
      thumbnail?: string;
    }
  | {
      type?: 'image' | 'gif';
      thumbnail?: string;
    }
);
 
type TweetUrl = {
  url: string;
  name?: string;
  tco?: string;
};
 
type TweetMention = {
  handle?: string;
  id?: string;
  name?: string;
};
 
type TweetArticle = {
  description?: string;
  id?: string;
  publishedAt?: number;
  text?: string;
  thumbnail?: string;
  title: string;
  updatedAt?: number;
  url: string;
};
 
type TweetPollChoice = {
  id?: string;
  image?: string;
  label: string;
  votes?: number;
};
 
type TweetPoll = {
  choices: TweetPollChoice[];
  endsAt?: number;
  totalVotes?: number;
  updatedAt?: number;
};
 
type TweetContentKind = 'post' | 'reply' | 'quote' | 'retweet';
 
type TweetReference = {
  article?: TweetArticle;
  type: 'reply' | 'quote' | 'retweet';
  tweetId: string;
  text?: string;
  translatedText?: string;
  author?: TweetAuthor;
  media?: Media[];
  poll?: TweetPoll;
  quoted?: TweetReference;
  subtweet?: TweetReference;
};
 
type TweetContent = {
  tweetId: string;
  kind: TweetContentKind;
  // Original tweet text when the event includes both original and translated text.
  text: string;
  // Translation, present only when available.
  translatedText?: string;
  createdAt: number;
  author: TweetAuthor;
  article?: TweetArticle;
  link?: string;
  media?: Media[];
  mentions?: TweetMention[];
  poll?: TweetPoll;
  receivedAt?: number;
  urls?: TweetUrl[];
  ref?: TweetReference;
};

Tweet content event

json
{
  "v": 1,
  "t": "tweet",
  "op": "content",
  "id": "1234567890",
  "ts": 1702500000130,
  "d": {
    "tweetId": "1234567890",
    "kind": "reply",
    "text": "Could this launch today?",
    "createdAt": 1702500000000,
    "author": {
      "handle": "@marketdesk",
      "platform": "twitter"
    }
  }
}

Twitter

Twitter content can be a post, reply, quote, or retweet. References and media are included when available.

Truth Social

Truth Social is opt-in live delivery for Donald Trump (@realDonaldTrump) and the White House (@WhiteHouse). Configure it from the Accounts tab in the dashboard when your account is eligible.

Content uses the tweet envelope with author.platform="truth_social" and can be a post, reply, quote, or retweet. Metadata, updates, delete, and pin events can appear when observed. Do not use general account management to add arbitrary Truth Social handles, and do not expect History replay.

Truth Social content event

json
{
  "v": 1,
  "t": "tweet",
  "op": "content",
  "id": "tweet-content",
  "ts": 1772000001060,
  "d": {
    "tweetId": "tweet-content",
    "text": "hello",
    "createdAt": 1772000001000,
    "receivedAt": 1772000001050,
    "kind": "post",
    "author": {
      "id": "truth-author",
      "handle": "@realDonaldTrump",
      "name": "Donald J. Trump",
      "platform": "truth_social",
      "url": "https://truthsocial.com/@realDonaldTrump"
    }
  }
}

Binance Square

Enabled catalog accounts use author.platform="binance_square". Content is live-only and does not consume a monitored Twitter account slot.

Binance Square content event

json
{
  "v": 1,
  "t": "tweet",
  "op": "content",
  "id": "square-content",
  "ts": 1772000001060,
  "d": {
    "tweetId": "square-content",
    "text": "Weekly market outlook is live.",
    "createdAt": 1772000001000,
    "receivedAt": 1772000001050,
    "kind": "post",
    "author": {
      "id": "square-author",
      "handle": "@marketresearch",
      "name": "Market Research",
      "platform": "binance_square",
      "url": "https://www.binance.com/en/square/profile/marketresearch"
    }
  }
}

References and media

Replies, quotes, and retweets can include ref. Treat each nested reference as its own post and read attachments from that reference.