Skip to main content
GET
How to see who liked my tweet with Twitter API
Requested result counts are upper bounds for paid authenticated calls. When remaining credits cannot cover the full page or ID list, Xquik returns fewer results. If zero paid results are affordable, it returns 402 insufficient_credits.
1 credit per result returned · All plans from $0.00012/credit · Supports guest paid reads
Use this Twitter API to see who liked one public tweet. The response returns profiles only when X exposes liker identities. The canonical route is GET /api/v1/x/tweets/{id}/favoriters.
X does not expose liker identities for every post. When a post reports likes but no liker identities are available, the endpoint returns 424 favoriters_unavailable. Do not interpret this error as zero likes or proof that a specific user did not participate.
The Node.js and Python snippets write JSON Lines liker rows plus a separate checkpoint instead of raw response pages. Persist each mapped row and the latest next_cursor so an import, giveaway verifier, CRM sync, or agent job can resume from the last completed page without duplicate rows.

Direct tweet liker handoff

Use GET /api/v1/x/tweets/{id}/favoriters when a workflow needs one row per visible account that liked a post. Use these rows for giveaway checks, CRM imports, audience reviews, or follow-up jobs. Store source_tweet_id, liker_id, username, display_name, follower_count, following_count, verified, verified_type, profile_image_url, and next_cursor.

Liker rows

Store users[] as the visible profile rows for accounts that liked the source post.

Stable upserts

Store users[].id as liker_id with source_tweet_id for idempotent imports and giveaway checks.

Readable labels

Store users[].username and users[].name for handles, labels, and review queues.

Profile enrichment

Store description, location, url, and profilePicture when returned for CRM and warehouse enrichment.

Audience signals

Store followers, following, verified, and verifiedType for scoring, filters, and outreach priority.

Approved contact

Use DM endpoints only after a user-approved message flow. Treat the write response as the delivery authority.

Next page

Store has_next_page and next_cursor; pass next_cursor back as cursor only when has_next_page is true.

Credit-limited pages

Use users.length, not a requested page size, for row counts. Low balances can return fewer rows.
Direct tweet liker reads cost 1 credit per user returned. Low credit balances can return fewer users than a full page; zero affordable results return 402 insufficient_credits.

Tweet liker questions

How do I see who liked my tweet?

Pass the tweet’s numeric ID. The response lists visible user profiles. Continue pagination only when the response confirms another page. X documents this read intent as Get Liking Users.

Why can’t I see who liked my tweet?

X does not expose every liker set. A tweet can show a like count while its liker profiles remain hidden. 424 favoriters_unavailable does not mean zero likes. Deleted, protected, blocked, or withheld accounts may not appear.

Does this show an account’s private likes?

No. This endpoint returns visible users for one source tweet. It does not return an account’s Likes tab or private like history.

How do I export tweet likers?

The Node.js and Python examples write one JSON Lines row per visible user. Store the source tweet ID beside each profile. Use next_cursor to resume an export. Use toolType=favoriters for a saved CSV, JSON, or XLSX job.

How can I track and analyze tweet likes?

Run timestamped snapshots and compare them by numeric user ID. This read endpoint does not send notifications for future likes. A like does not prove endorsement, purchase intent, or affiliation. Report only returned fields.

Path parameters

string
required
Tweet ID (numeric string).

Query parameters

string
Pagination cursor from next_cursor in a previous response. Omit it on the initial request. Pass it only when has_next_page is true.
integer
Profiles per page. Range: 20-200. Defaults to 200.

Which tweet engagement endpoint?

Tweet likers

Use GET /x/tweets/{id}/favoriters for user profiles that liked one source tweet.

Retweeters

Use GET /x/tweets/{id}/retweeters for user profiles that reposted one source tweet.

Quote tweets

Use GET /x/tweets/{id}/quotes when you need tweet rows that quote the source tweet.

Tweet replies

Use GET /x/tweets/{id}/replies when you need reply tweet rows under the source tweet.

Saved exports

Use Create extraction with toolType=favoriters when you need a saved job or CSV, JSON, or XLSX export.

DM handoff

Use Send DM only after your workflow has a user-approved outreach step.

User result filters

These filters apply before billing. Selective filters can return fewer rows.
integer
Require this minimum follower count. Filtering happens before billing.
integer
Allow this maximum follower count. Missing counts pass this filter.
integer
Require this minimum following count.
integer
Allow this maximum following count. Missing counts pass this filter.
integer
Require this minimum post count.
integer
Allow this maximum post count. Missing counts pass this filter.
integer
Require this minimum account age in days.
boolean
When true, only return verified profiles.
string
Match the exact verification type.
boolean
When true, require a profile website.
boolean
When true, require a profile location.
string
Require every comma-separated or line-separated bio term.
string
Require this text in the profile location.
string
Require this text in the username.

Headers

string
Full account key. Sessions and OAuth also work.
string
Bearer xq_your_guest_key_here for paid_reads.

Response

200 OK

object[]
Array of visible users who liked the post. User object fields.
string
X user ID.
string
X username.
string
Display name.
string
Profile bio.
number
This value records the follower count.
number
Following count.
boolean
Verified status.
string
Profile image URL.
string
Profile location.
string
Account creation date (ISO 8601).
number
This value records the total tweet count. X may omit it.
string
This value contains the cover image URL. X may omit it.
number
This value records the media tweet count. X may omit it.
string
Website URL from profile. Omitted if empty.
number
This value records the liked tweet count. X may omit it.
boolean
X sets this flag for accounts with custom timelines. X may omit it.
boolean
X sets this flag for translator accounts. X may omit it.
string[]
Country codes where the account is withheld. Omitted if empty.
boolean
X sets this flag for sensitive accounts. X may omit it.
string[]
This array contains pinned tweet IDs. Omitted if none.
boolean
X sets this flag for automated accounts. X may omit it.
string
Username of the account operator if automated. Omitted if not automated.
boolean
X sets this flag when it cannot return the account.
string
X may give a reason for a missing account.
string
Verification type (e.g. Business, Government). Omitted if not verified or standard blue check.
object
Use this object for bio text and linked profile entities. X may omit it.
boolean
X sets this flag for X Premium verification. X may omit it.
boolean
Use this field for normalized verification status. X may omit it.
string
This value contains the profile banner URL. X may omit it.
boolean
X sets this flag for protected accounts. X may omit it.
string
Role within the requested community context. Omitted outside community results.
boolean
Whether more results are available.
string
Opaque cursor for the next page. Empty string when no more results.

401 Unauthenticated

Anonymous requests receive WWW-Authenticate: Bearer. This is not a Payment challenge.

402 Payment required

Account users can subscribe or add credits. A guest wallet can open checkout. Confirm payment before continuing.