X · Handle

User Tweets

Send a handle, get their posts. Costs 3 credits a post

01

Request

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

handle takes the handle however you have it. nasa, @nasa and https://x.com/nasa all name the same account, and X’s own pages — home, search, i — are refused rather than fetched and parsed as somebody’s timeline.

handlenasa, @nasa, or a profile link
pagination_tokenthe previous response’s token; leave out for the first page

Three credits per returned post. Each call fetches one page. If the wallet cannot cover that page, the call fails and its charge is refunded. X decides how many posts are returned.

02

Response sample

Response example for handle: netflix

▸ ▾ profile {} — profile fields beside data.posts
{
  "id": "16573941",
  "name": "Netflix",
  "handle": "@netflix",
  "verified": true,
  "blue_verified": true,
  "bio": "deborah & rashida & shaquille & amir & hazel & kojo",
  "location": "California, USA",
  "website": "http://netflix.com/netflixandchills",
  "joined": "2008-10-03T04:16:17Z",
  "followers": 29280761,
  "following": 2241,
  "post_count": 67849,
  "media_count": 26218,
  "avatar": "https://pbs.twimg.com/profile_images/1996301804053868544/Xrwvbe1q_normal.jpg",
  "banner": "https://pbs.twimg.com/profile_banners/16573941/1790866557"
}
▸ ▾ posts [] — one post from the captured JSON page
[
  {
    "id": "2105679740917129669",
    "url": "https://x.com/netflix/status/2105679740917129669",
    "posted_at": "2026-10-01T15:22:26Z",
    "text": "RT @yugyienz: BOW DOWN TO MOTHER",
    "lang": "en",
    "author_name": "Netflix",
    "author_handle": "@netflix",
    "author_url": "https://x.com/netflix",
    "author_avatar": "https://pbs.twimg.com/profile_images/1996301804053868544/Xrwvbe1q_normal.jpg",
    "author_verified": true,
    "reply_count": 0,
    "reposts": 1,
    "likes": 0,
    "quotes": 0,
    "bookmarks": 0,
    "views": 12588,
    "conversation_id": "2105679740917129669",
    "in_reply_to_id": null,
    "in_reply_to_user_id": null,
    "photos": [],
    "videos": [],
    "quoted_text": null,
    "possibly_sensitive": null,
    "context": null,
    "quoted_post_id": null,
    "reposted_post_id": "2105675866533724508",
    "hashtags": [],
    "mentions": [
      {
        "id_str": "995924951357014017",
        "indices": [
          3,
          12
        ],
        "name": "laves 🦀",
        "screen_name": "yugyienz"
      }
    ],
    "links": null
  }
]
▸ ▾ pagination {} — pass the token from your own response unchanged; this example is abbreviated
{
  "has_next_page": true,
  "pagination_token": "…"
}

03

Fields

Profile fields sit beside data.posts. Missing values are null; counts are numbers and verification is boolean. Text keeps emoji. Send data.pagination.pagination_token unchanged with the same handle to fetch another page.

profile {}

idtextAccount ID as a string.
nametextDisplay name.
handletextHandle including @.
verifiedbooleanTrue for a verified or blue verified account.
blue_verifiedbooleanBlue verification status.
biotextBio text, including emoji.
locationtextLocation supplied by the account; null when absent.
websitetextExpanded website URL.
joineddateAccount creation time in RFC 3339.
followersnumberExact follower count.
followingnumberExact following count.
post_countnumberAccount post count.
media_countnumberAccount media count.
avatartextAvatar URL.
bannertextBanner image URL.

posts []

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.

pagination {}

has_next_pagebooleanWhether another page is available.
pagination_tokentextSend this unchanged with the same handle or search; null when the feed ends.