Skip to main content
POST
/
extractions
/
estimate
Estimate extraction
curl --request POST \
  --url https://xquik.com/api/v1/extractions/estimate \
  --header 'Content-Type: <content-type>' \
  --header 'x-api-key: <api-key>' \
  --data '
{
  "toolType": "<string>",
  "targetTweetId": "<string>",
  "targetUsername": "<string>",
  "targetCommunityId": "<string>",
  "searchQuery": "<string>",
  "targetListId": "<string>",
  "targetSpaceId": "<string>",
  "resultsLimit": 123
}
'

Documentation Index

Fetch the complete documentation index at: https://docs.xquik.com/llms.txt

Use this file to discover all available pages before exploring further.

Free - does not consume credits
curl -X POST https://xquik.com/api/v1/extractions/estimate \
  -H "x-api-key: xq_YOUR_KEY_HERE" \
  -H "Content-Type: application/json" \
  -d '{
    "toolType": "reply_extractor",
    "targetTweetId": "1893704267862470862",
    "resultsLimit": 500
  }' | jq

Headers

x-api-key
string
required
Your API key. Session cookie authentication is also supported. Generate a key from the dashboard.
Content-Type
string
required
Must be application/json.

Body

The request body accepts the same fields as Create Extraction, including all 16 tweet search filter parameters. Only toolType and the corresponding target field are required for the estimate.
toolType
string
required
Extraction tool to estimate. One of: article_extractor, community_extractor, community_moderator_explorer, community_post_extractor, community_search, favoriters, follower_explorer, following_explorer, list_follower_explorer, list_member_extractor, list_post_extractor, mention_extractor, people_search, post_extractor, quote_extractor, reply_extractor, repost_extractor, space_explorer, thread_extractor, tweet_search_extractor, user_likes, user_media, verified_follower_explorer.
targetTweetId
string
Tweet ID to estimate. Required for reply_extractor, repost_extractor, quote_extractor, thread_extractor, article_extractor.
targetUsername
string
X username to estimate. Required for follower_explorer, following_explorer, verified_follower_explorer, mention_extractor, post_extractor, user_likes, and user_media.
targetCommunityId
string
Community ID to estimate. Required for community_extractor, community_moderator_explorer, community_post_extractor.
searchQuery
string
Search query to estimate. Required for people_search, community_search, tweet_search_extractor.
targetListId
string
X List ID to estimate. Required for list_member_extractor, list_post_extractor, list_follower_explorer.
targetSpaceId
string
X Space ID to estimate. Required for space_explorer.
resultsLimit
integer
Maximum number of results to extract. When set, the estimate caps estimatedResults to this value and adjusts projected usage accordingly. Useful for previewing the cost of a partial extraction.

Response

allowed
boolean
Whether the extraction can proceed given the current credit balance.
source
string
Data source used for the estimate. One of: followers, following, paginationCap, posts, quoteCount, replyCount, resultsLimit, retweetCount, unknown.
estimatedResults
number
Estimated number of results the extraction will return.
creditsRequired
string
Credits this extraction will consume (stringified integer).
creditsAvailable
string
Credits currently available in your balance (stringified integer).
resolvedXUserId
string
Resolved X user ID when targetUsername was provided. Omitted for non-user-based tools.
{
  "allowed": true,
  "creditsRequired": "500",
  "creditsAvailable": "50000",
  "estimatedResults": 250,
  "source": "replyCount",
  "resolvedXUserId": "123456"
}
When allowed is false, credits required exceed the available balance:
{
  "allowed": false,
  "creditsRequired": "250000",
  "creditsAvailable": "18000",
  "estimatedResults": 250000,
  "source": "followers"
}

Decision handoff

Treat the 200 OK response as a planning checkpoint, not a running extraction. Store the estimate with the request you plan to run:
{
  "checkpoint_type": "extraction_estimate",
  "toolType": "reply_extractor",
  "targetTweetId": "1893704267862470862",
  "resultsLimit": 500,
  "estimatedResults": 500,
  "creditsRequired": "500",
  "creditsAvailable": "50000",
  "allowed": true,
  "source": "replyCount",
  "next_action": "create_extraction",
  "create_path": "/api/v1/extractions",
  "fallback_action": "lower_results_limit_or_add_credits"
}

Allowed run

When allowed is true, send the same toolType, target fields, filters, and resultsLimit to Create Extraction. Store the returned job ID from that 202 Accepted receipt.

Blocked run

When allowed is false, lower resultsLimit, narrow the target or filters, or add credits before calling Create Extraction.

Source signal

Store source so operators know whether the estimate came from replyCount, followers, resultsLimit, paginationCap, or another supported signal.

Audit fields

Store estimatedResults, creditsRequired, creditsAvailable, allowed, and source with the planned extraction request.
Always call this endpoint before running an extraction to avoid hitting credit limits. If allowed is false, the corresponding Create Extraction request will return a 402 error. Check your current usage on the dashboard.
Next steps: Create Extraction to start an extraction, or Extraction Workflow Guide for the full flow.
Last modified on May 20, 2026