op: 0 message as d. A custom webhook receives the same object as the POST body
Envelope
string
Stable for a given post, so you can use it to drop duplicates. Not sent on keyword events
string
The event type. See Event types
object
The task that produced the event
object
The event payload. Its shape depends on
event. Absent on twitter.task.updatestring
Only on
twitter.task.update. One of profile_private, profile_suspended, profile_available_backEvent types
Account events
New posts
Sent for every post type enabled on the task. Checkdata.type to tell posts, reposts, quotes, and replies apart
twitter.post.micro is a Pro feature and is only sent while micro events are enabled. It carries a partial post so you can react faster, followed by the complete twitter.post.new for the same postSubscriber and protected posts
twitter.post.subscription carries a full post with type set to subscription
twitter.post.private is sent when a protected account posts. The content is not visible, so data only holds the account’s new post count:
Deleted posts
twitter.post.deleted carries the deleted post as it was last seen
OCR
Sent when text has been read from an image in a post. Requires theocr option on the task
post_id against the id of an earlier post event to link the result to its post.
Translation
Sent when a post translation is ready.text has one entry for the post and one for each nested post (quoted, reposted, or replied) that was translated
Following and unfollowing
twitter.following.new and twitter.following.removed carry the profile of the account that was followed or unfollowed. The task’s following filters apply before the event is sent
Profile updates
Only the fields that changed are present indata. Each one holds the previous and new value
object
One key per changed field:
handle, name, avatar, banner, location, description, website, pinned_post, verificationTask status
Sent when the monitored account becomes unavailable or available again. There is nodata. Read status instead
Keyword posts
Twitter Global tasks sendtwitter_keyword.post.new. These events have no event_id, and task_info has keyword instead of handle and profile_info. The post has no type or mentions, and author is a lighter profile
verification.type is Business or Government when present. affiliation is only present when the account has one
Objects
Post
string
Post ID
integer
Post time in milliseconds
string
post, repost, quote, reply, or subscriptionstring
Post text
object[]
Photos and videos in the post
object[]
Accounts mentioned in the post
string[]
Hashtags without the
#object
Quotes only. The quoted post, with the same shape
object
Reposts only. The original post, with the same shape
object
Replies only. The post being replied to, with the same shape
Profile
string
Account ID. Unlike
handle, it never changesinteger
Account creation time in milliseconds
string
Username without the
@string
Display name
string
Profile picture URL. Truth Social can also include
avatar_originalstring
Banner URL
string
Bio
string
Location set on the profile
string
Website set on the profile
object
Verification badge
object
Affiliate label shown next to the name
object
Profile counters
verification, affiliation, and individual stats are omitted when Twitter does not return them