Skip to main content
POST
Twitter scraper API & bulk extraction jobs
1 credit per result extracted · All plans from $0.00012/credit

Query parameters

boolean
Return a cost estimate without creating a job. Defaults to false.

Headers

string
required
Your API key. Session cookie authentication is also supported.
string
required
Must be application/json.

Body

string
required
Extraction tool to run or estimate. See the endpoint’s tool list.

Single targets

string
Tweet ID for a tweet-centered extraction.
string
Username for an account-centered extraction. You may include @.
string
Community ID for a community extraction.
string
List ID for a list extraction.
string
Space ID for space_explorer.
string
Query for tweet_search_extractor or community_search.

Collection targets

string[]
Process 1-10,000 Tweet IDs in one collection job.
string[]
Process 1-100 unique usernames in one collection job.
string[]
Process 1-100 unique community IDs in one collection job.
string[]
Process 1-100 unique List IDs in one collection job.
string[]
Process 1-100 unique search queries in one collection job.
array
Process up to 10,000 mixed targets with automatic routing.
Each target accepts a supported string or { "kind": "...", "value": "..." }.
array
Process up to 100 profile relations in one collection job.
Each relation target uses { "relation": "...", "value": "..." }.

Collection controls

string
Search ranking: Latest, Top, or Both. Defaults to Latest.
integer
Stop after this many results. Omit it to collect all available results.
integer
Maximum results collected for each target. Minimum: 1.
integer
Reply pages collected per target. Range: 1-1,000.
string
Resume one reply target from this cursor.
boolean
Merge duplicates across targets. Defaults to true.
string
Duplicate handling: none, first, or merge.
boolean
Use dedupeMode=merge. Defaults to false.
boolean
Add matched search terms to collection metadata. Defaults to false.
boolean
Add source target metadata to each result. Defaults to true.

Reply collection

string
Strategy: auto, complete, direct, search, or thread.
string
Reply scope: all, direct, or nested. Defaults to all.
integer
Maximum nested reply depth. Minimum: 1.
string
Order: relevance, latest, oldest, or likes.
boolean
Exclude replies from the source author. Defaults to false.
boolean
Include the source post. Defaults to false.
boolean
Return only replies with media. Defaults to false.
string | integer
Reply start time as ISO 8601 or Unix seconds.
string | integer
Reply end time as ISO 8601 or Unix seconds.

Tweet result filters

integer
Minimum Tweet view count.
integer
Minimum Tweet bookmark count.
integer
Maximum Tweet like count.
integer
Maximum Tweet repost count.
integer
Maximum Tweet reply count.
integer
Maximum Tweet quote count.
boolean
Return only Blue-verified Tweet authors. Defaults to false.
string
Match the Tweet card name.
string
Match the source application.
string
Exclude a source application.
string
Match latitude, longitude, and radius.
string
Return Tweets newer than this Tweet ID.
string
Return Tweets older than this Tweet ID.
string
Match a place name.
string
Set the radius for near.
string
Match Tweets inside a recent time window.
boolean
Return only native reposts. Defaults to false.
boolean
Enable safe search. Defaults to false.
boolean
Return only news results. Defaults to false.

Profile result filters

integer
Minimum profile follower count.
integer
Maximum profile follower count.
integer
Minimum profile following count.
integer
Maximum profile following count.
integer
Minimum profile post count.
integer
Maximum profile post count.
integer
Minimum profile age in days.
string
Match the exact profile verification type.
boolean
Require a profile website. Defaults to false.
boolean
Require a profile location. Defaults to false.
string
Require bio terms separated by commas or lines.
string
Require matching profile location text.
string
Require matching username text.

Tweet search filters

