Relationships
Twitter Following API, Profile Export & Cursors
Retrieve the accounts one X user follows by username or numeric user ID with cursor pagination for social graph, CRM, warehouse, and agent workflows. See costs.
- 200
- 400
- 401
- 402
- 404
- 409
- 410
- 424
- 429
- 502
- 503
GET
Twitter Following API, Profile Export & Cursors
Choose Outbound Relationships
Use this route for accounts the selected user follows. Use followers for inbound relationships. Use verified followers only when the inbound population must carry verification.1 credit per result returned · All plans from $0.00012/credit
Get following returns the accounts one X profile follows by username or
numeric user ID. It is also useful as a Following API, X following API, or
Twitter following API. The canonical endpoint remains
GET /api/v1/x/users/{id}/following.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.
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.
Finished, expired, superseded, or identity-mismatched cursors return
410 coverage_cursor_gone. The response omits Retry-After. Restart without
a cursor. Deduplicate restarted results by id.
Malformed cursors return 400 invalid_coverage_cursor. Restart without them.
next_cursor in your
sync job so it can resume from the last completed page.
For high-volume following pulls, de-duplicate profiles by id, continue through empty pages when the cursor advances, and stop with a partial-result status when next_cursor is missing or repeats.
Direct following handoff
UseGET /x/users/{id}/following when a CRM, warehouse, audience, or agent workflow needs one paginated JSON page of accounts followed by a user now. The endpoint accepts either a username or numeric user ID and returns followed account profile rows with cursor fields. Use following_explorer when you need an estimated job, saved extraction, or CSV/JSON/XLSX file export.
Following rows
Store
users[] as the followed account profile rows returned on this page.Stable upserts
Store
users[].id as x_user_id for CRM, warehouse, audience, and agent dedupe.Readable labels
Store
users[].username and users[].name for handles, labels, segments, and review queues.Profile enrichment
Store
users[].description, location, url, profilePicture, and coverPicture when returned.Next page
Store
has_next_page and next_cursor; pass next_cursor back as cursor only when has_next_page is true.Page size
Automatic pages accept 20 to 300. Standard pages accept 20 to 200.
402 insufficient_credits.
Track Twitter following changes
Create complete following snapshots for the selected profile. Keep its numeric user ID and collection time with every row. Compare snapshots by followed user ID. New IDs represent newly observed outbound follows. Missing IDs represent removals only when both snapshots completed successfully. Keep the current username, profile name, biography, verification state, and follower counts for review. Do not use usernames as the comparison key. Persist every cursor page before advancing. Mark interrupted, repeated-cursor, or credit-limited runs as partial. Never calculate following changes from a partial snapshot.Path parameters
string
required
User ID (numeric) or username.
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. Credits can reduce the returned row count.number
With
mode=coverage, set a one-shot cap from 1 through 10000.
Otherwise, this is a legacy page size alias. pageSize wins.Which following endpoint?
One user's following
Use
GET /x/users/{id}/following for the accounts one profile follows.One user's followers
Use
GET /x/users/{id}/followers for the
accounts that follow that profile.Verified followers
Use
GET /x/users/{id}/verified-followers
when you only need verified followers of the profile.Saved exports
Use
following_explorer for a saved
following 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
object[]
Array of user profiles being followed.
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.
string
Profile picture URL.
string
Profile location. Omitted if empty.
string
ISO 8601 account creation timestamp.
number
Total number of tweets posted. Omitted if unavailable.
string
Cover/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 the account is flagged as possibly sensitive. Omitted if unavailable.
string[]
IDs of pinned tweets. Omitted if none.
boolean
Whether the account is marked 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.
string
Verification type (e.g.
Business, Government). Omitted if not verified or standard blue check.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: Get followers · Get verified followers · Get followers you know
- 200
- 400
- 401
- 402
- 404
- 409
- 410
- 424
- 429
- 502
- 503
Twitter Following API, Profile Export & Cursors