Twitter Replies API | Get Replies to a Tweet
Fetch the direct replies to a given tweet, cursor-paginated. Combine with Tweet Detail to reconstruct a discussion or measure reply sentiment. Cost: $0.0008 per call.
Tweet Replies fetches the direct replies to a tweet by its ID or URL, cursor-paginated as full tweet objects. Pair it with Tweet Detail to reconstruct a discussion or measure reply sentiment under a post. Each page is one $0.0008 read at roughly 20 replies per call.
Authorization
bearerAuth Pass your API key as a bearer token on every request: Authorization: Bearer <API_KEY>.
In: header
Query Parameters
Numeric ID of the parent tweet. Provide either id or url.
Full status URL of the parent tweet. Provide either id or url.
Pagination cursor from a previous response.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/tweet/replies?id=1759123456789012345&url=https%3A%2F%2Fx.com%2Fnaval%2Fstatus%2F1759123456789012345"{ "count": 1, "next_cursor": "DAABCgABF...", "tweets": [ { "id": "1759123999000111222", "text": "Congrats on the launch!", "created_at": "Tue Feb 20 14:30:02 +0000 2026", "author": { "id": "9921", "username": "devjane", "name": "Jane" }, "favorite_count": 12, "reply_count": 1 } ]}{ "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 of replies is one $0.0008 read, so a heavily-replied tweet costs one call per page. Stop paging once you have the replies you need.
When to use
Use it to read the conversation under a post, for example pulling every reply to a launch tweet to gauge sentiment.
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
- Tweet Detail: Fetch a single tweet's full object by ID.
- Tweet Thread: Reconstruct a thread forward from its first tweet.
- Tweet Retweeters: List the users who retweeted a tweet.
FAQ
Does Tweet Replies return nested replies?
It returns the direct replies to the tweet you pass. To follow a sub-thread, take a reply's ID and call Tweet Replies again on it.
How do I page through every reply?
Send the next_cursor as the cursor parameter and repeat until the tweets array comes back empty, which is the stop signal.
Can I pass a tweet URL?
Yes. Provide either the numeric id or the full status url of the parent tweet.
Tweet Detail GET
Resolve a tweet ID into its complete object, including author, engagement counts, attached media, and any quoted tweet. The starting point for any single-tweet workflow. Cost: $0.0008 per call.
Tweet Retweeters GET
Fetch the users who retweeted a given tweet, cursor-paginated. Useful for amplification analysis and identifying the accounts that spread a post. Cost: $0.0008 per call.