These fields apply to tweet_search_extractor.
string
Match an author username without @.
string
Match replies sent to a username.
string
Match Tweets mentioning a username.
string
Match a language code, such as en.
string
Include Tweets on or after YYYY-MM-DD.
string
Include Tweets before YYYY-MM-DD.
string
Media: images, videos, gifs, media, links, or none.
integer
Minimum like count.
integer
Minimum repost count.
integer
Minimum reply count.
integer
Minimum quote count.
boolean
Return only verified authors.
string
Reply mode: include, exclude, or only.
string
Repost mode: include, exclude, or only.
string
Quote mode: include, exclude, or only.
string
Match one exact phrase.
string
Exclude words or quoted phrases.
string
Match any listed word or quoted phrase.
string
Match hashtags separated by spaces, commas, or lines.
string
Match cashtags separated by spaces, commas, or lines.
string
Match a URL substring or domain.
string
Match a conversation ID.
string
Return only replies to this Tweet ID.
string
Return only quotes of this Tweet ID.
string
Return only reposts of this Tweet ID.
string
Search within a List ID.
string
Search within a place ID.
string
Search within a country code.
string
Set a geographic center and radius.
string
Set a geographic bounding box.
string
Append raw advanced search syntax.

Tool types

Each extraction job needs one target field based on toolType. resultsLimit works with every type when you want to cap returned rows.

Tweet target

Use targetTweetId for tweet-centered jobs:
  • article_extractor extracts article content from a tweet.
  • favoriters extracts visible users who liked a post. Liker identities can be unavailable even when the post reports likes.
  • quote_extractor extracts users who quote-tweeted a tweet.
  • reply_extractor extracts users who replied to a tweet.
  • repost_extractor extracts users who retweeted a tweet.
  • thread_extractor extracts all tweets in a thread.

Username target

Use targetUsername for account-centered jobs:
  • follower_explorer extracts followers of an account.
  • following_explorer extracts accounts followed by a user.
  • mention_extractor extracts tweets mentioning an account.
  • post_extractor extracts posts from an account.
  • user_likes extracts tweets liked by a user.
  • user_media extracts media posts from a user.
  • verified_follower_explorer extracts verified followers of an account.

Community target

Use targetCommunityId for community jobs:
  • community_extractor extracts members of a community.
  • community_moderator_explorer extracts moderators of a community.
  • community_post_extractor extracts posts from a community.
  • community_search searches matching posts within that community and also requires searchQuery.

Search query

Use searchQuery for keyword jobs:
  • people_search searches for users by keyword.
  • tweet_search_extractor searches and extracts tweets by keyword or hashtag.

List target

Use targetListId for X List jobs:
  • list_follower_explorer extracts followers of a list.
  • list_member_extractor extracts members of a list.
  • list_post_extractor extracts posts from a list.

Space target

Use targetSpaceId for Space jobs:
  • space_explorer extracts participants of a Space.
Store targetSpaceId beside the returned extraction id. Poll Get Extraction or use Export Extraction after completion to read participant user rows.

Response

202 Accepted

string
Unique extraction job ID (UUID).
string
Tool type used for this extraction.
string
Job status. running when first created.
Extraction runs asynchronously. Poll Get Extraction until status is completed or failed.

400 Invalid input

Request body is missing or malformed. Ensure all required fields are present.

400 Invalid tool type

The toolType value is not one of the 23 supported tools. See tool types.

401 Unauthenticated

Missing or invalid API key.

402 Insufficient credits

The available balance cannot cover the extraction. Possible error values include no_subscription, subscription_inactive, no_credits, and insufficient_credits.

404 Not found

The target tweet does not exist, was deleted, or the ID is invalid.
The target user does not exist or is suspended.

424 X API dependency failed

Send xquik-api-contract: 2026-04-29 to receive this status for dependency failures that return 502 by default.

429 Rate limited

Wait for the Retry-After value before retrying the extraction request.

502 X API unavailable

The read service is temporarily unavailable. Retry with exponential backoff.

Run receipt handoff

Treat the 202 Accepted body as a run receipt, not as extracted data. Store the job ID immediately, then poll or list jobs until the job reaches completed or failed.

Receipt fields

Store id, toolType, and status. Do not wait for results, totalResults, createdAt, hasMore, or nextCursor in this response.

Poll results

Use Get Extraction with the returned id to read job.status, paginated results, hasMore, and nextCursor.

Find later

Use List Extractions with status and toolType filters when a worker needs to resume from job inventory.

Export after completion

Use Export Extraction after the detail response reports job.status as completed.
Next steps. Get Extraction to retrieve results with pagination, Export Extraction to download as CSV/XLSX/Markdown, or Estimate Extraction to check costs before running.