Twitter Tweets and Replies API | Full Timeline
Page through a user's public timeline including the replies the account posted. This endpoint resolves to the same upstream timeline as GET /user/tweets and returns the same tweets in the same order, so treat it as an alias kept for compatibility rather than a wider result set. Each tweet carries is_retweet and is_reply for client-side filtering. Cost: $0.0008 per call.
User Tweets and Replies pages through a profile's public timeline including the replies the account posted, cursor-paginated at roughly 20 tweets per call. It resolves to the same upstream timeline as User Tweets and returns the same tweets, so treat it as an alias kept for compatibility. Each page is one $0.0008 read.
Authorization
bearerAuth Pass your API key as a bearer token on every request: Authorization: Bearer <API_KEY>.
In: header
Query Parameters
Handle without the leading @.
Numeric user ID; provide either username or user_id.
Pagination cursor from a previous response.
Accepted but not honoured on this endpoint: the upstream timeline page is fixed at roughly 20 tweets and raising count does not return more. Use cursor to read further back.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/user/tweets_and_replies?username=naval&user_id=44196397&count=20"{ "tweets": [ { "id": "1759123456789012345", "text": "@founder Great point, here is the data.", "author": { "id": "745273", "username": "naval" } } ], "next_cursor": "DAABCgABF..."}{ "error": "bad_request", "message": "Missing or malformed parameter. Fix the request before retrying."}{ "error": "unauthorized", "message": "The API key is missing, malformed, or revoked. Check the Authorization header."}{ "error": "insufficient_credits", "message": "Your balance is exhausted. Top up your credits to continue."}{ "error": "not_found", "message": "The resource does not exist, for example a deleted tweet or a private account."}{ "error": "rate_limited", "message": "Too many requests. Back off and retry with exponential backoff."}{ "error": "server_error", "message": "Something failed on our side. Retry with backoff; if it persists, contact support."}Pricing
| Unit | Price |
|---|---|
| Per call | $0.0008 |
| Per 1,000 calls | $0.80 |
| Per 1,000 records (~20 per call) | ~$0.04 |
Each page is one $0.0008 read. Because it returns the same timeline as User Tweets, calling both endpoints for the same account bills twice for identical data.
When to use
Use it for full activity capture, for example monitoring every public reply a support account sends. It returns the same data as User Tweets, so there is no need to call both.
Pagination
This endpoint is cursor-paginated and returns roughly 20 records per call. Pass the next_cursor from each response back as the cursor parameter to read the next page. Stop when the records array comes back empty: follower-graph endpoints return a non-null cursor even on the final page, so the empty array is the only reliable stop signal. See Pagination for the full loop.
Related endpoints
- User Tweets: Fetch a user's public timeline (original tweets, retweets, and their own replies).
- User Media: Page through a profile's media tweets (images and video).
- User Mentions: Fetch tweets that mention a username.
FAQ
How is this different from User Tweets?
In practice it is not. Both endpoints resolve to the same upstream timeline and return the same tweets, in the same order, for the same account. This path is kept as an alias for compatibility; do not call both expecting different data.
Does it include replies received from others?
No. It includes the replies the account itself posted. To read replies a tweet received, use Tweet Replies.
How do I read the whole timeline?
Page with next_cursor until the tweets array comes back empty, the universal stop signal on every paginated endpoint.
User Tweets GET
Page through a user's public timeline, cursor-paginated at roughly 20 tweets per call. The page mirrors the account's timeline as X returns it, so it contains original tweets, retweets, and the account's own replies. Each tweet carries is_retweet and is_reply, so filter client-side if you want original posts only. Cost: $0.0008 per call.
Home Timeline GET
Read the home timeline for the account behind your registered session: the ranked feed shown when that account opens X, most recent first. Returns full tweet objects with author and engagement counts. Cursor-paginated. Requires a registered session. Cost: $0.0008 per call.