Twitter/X User Tweets API
Most popular public tweets from a Twitter/X profile (~100 cap) — not chronological.
Pass a profile URL or @handle and get the tweets Twitter's public timeline embed exposes as clean JSON. Important: this is not a chronological or latest feed — Twitter publicly returns on the order of ~100 of the account's most popular posts. Do not use this endpoint to detect new tweets. There is no cursor: the envelope names the window (requested / listingHits / hasMore / truncatedReason=popular-window). hasMore means raise limit, not pass a cursor. Each tweet uses the shared contract: ISO-8601 publishedAt, author, engagement{likes,replies,retweets,quotes} — views and bookmarks are omitted on this surface (syndication never exposes them; community-tweets / tweet-details do via GraphQL), isReply / isRetweet / isQuote, conversationId, source when present, hashtags[] and media[]. Flat 2 credits per call. Pass cache=true to serve from the 24h shared cache (0 credits on hit); default is always fresh. Empty verdicts are honest 200s at 0 credits: truncatedReason no-tweets (profile reports 0 tweets) or embed-empty (the embed renders the account without posts — deterministic, retrying does not change it). When the embed does not answer at all (transport miss, or the 45s ceiling), the last answer we fetched for that handle in the previous 26h is replayed as stale:true / cached:true with fetchedAt (scrape time) and servedAt, plus a note, at 0 credits — the popular window moves slowly, so yesterday's snapshot beats a retryable 502. Only a handle with no snapshot gets the 502/503.
Request
- Base URL: https://api.captapi.com
- URL: https://api.captapi.com/v1/twitter/user-tweets
- Auth: one of:
- HTTP bearer
- API key in header X-API-Key
Query parameters
Twitter/X profile URL or @handle. The URL platform must match this endpoint's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
Max tweets to return (default 20, max 200). Twitter's public surface usually caps around ~100 most popular posts — not chronological latest. Flat 2 credits per call.
Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh.
Response
Success. The data object for this endpoint.
Changes
No recorded changes to this operation across all 3 revisions of this API.