X · Post

Tweet

Send a link, get the post. Costs 12 credits

01

Request

POST /api/x/tweets/url with your bearer API key.

Every view of a post names the same post, so /status/<id>, /photo/1 and /analytics are all normalised to the one URL before anything is fetched.

tweet_urlhttps://x.com/<handle>/status/<id>

A permalink returns one post and its direct replies from the first response. Reply pagination is not included.

Twelve credits — four times what a post costs on a feed, because the replies come along free.

02

Response sample

Response example for a post of Lex Fridman’s

▸ ▾ post {} — focal post fields at the top level
{
  "id": "2061847191367647457",
  "url": "https://x.com/lexfridman/status/2061847191367647457",
  "posted_at": "2026-06-02T16:27:32Z",
  "text": "I got to spend all day today with Jensen in Taiwan: talking with thousands of engineers and eating street food at a night market. Jensen is received as a rockstar in Taiwan, like it's Beatles in the 60's. It's mind-blowing and fun to watch. But most importantly, through all the interactions and all my conversations with him, he remained the same humble, kind, thoughtful, funny guy he always was, even as a kid who went to these same night markets many years ago.\n\nBtw, we tried a crazy amount of different street food. It's legit some of the most delicious food I've ever had. I can't wait to share video of it, including a ton of our conversations and hangout. When I can pause for a moment from all the travel to edit the video, I'll post it.\n\nCan't wait to continue talking to Jensen and engineers at Computex this week, and exploring more of Taiwan, and of course roaming the night markets for some more delicious street food.\n\nDays like these, even more than usual, I feel like the luckiest kid in the world.\n\nLove you all! ❤️",
  "lang": "en",
  "author_name": "Lex Fridman",
  "author_handle": "@lexfridman",
  "author_url": "https://x.com/lexfridman",
  "author_avatar": "https://pbs.twimg.com/profile_images/1854713863817646088/nTmsz7jR_normal.jpg",
  "author_verified": true,
  "reply_count": 1176,
  "reposts": 1310,
  "likes": 27490,
  "quotes": 182,
  "bookmarks": 1513,
  "views": 1434487,
  "conversation_id": "2061847191367647457",
  "in_reply_to_id": null,
  "in_reply_to_user_id": null,
  "photos": [
    "https://pbs.twimg.com/media/HJ0j2fca8AAfpRW.jpg"
  ],
  "videos": [],
  "quoted_text": null,
  "possibly_sensitive": false,
  "context": null,
  "quoted_post_id": null,
  "reposted_post_id": null,
  "hashtags": [],
  "mentions": [],
  "links": []
}
▸ ▾ replies [] — one direct reply from the first response
[
  {
    "id": "2061882394194711012",
    "url": "https://x.com/amy______lin26/status/2061882394194711012",
    "posted_at": "2026-06-02T18:47:25Z",
    "text": "@lexfridman Welcome to Taiwan! https://t.co/l5Ej5yxa2z",
    "lang": "en",
    "author_name": "Amy Lin",
    "author_handle": "@amy______lin26",
    "author_url": "https://x.com/amy______lin26",
    "author_avatar": "https://pbs.twimg.com/profile_images/1997250096170414080/Twtv7eph_normal.jpg",
    "author_verified": true,
    "reply_count": 5,
    "reposts": 5,
    "likes": 243,
    "quotes": 0,
    "bookmarks": 20,
    "views": 16419,
    "conversation_id": "2061847191367647457",
    "in_reply_to_id": "2061847191367647457",
    "in_reply_to_user_id": "427089628",
    "photos": [],
    "videos": [
      {
        "additional_media_info": {
          "monetizable": false
        },
        "display_url": "pic.x.com/l5Ej5yxa2z",
        "expanded_url": "https://x.com/amy______lin26/status/2061882394194711012/video/1",
        "ext_media_availability": {
          "status": "Available"
        },
        "id_str": "2061882229681500161",
        "indices": [
          31,
          54
        ],
        "media_key": "13_2061882229681500161",
        "media_results": {
          "result": {
            "media_key": "13_2061882229681500161"
          }
        },
        "media_url_https": "https://pbs.twimg.com/amplify_video_thumb/2061882229681500161/img/OUB8RvWh6swIo00C.jpg",
        "original_info": {
          "focus_rects": [],
          "height": 1280,
          "width": 720
        },
        "sizes": {
          "large": {
            "h": 1280,
            "resize": "fit",
            "w": 720
          },
          "medium": {
            "h": 1200,
            "resize": "fit",
            "w": 675
          },
          "small": {
            "h": 680,
            "resize": "fit",
            "w": 383
          },
          "thumb": {
            "h": 150,
            "resize": "crop",
            "w": 150
          }
        },
        "type": "video",
        "url": "https://t.co/l5Ej5yxa2z",
        "video_info": {
          "aspect_ratio": [
            9,
            16
          ],
          "duration_millis": 62503,
          "variants": [
            {
              "content_type": "application/x-mpegURL",
              "url": "https://video.twimg.com/amplify_video/2061882229681500161/pl/x3NT4djfaHlcg-C5.m3u8?tag=27&v=cfc"
            },
            {
              "bitrate": 632000,
              "content_type": "video/mp4",
              "url": "https://video.twimg.com/amplify_video/2061882229681500161/vid/avc1/320x568/DbWrMEY6qRTEwO43.mp4?tag=27"
            },
            {
              "bitrate": 950000,
              "content_type": "video/mp4",
              "url": "https://video.twimg.com/amplify_video/2061882229681500161/vid/avc1/480x852/4PWCI7Ixpi8uvGNq.mp4?tag=27"
            },
            {
              "bitrate": 2176000,
              "content_type": "video/mp4",
              "url": "https://video.twimg.com/amplify_video/2061882229681500161/vid/avc1/720x1280/9zqWZIItrfwfKb_E.mp4?tag=27"
            }
          ]
        }
      }
    ],
    "quoted_text": null,
    "possibly_sensitive": false,
    "context": null,
    "quoted_post_id": null,
    "reposted_post_id": null,
    "hashtags": [],
    "mentions": [
      {
        "id_str": "427089628",
        "indices": [
          0,
          11
        ],
        "name": "Lex Fridman",
        "screen_name": "lexfridman"
      }
    ],
    "links": null
  }
]

