Events
Fires when a tracked user publishes a new post. Not a reply, quote, or repost. Each of those has its own event type.
A post event fires when a tracked user publishes a new original post.
Fields
| Field | Type | Notes |
|---|---|---|
type | "post" | |
id | string | X post ID |
url | string | Canonical https://x.com/{username}/status/{id} |
author | Author | The tracked user who posted |
text | string | Post text. URLs are expanded; HTML entities are decoded |
createdAtMs | number | Unix milliseconds, truncated to the second |
latencyMs | number | null | Real wall-clock from X creation to delivery. null when the upstream payload lacks a creation timestamp |
media | MediaRef[] | Empty array when no media |
article | ArticleRef | null | Card preview when the post links to an article |
poll | PollRef | null | When the post is a poll |
symbols | SymbolRef[] | Cashtags the author selected from X’s picker. Typing $btc in body text alone doesn’t count |
Example
Here’s a real post event from @elonmusk. The author object is shortened for the preview; the wire ships every Author field.
{
"type": "post",
"id": "2062662195192697233",
"url": "https://x.com/elonmusk/status/2062662195192697233",
"author": {
"id": "44196397",
"username": "elonmusk",
"displayName": "Elon Musk",
"verified": true,
"verifiedType": "blue"
},
"text": "Starlink V3 satellites have >10X bandwidth of V2 and there'll be >10X launched, which means >100X more bandwidth...",
"createdAtMs": 1780611964000,
"latencyMs": 58,
"media": [],
"article": null,
"poll": null,
"symbols": []
}