TwitterAPIs Docs
API ReferenceTweet Details

Twitter Retweeters API | Who Retweeted a Tweet

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.

Tweet Retweeters lists the accounts that retweeted a given tweet, cursor-paginated as full user objects. Use it for amplification analysis and to identify the specific accounts that spread a post. Pass a tweet ID or URL; each page is one $0.0008 read at the standard rate.

GET
/tweet/retweeters

Authorization

bearerAuth
AuthorizationBearer <token>

Pass your API key as a bearer token on every request: Authorization: Bearer <API_KEY>.

In: header

Query Parameters

id?string

Numeric ID of the tweet. Provide either id or url.

url?string

Full status URL of the tweet. Provide either id or url.

cursor?string

Pagination cursor from a previous response.

count?integer

Max items to return for this page. Default 20; clamped to 1-100.

fields?string

Comma-separated list of dotted field paths to keep in the response (one parameter, never repeated), applied to every object in the returned lists and to nested objects (for example fields=id,text,author.username; the list's own name may prefix a path, fields=tweets.id). A path prefix that lands on an array applies to each element (media.media_url_https). Pagination and envelope keys (next_cursor, cursor, has_more, count, partial, error, message, reason) are always kept. Unknown paths are ignored; up to 50 paths of up to 6 segments. Projection never changes status codes or billing, and applies to data reads only: account, feedback, session status, monitor (other than deliveries), webhook and stream-compat reads return their bodies unchanged.

compact?string

Set to 1 (or true) to apply the built-in compact preset: ids, url, text, created_at, lang, the engagement counts, the is_retweet/is_reply/is_quote flags, conversation ids, the author's id/username/name/followers_count/verification, and the quoted or retweeted tweet's id/url/author username. The preset trims what it recognises and leaves alone what it would empty, so it never turns a body into {}. Combine with fields to add paths on top of the preset. Typically cuts a tweet page by 70 to 90 percent for LLM tool callers.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/tweet/retweeters?id=1759123456789012345&url=https%3A%2F%2Fx.com%2Fnaval%2Fstatus%2F1759123456789012345&count=20&fields=id%2Ctext%2Ccreated_at%2Cauthor.username&compact=1"
{  "users": [    {      "id": "9921",      "username": "devjane",      "name": "Jane",      "followers_count": 4200,      "verified": false    }  ],  "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.",  "top_up_url": "https://www.twitterapis.com/dashboard/buy-credits?utm_source=api&utm_medium=402"}
{  "error": "forbidden",  "message": "X refused this resource for the acting account: on a read, the account is not a participant in the DM thread, the target is protected or has blocked it, or the session was attestation-blocked for calling from a datacenter or rotating IP; on a write, the account is not authorized for the action or has no logged-in session. The credentials are still valid, so do not re-register."}
{  "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

UnitPrice
Per call$0.0008
Per 1,000 calls$0.80
Per 1,000 records (~20 per call)~$0.04

Each page of retweeters is one $0.0008 read, so a widely-shared tweet costs one call per page. Cap paging to the reach sample you need.

When to use

Use it for amplification analysis, for example identifying which high-follower accounts retweeted your announcement.

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.

FAQ

Does Tweet Retweeters include quote tweets?

No. It returns the accounts that retweeted the post directly, with no attached text. For quote tweets, which do carry text, use Tweet Quotes.

What does each retweeter row contain?

Each row is a full user object with id, username, name, follower count, and verification, so you can rank reach without a second call.

How do I read every retweeter?

Page with next_cursor until the users array comes back empty, which is the universal stop signal.

Was this page helpful?