End-to-end guide for running extractions. Estimate costs, start jobs, paginate results, and export files
Run bulk data extractions from X in 4 steps: check your budget, estimate costs, run the job, and retrieve results. This guide covers the full workflow for both the REST API and MCP server.
Whether the extraction can proceed with the current credit balance
source
Data point used for the estimate (e.g. replyCount, followers)
estimatedResults
Approximate number of results
creditsRequired
Credits this extraction will consume
creditsAvailable
Credits currently available in your balance
resolvedXUserId
Resolved X user ID when targetUsername was provided. Omitted for non-user-based tools
If allowed is false, the extraction will return 402. Top up credits or run a smaller job.
Add resultsLimit to cap the number of results. Both the estimate and extraction endpoints accept this parameter. The estimate will use resultsLimit as the projected count, and the extraction will stop early once the limit is reached.
The endpoint returns 202 Accepted with the job in running status. Poll GET /extractions/{id} until status is completed or failed. For large extractions (10,000+ results), this may take up to a few minutes.
Completed extractions and draws automatically receive AI-generated summaries in 3 languages (EN, TR, ES). These appear as the aiTitles field on job responses:
{ "aiTitles": { "en": "150 replies to @elonmusk's tweet about Starship", "tr": "Starship hakkinda @elonmusk'un tweetine 150 yanit", "es": "150 respuestas al tweet de @elonmusk sobre Starship" }}
AI titles are generated asynchronously after job completion and may not appear immediately.
Fetch results in pages of up to 1,000 records. Use cursor-based pagination to iterate through all results.
# First pagecurl -s "https://xquik.com/api/v1/extractions/77777?limit=1000" \ -H "x-api-key: xq_YOUR_KEY_HERE" | jq# Next page (use nextCursor from previous response)curl -s "https://xquik.com/api/v1/extractions/77777?limit=1000&after=990100" \ -H "x-api-key: xq_YOUR_KEY_HERE" | jq
Each result contains user profile data and (for tweet-based tools) tweet data:
Show Example response
{ "id": "990001", "xUserId": "44196397", "xUsername": "elonmusk", "xDisplayName": "Elon Musk", "xFollowersCount": 210500000, "xVerified": true, "xProfileImageUrl": "https://pbs.twimg.com/profile_images/el0n.jpg", "tweetId": "1893710452812718080", "tweetText": "This is a great thread, thanks for sharing.", "tweetCreatedAt": "2026-02-24T10:05:00.000Z", "createdAt": "2026-02-24T10:06:12.000Z"}
Only id, xUserId, and createdAt are guaranteed on every result. All other fields are omitted when unavailable (never null). Check for field presence before accessing.
Download all results as CSV, XLSX, or Markdown. Exports include enrichment data (bios, locations, engagement metrics) not available in the API response.
tweet_search_extractor supports 16 optional filter parameters that are converted to X search operators internally. These filters only apply to tweet_search_extractor and are ignored by all other tool types.
Parameter
Type
Description
fromUser
string
Filter by author username
toUser
string
Filter tweets directed to a user
mentioning
string
Filter tweets mentioning a user
language
string
Language code (e.g. en, tr, es)
sinceDate
string
Start date YYYY-MM-DD
untilDate
string
End date YYYY-MM-DD
mediaType
string
images, videos, gifs, or media
minFaves
number
Minimum likes
minRetweets
number
Minimum retweets
minReplies
number
Minimum replies
verifiedOnly
boolean
Verified authors only
replies
string
include, exclude, or only
retweets
string
include, exclude, or only
exactPhrase
string
Exact phrase match
excludeWords
string
Comma-separated words to exclude
advancedQuery
string
Raw X search operator syntax
Example: Search for popular English tweets with images from the last week
Combine filters with resultsLimit to run targeted, cost-efficient searches. For example, find the top 50 viral tweets about a topic from verified accounts in the last 24 hours.