03

Fields

The post’s own fields sit at the top level, with replies under them. A post with no replies comes back with an empty list.

reply_count, reposts, likes,quotes, bookmarks and views are separate numbers when X supplies them. IDs are strings, verification is boolean, and text keeps emoji and long content. Missing values are null. Direct replies use the same post fields.

the post {}

idtextPost ID as a string.
urltextFull post URL.
posted_atdatePosting time in RFC 3339.
texttextFull text, including emoji and long posts when X supplies them.
langtextLanguage reported by X.
author_nametextDisplay name.
author_handletextHandle including @.
author_urltextFull profile URL.
author_avatartextAvatar URL.
author_verifiedbooleanTrue for a verified or blue verified author.
reply_countnumberTotal replies reported by X, including replies beyond this response.
repostsnumberRepost count.
likesnumberLike count.
quotesnumberQuote count.
bookmarksnumberBookmark count.
viewsnumberExact view count when supplied by X; otherwise null.
conversation_idtextConversation root ID.
in_reply_to_idtextParent post ID, or null.
in_reply_to_user_idtextParent author ID, or null.
photostext[]Photo URLs belonging to this post.
videosobject[]Video and GIF objects, including thumbnail and video_info.variants URLs and bitrates.
quoted_texttextText of the quoted post, including long text when supplied.
possibly_sensitivebooleanX’s sensitive-content flag.
contexttextPinned or the context above a timeline post; otherwise null.
quoted_post_idtextQuoted post ID, or null.
reposted_post_idtextOriginal post ID for a repost, or null.
hashtagstext[]Hashtag text without #.
mentionsobject[]X’s native mention objects, including handle and account ID.
linksobject[]X’s native link objects, including short, expanded and display URLs.

and only on the post {}

▸ ▾ repliesobject[]Direct replies from the first response. Ancestors, nested replies and suggested posts are excluded.
idtextPost ID as a string.
urltextFull post URL.
posted_atdatePosting time in RFC 3339.
texttextFull text, including emoji and long posts when X supplies them.
langtextLanguage reported by X.
author_nametextDisplay name.
author_handletextHandle including @.
author_urltextFull profile URL.
author_avatartextAvatar URL.
author_verifiedbooleanTrue for a verified or blue verified author.
reply_countnumberTotal replies reported by X, including replies beyond this response.
repostsnumberRepost count.
likesnumberLike count.
quotesnumberQuote count.
bookmarksnumberBookmark count.
viewsnumberExact view count when supplied by X; otherwise null.
conversation_idtextConversation root ID.
in_reply_to_idtextParent post ID, or null.
in_reply_to_user_idtextParent author ID, or null.
photostext[]Photo URLs belonging to this post.
videosobject[]Video and GIF objects, including thumbnail and video_info.variants URLs and bitrates.
quoted_texttextText of the quoted post, including long text when supplied.
possibly_sensitivebooleanX’s sensitive-content flag.
contexttextPinned or the context above a timeline post; otherwise null.
quoted_post_idtextQuoted post ID, or null.
reposted_post_idtextOriginal post ID for a repost, or null.
hashtagstext[]Hashtag text without #.
mentionsobject[]X’s native mention objects, including handle and account ID.
linksobject[]X’s native link objects, including short, expanded and display URLs.