Skip to main content
GET
Twitter list members API & CSV profile export guide
Use this Twitter List members API for one X List. Retrieve its curated profiles. Keep user IDs, usernames, bios, verification, profile images, and public counts. Follow every cursor to export Twitter List members into a complete roster.

Twitter list members questions

What is a Twitter list member?

A List member is an account selected by the List owner. Membership creates the List’s curated timeline. It does not mean the account follows that List. An account follower follows one profile instead. X explains these roles in its official Lists guide.

How do I view members of a Twitter list?

Copy the numeric List ID from its X URL. Request the first page without a cursor. Store every returned profile before requesting another page. Continue only when has_next_page is true. Pass next_cursor unchanged as cursor. X also documents a Get List members route. Its response and pagination fields differ from Xquik’s fields.

How do I export Twitter list members?

The direct endpoint returns JSON pages. Convert each profile into one export row. Store the List ID, member ID, username, bio, counts, and collection time. Follow every cursor before treating the export as complete. Use list_member_extractor for a saved job. It can produce CSV, JSON, or XLSX files without custom spreadsheet code.

Which profile fields can I analyze?

Analyze user IDs, usernames, display names, bios, and public location text. Compare follower counts, following counts, verification, and account dates. Use public counts to sort a roster for manual review. Do not call a high count “influence” without a clear method. This endpoint does not calculate reach, engagement, demographics, sentiment, or audience quality.

How do I compare list member snapshots?

Finish both snapshots before comparing their member IDs. Added IDs indicate newly observed members. Missing IDs indicate newly unobserved members. Record both snapshot times and completion states. A renamed username is not a new member. Never report removals from an incomplete later snapshot.

Can I export members from a private Twitter list?

Access depends on the credentials and visibility available to the read service. Never assume a private List is readable. Treat 404 as unavailable unless the List ID is wrong. Do not promise access to private Lists. Public profile fields also do not grant outreach consent.

Can this endpoint add or remove list members?

No. This GET endpoint only reads the current roster. It cannot create Lists, add members, remove members, follow Lists, or publish tweets. Use X’s supported write tools for owner-authorized changes. Xquik does not expose those actions through this endpoint.

How do I find active members or recent tweets?

This response describes profiles, not recent activity. Retrieve List Tweets for posts from the current List timeline. Analyze tweets separately from List membership. A profile count does not prove recent activity. One active account can publish many posts while remaining one List member.
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
The Node.js and Python snippets create one row per List member. Save memberRows or member_rows with nextCursor. Then request the next page.

Direct list member handoff

Use GET /x/lists/{id}/members for one JSON page of curated accounts. Send saved rows to a CRM, warehouse, audience tool, or agent. Use list_member_extractor for a saved job. That job supports CSV, JSON, or XLSX file export. Store list_id, member_id, username, and display_name. Keep profile counts, verification, has_next_page, and next_cursor. Do not edit the cursor. Pass it back only when has_next_page is true. Direct calls accept a pageSize from 20 through 200. Each returned profile costs 1 credit. Xquik returns 402 insufficient_credits when credits cover zero results.

Member roster

Page accounts the list owner curated as members. Use the row shape above for CRM, warehouse, and audience imports.

Next page

Store has_next_page and next_cursor. Only request another page when has_next_page is true.

Page size

Set pageSize from 20 to 200. Treat the returned users.length as the row count for the page.

Saved export

Use list_member_extractor when the workflow needs a saved job with CSV/JSON/XLSX output.

Export a curated list roster

Use List members for profiles selected by one List owner. Keep the List ID on every row. Also keep the collection time and snapshot status. Useful list-member columns include:
  • User ID, username, and profile name.
  • Biography, location, and verification state.
  • Follower and following counts.
  • List ID and collection timestamp.
Compare snapshots by user ID. Profile owners can rename their usernames. List membership reflects curation, not audience interest. Use List followers for profiles that follow the List. Use account followers for one profile’s audience. For CRM imports, deduplicate by List ID and user ID. This preserves the same profile across several Lists.

Track list curation changes

Create complete snapshots at consistent intervals. Mark added user IDs as newly observed members. Mark missing IDs only after a complete later snapshot. Keep the list name and owner in your snapshot metadata. The endpoint path uses the list ID, while reviewers often recognize the readable name. Use snapshot differences to review curation decisions. Do not call them follower growth. The List owner controls membership. Create one change row for each added or removed user ID. Include the earlier and later snapshot times. Keep the current username only as a display label. Send uncertain comparisons to review. Never publish incomplete comparisons.

Path parameters

string
required
List ID (numeric string).

Query parameters

string
Pagination cursor from a previous response. Omit for the first page.
number
Results per page. Range: 20-200. Default: 20.

Which list endpoint?

List members

Use GET /x/lists/{id}/members for accounts the list owner added to the list.

List followers

Use GET /x/lists/{id}/followers for accounts that follow the list.

List tweets

Use GET /x/lists/{id}/tweets for tweets from accounts in the list.

Bulk list jobs

Use Create extraction with list_member_extractor, list_follower_explorer, or list_post_extractor when the workflow needs a saved export.

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 list members. User object fields.
string
User ID.
string
X username.
string
Display name.
string
Contains the profile bio.
number
Shows how many accounts follow this profile.
number
Shows how many accounts this profile follows.
boolean
Shows if X marks this profile as verified.
string
Links to the profile image.
string
Shows the location written on the profile.
string
Shows when the account began, in ISO 8601 format.
number
Shows the post count if X returns it.
string
Links to the cover image if X returns it.
number
Shows the media post count if X returns it.
string
Website URL from profile. Omitted if empty.
number
Shows how many posts this account liked if X returns it.
boolean
Shows custom timelines if X returns this field.
boolean
Shows X translator status if X returns it.
string[]
Lists country codes where X withholds this account. Omitted if empty.
boolean
Shows if X marks the account as sensitive. Omitted if X does not send it.
string[]
Lists pinned Tweet IDs. Omitted if none.
boolean
Shows if X marks this account as automated. Omitted if X does not send it.
string
Names the operator. Omitted when the account is not automated.
boolean
Shows if X could not load the account. Omitted when X loads it.
string
Explains why X could not load the account. Omitted when X loads it.
string
Shows Business or Government status. Omitted for blue checks or unverified profiles.
object
Adds the structured bio and its tags. Omitted if X does not send it.
boolean
Shows if X Premium verifies the account. Omitted if X does not send it.
boolean
Shows the normalized verified state. Omitted if X does not send it.
string
Links to the profile banner. Omitted if X does not send it.
boolean
Shows if the account protects its posts. Omitted if X does not send it.
string
Shows a community role only in community results.
boolean
Shows if another page exists.
string
Gives the next cursor. Pass it as the cursor query value.

400 Invalid list ID

The list ID path parameter is empty.

401 Unauthenticated

Anonymous requests get WWW-Authenticate: Bearer and a guest wallet checkout action. This is not a Payment challenge.
Missing or invalid API key.

402 Payment required

Account keys get account options; guest keys get guest top-up only. No checkout starts automatically. Confirm any payment action.

404 List not found

The list could not be resolved. Check the list ID.

502 X API unavailable

The read service returned an error. Retry after a short delay.

429 Rate limit exceeded

You exceeded your tier’s rate limit. Wait for the Retry-After header.

424 Dependency failed

The v1 response can return 424 when the read service fails.