Relationships
Twitter verified followers API & profile export
Retrieve verified X followers by username or numeric user ID with cursor pagination for CRM, scoring, enrichment, and agent workflows. 1 credit per result.
- 200
- 400
- 401
- 402
- 403
- 404
- 409
- 410
- 424
- 429
- 502
- 503
GET
Twitter verified followers API & profile export
Retrieve verified profiles that follow one X account. Store stable user IDs,
handles, verification types, counts, and pagination cursors.
Get verified followers returns verified profiles that follow one X account by
username or numeric user ID. The
endpoint is
Existing unprefixed cursors keep their legacy behavior.
The Node.js and Python snippets build verified follower rows. They do not
print the full response page. Store
Direct verified followers cost 1 credit per user returned. Low credit balances can return fewer users than a full page. Zero affordable results return
The read service returned an error. Retry after a short delay.
You exceeded your tier rate limit. Wait for the
The normalized v1 response contract can return 424 when the read service is unavailable.
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
GET /api/v1/x/users/{id}/verified-followers.
Omit
mode for automatic maximum coverage. Xquik combines available views
within a short request window. It keeps the existing response shape.
Pass next_cursor back unchanged as cursor. Keep the same endpoint, target,
query, and filters.after, limit, and
pageSize aliases also keep working. Billing still counts only returned rows.
Use mode=standard only to force legacy single-view pagination.
A page can be empty or underfilled. Continue while has_next_page is true.
Stop only after the response reports has_next_page=false.
First-page requests do not support Idempotency-Key retries.
Repeating a cursorless request starts a separate extraction.
Results returned by that extraction incur their normal charges.
Save each response before requesting its next page.
You cannot replay earlier or terminal responses after their cursors become unavailable.
If automatic coverage is busy, an initial request returns a standard data page.
Live coverage cursors remain atomic. Concurrent use returns
409 coverage_cursor_unavailable with exact Retry-After seconds. Wait, then
retry the same cursor once.
Repeated busy responses never authorize restarting with another cursor.
Finished, expired, superseded, or identity-mismatched cursors return
410 coverage_cursor_gone. The response omits Retry-After. Restart without
a cursor. Keep received results. Deduplicate restarted results by id.
Malformed cursors return 400 invalid_coverage_cursor. Restart without them.
verifiedRows or verified_rows with
the checkpoint. A worker can then resume pagination with next_cursor without
duplicating imported profiles.
Direct verified followers handoff
UseGET /x/users/{id}/verified-followers when a CRM, warehouse, scoring, enrichment, or agent workflow needs one JSON page of verified followers now. The endpoint accepts a username or numeric user ID. It returns verified follower profile rows with cursor fields. Use verified_follower_explorer when you need an estimated job, saved extraction, or CSV, JSON, or XLSX file export.
Verified rows
Store
users[] as the verified follower profile rows returned on this page.Stable upserts
Store
users[].id as x_user_id for CRM, warehouse, scoring, and agent deduplication.Readable labels
Store
users[].username and users[].name for handles, labels, enrichment, and review queues.Verification signals
Store
users[].verified and verifiedType to segment standard, business, and government accounts.Audience signals
Store
users[].followers, users[].following, and statusesCount for scoring and prioritization.Profile enrichment
Store
users[].description, location, url, profilePicture, and coverPicture when returned.Next page
Store
has_next_page and next_cursor, then pass next_cursor back as cursor only when has_next_page is true.402 insufficient_credits.
A protected account returns 403 x_account_protected. Xquik charges nothing.
Review verified followers separately
Use this route when the verification filter is part of the question. Keep the source account ID with every returned profile. Verified follower rows can support account research, partner review, or audience segmentation. Verification does not prove relevance or endorsement. Apply another review step before outreach or ranking.Build a verified follower directory
Start with one source account ID or username. Resolve and store its stable user ID. Keep that source ID on every verified follower row. Store follower user ID, username, profile name, biography, location, and profile image when returned. Keepverified and verifiedType as separate
fields. Add follower count, following count, and collection time.
Use verification type for a documented segment. Do not translate it into
authority, relevance, identity quality, or endorsement. Add those judgments
only through your own reviewed process.
Use stable follower IDs for CRM upserts. Usernames, names, biographies,
images, verification, and counts can change. Overwrite them on each import. Keep
rejected import rows for review.
Validate verified follower export completeness
Deduplicate resumed pages by source account ID and follower user ID. Keep the newest complete profile fields. Keep the earliest collection evidence when an audit needs it. Record page count, unique row count, first cursor, last cursor, and completion time. Mark result caps, low credits, failed pages, and interrupted downloads. Never call those runs complete. Compare the exported row count with the saved extraction result when using a job. Investigate duplicate user IDs, rejected rows, and parsing errors. Check incomplete downloads before loading a warehouse.Path parameters
string
required
User ID, username with or without
@, or URL-encoded profile URL, such as
x.com/nasa. See path IDs.Query parameters
string
Pass
next_cursor back unchanged. New Xquik cursors resume automatic
coverage. Existing unprefixed cursors keep legacy behavior.string
Optional compatibility override. Omit it for automatic maximum coverage.
Use
standard for legacy single-view pagination. Use coverage for a
one-shot diagnostic response without cursor pagination.string
Legacy cursor alias. Use
cursor. When both are present, cursor wins.number
Automatic pages accept
20 through 300. Standard pages accept 20 through
200. The default is 200. Sources can return fewer profiles.number
With
mode=coverage, set a one-shot cap from 1 through 10000.
Otherwise, this is a legacy page size alias. pageSize wins.boolean
default:"false"
Set
true to add each row’s full profile, as GET /x/users/{id} returns it.
Pages take several seconds longer. The price per row stays the same. Later
pages can leave it out, & next_cursor still works.Which verified follower endpoint?
Verified followers
Use
GET /x/users/{id}/verified-followers for verified accounts that follow
one profile.All followers
Use
GET /x/users/{id}/followers when you need
verified and unverified followers.Following list
Use
GET /x/users/{id}/following for accounts
the profile follows.Saved exports
Use
verified_follower_explorer for a
saved verified follower extraction with CSV, JSON, or XLSX download handoff.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
WithenrichProfiles=true, each row carries the full profile. The
x-xquik-profile-enrichment header then counts the rows that have it, as in
enriched=180; requested=200. A row without it keeps its list fields.
object[]
Array of verified follower profiles.
User object fields.
string
X user ID.
string
X username.
string
Display name.
string
Profile bio. Omitted if empty.
number
Follower count.
number
Following count.
boolean
Whether the user is verified. Always true for this endpoint.
string
Verification type (for example
Business, Government). Omitted for standard blue check.string
Profile picture URL.
string
Profile location. Omitted if empty.
object | null
Country or region X shows for the account, with
value, level & observedAt. X infers it from
account access. It states no nationality or exact location. null when X shows none. Present with
enrichProfiles=true, unless X withholds it.true when X withheld accountBasedIn from this row. Retry later to get it. Omitted otherwise.string
ISO 8601 account creation timestamp.
number
Total number of tweets posted. Omitted if unavailable.
string
Cover or banner image URL. Omitted if unavailable.
number
Total number of media tweets posted. Omitted if unavailable.
string
Website URL from profile. Omitted if empty.
number
Total number of tweets liked. Omitted if unavailable.
boolean
Whether the user has custom timelines. Omitted if unavailable.
boolean
Whether the user is an X translator. Omitted if unavailable.
string[]
Country codes where the account is withheld. Omitted if empty.
boolean
Whether X flags the account as possibly sensitive. Omitted if unavailable.
string[]
IDs of pinned tweets. Omitted if none.
boolean
Whether X marks the account as automated. Omitted if unavailable.
string
Username of the account operator if automated. Omitted if not automated.
Whether the account is unavailable. Omitted if available.
Reason the account is unavailable. Omitted if available.
object
Structured profile bio with entity annotations. Omitted if unavailable.
boolean
Whether the account has X Premium verification. Omitted if unavailable.
boolean
Normalized verification status. Omitted if unavailable.
string
Profile banner URL. Omitted if unavailable.
boolean
Whether the account protects its posts. Omitted if unavailable.
string
Role within the requested community context. Omitted outside community results.
boolean
Whether more results are available.
string
Cursor for the next page.
400 Invalid user ID
404 User not found
401 Unauthenticated
Anonymous requests getWWW-Authenticate: Bearer and a guest wallet checkout action. This is not a Payment challenge.
402 Payment required
Account keys get account options. Guest keys get guest top-up only. No checkout starts automatically. Confirm any payment action.502 X API unavailable
429 Rate limit exceeded
Retry-After header before retrying.
424 Dependency failed
Related. Create extraction with
verified_follower_explorer for saved verified follower jobs, Export extraction for CSV, JSON, or XLSX downloads, Get followers, Get following, and Get followers you know.