Get an X post
xcrap_get_tweetFetch a single X/Twitter post by URL or numeric ID, returning full text, author, timestamp, engagement metrics, media, poll, quoted post, and community note without login.
Instructions
Fetch one post (tweet) from X/Twitter by URL or numeric id, including its full text, author, timestamp, engagement metrics, attached media, poll, quoted post and community note.
Works without any X account, API key or login, and reads posts that x.com refuses to show logged-out visitors. Long-form posts are returned in full, not truncated at 280 characters.
When to use this instead of the alternatives:
Use this for ONE specific post. It is the cheapest tool here (60 calls/minute).
Use xcrap_get_thread if the post is the start or middle of a multi-post thread and you want the whole thread unrolled.
Use xcrap_bulk for several posts at once — it is one call instead of N and has a far larger effective budget.
Use xcrap_list_media if you only need the image or video files attached to the post.
Args:
url (string, required): post URL or bare numeric id, e.g. "https://x.com/jack/status/20", "https://twitter.com/jack/status/20" or "20".
format ('markdown' | 'json'): default 'markdown'.
Returns (markdown): a heading with the author's name and handle, the timestamp and permalink, the post text, and a line of metrics (likes, reposts, replies, quotes, bookmarks, views). Returns (json): { id, url, text, lang, created_at, created_timestamp, author{...}, metrics{likes,retweets,replies,quotes,bookmarks,views}, media[], poll, quote, replying_to, replying_to_status, community_note, possibly_sensitive, is_note_tweet, entities[], client }.
Errors: 404 means the post is deleted, private or never existed and retrying will not help; 451 means the author opted out of XCrap.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Post URL or bare numeric id. Accepts x.com, twitter.com and mirror hosts, e.g. "https://x.com/jack/status/20" or "20". | |
| format | No | Output format. 'markdown' (default) is compact, human-readable and costs roughly a tenth of the tokens of the same data as JSON — prefer it for reading and summarising. Use 'json' only when you need exact field access: numeric ids, media URLs, per-metric values, or provenance metadata. | markdown |