Users
Twitter batch user lookup API & profile details
Retrieve up to 100 X user profiles by ID in one request, including usernames, bios, verification state, follower counts, and profile media. See costs.
- 200
- 400
- 401
- 402
- 424
- 429
- 502
GET
Twitter batch user lookup API & profile details
integer
Require this minimum follower count. Filtering happens before billing.
integer
Allow this maximum follower count. Missing counts pass.
integer
Require this minimum account age in whole days.
boolean
When
true, only return verified profiles.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 user returned · All plans from $0.00012/credit
profileRows or profile_rows and missingIds
or missing_ids with the original ID list so retries only request missing
profiles.
Direct batch user handoff
UseGET /x/users/batch when a CRM, warehouse, enrichment, lead scoring, or
agent workflow already has numeric X user IDs and needs profile details in one
JSON response. Use Get User when you have one ID
or username to resolve.
Store requested_ids, user_id, username, display_name, profile metrics,
verification state, profile_image_url, has_next_page, and next_cursor.
Join returned users by user_id instead of relying on response order. Send at
most 100 IDs per request. Batch requests always return has_next_page: false
and next_cursor: ""; zero affordable results return
402 insufficient_credits.
Known IDs
Send comma-separated X user IDs in
ids. Keep the original list as
requested_ids for retry and audit rows.Profile rows
Store each returned
id as user_id with username, name,
description, followers, following, verified, and verifiedType.Missing rows
Compare returned
user_id values with requested_ids. Retry only the
missing IDs or route username-only inputs to Get User first.No pagination
Use the single-page batch contract:
has_next_page: false and
next_cursor: "". Do not treat it as a cursor workflow.Which lookup endpoint?
One profile
Use
GET /x/users/{id} for one username or one
user ID.Many known IDs
Use
GET /x/users/batch for up to 100 comma-separated user IDs in one
request.Name or partial handle
Use
GET /x/users/search before batch
lookup when the workflow starts from a name, brand, or handle fragment.Tweet IDs
Use
GET /x/tweets/batch when the input
list contains tweet IDs instead of user IDs.Audience pages
Use
GET /x/users/{id}/followers or
GET /x/users/{id}/following when the job
starts from an account audience.Saved exports
Use
Create extraction when the source
is a follower, following, timeline, media, or search job instead of an
existing ID list.Enrich a known set of user IDs
Use batch lookup after another workflow already identified exact profiles. Examples include follower exports, tweet authors, community members, or CRM records. Prepare one deduplicated ID list. Keep the original source beside each ID. After lookup, map every returned profile back to its source row. Useful enrichment fields include:- Current username and profile name.
- Biography, location, and verification state.
- Follower and following counts.
- Profile image and account creation time.
Query parameters
string
required
Comma-separated user IDs. Maximum 100 per request.
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 matching the requested IDs.
User object fields.
string
X user ID.
string
X username.
string
Display name.
string
Profile bio.
number
Follower count.
number
Following count.
boolean
Verified status.
string
Profile image URL.
string
Profile location.
string
Account creation date (ISO 8601).
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
Always
false for batch requests.string
Always empty for batch requests.
400 Missing IDs
400 Too many IDs
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. Batch Tweets · Get User
- 200
- 400
- 401
- 402
- 424
- 429
- 502
Twitter batch user lookup API & profile details