The Xquik MCP server exposes 2 tools: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.
explore (search the API spec) and xquik (execute API calls). Connect to https://xquik.com/mcp with x-api-key or OAuth 2.1 Bearer auth. API keys fit terminal clients; OAuth fits browser MCP clients.
explore
Search the API endpoint catalog. Read-only, no network calls, and no credits required. The call still requires MCP authentication through an API key or OAuth Bearer token. Use this to discover available endpoints, check parameters, and find the right API path before executing calls. Input:Sandbox code
Pass
code as an async arrow function. It is required and can be up to
10,000 characters.Spec access
The function runs against
spec.endpoints so agents can filter endpoint
paths, parameters, categories, costs, and response shapes before making a
live call.Find all free endpoints
Find endpoints by category
Search by keyword
xquik
Execute API calls against your Xquik account. The agent writes code usingxquik.request() with auth injected automatically.
Input:
Sandbox code
Pass
code as an async arrow function. It is required and can be up to
10,000 characters.Authenticated calls
The function can call
xquik.request(path, { method, body, query }) with
auth injected automatically.xquik.request() uses the normalized v1 contract automatically. List and search responses use has_more and next_cursor, even when the REST API page shows the default has_next_page field. Pass next_cursor back as the cursor query parameter for most X data pages. Use after instead for /api/v1/draws, /api/v1/extractions, /api/v1/events, and /api/v1/radar.
Write and media responses also use the MCP-normalized snake_case contract. Read tweet_id, write_action_id, charged_credits, media_id, media_url, and message_id from xquik.request() results. REST and generated SDK pages may show camelCase fields such as tweetId, writeActionId, chargedCredits, mediaId, and messageId; keep MCP agents on snake_case when reading tool results.
Workflow Examples:
Compose an algorithm-optimized tweet (3-step, free)
Save a writing style from screenshots (free)
Browse trending news from radar (free)
Radar + Style + Compose combined (free)
Analyze a user’s writing style
Search tweets with cursor pagination (subscription required)
List follower pages (subscription required)
Scrape tweet replies to CSV, JSON, or XLSX (subscription required)
Post a tweet or reply with public media URLs (subscription required)
Upload media for a DM (subscription required)
message_id with the uploaded media_id. Keep full DM bodies out of
shared MCP outputs; return IDs, status, media references, and source filenames
instead. Leave reply_to_message_id unset because the DM send endpoint rejects
reply threading.
Download media and get gallery link (subscription required)
Bulk download: search + download combined
Monitor a user + create webhook (monitor creation requires subscription, webhook is free)
Poll stored monitor events (free)
Run an extraction with a resumable handoff (subscription required)
Agent handoff patterns
MCP returns JSON. Use extraction export endpoints when you need Xquik to generate CSV, JSON, XLSX, Markdown, or PDF files. For agent queues, CRMs, and warehouses, return a small object with the original job, the route used, normalized rows or IDs to store, and the next cursor or write action to poll. Avoid returning rawtweets or users pages when the next agent or worker
needs durable handoff rows.
Search tweets to JSON
Call
GET /api/v1/x/tweets/search. Store tweets[].id, tweets[].text, tweets[].author, tweets[].created, has_more, next_cursor, and the original q. Cost: 1 credit per tweet returned.Scrape tweet replies to files
Call
POST /api/v1/extractions/estimate, then POST /api/v1/extractions with reply_extractor and targetTweetId. Poll GET /api/v1/extractions/{id}, export CSV/JSON/XLSX with GET /api/v1/extractions/{id}/export, and store reply rows plus has_more and next_cursor. Cost: 1 credit per reply extracted or returned.Export followers to CRM
Call
GET /api/v1/x/users/{id}/followers or POST /api/v1/extractions with follower_explorer. Store users[].id, users[].username, users[].name, users[].followers, has_more, and next_cursor. Cost: 1 credit per follower returned or extracted.Post media tweets or replies
Call
POST /api/v1/x/tweets with media: ["https://..."]. Store tweet_id or write_action_id, reply_to_tweet_id, account, charged_credits, and the original media URLs. Cost: 10 credits text-only, plus 2 credits per started MB across attached media.Send DMs with media
Call
POST /api/v1/x/media, then POST /api/v1/x/dm/{userId} with one media_ids value. Store media_id, media_url, message_id, user_id, account, and source URL or filename. Keep full DM bodies out of shared outputs and leave reply_to_message_id unset. Cost: 10 credits per media upload plus 10 credits per DM send.Track tweet or reply writes
Call
POST /api/v1/x/tweets, then GET /api/v1/x/write-actions/{id} when pending. Store tweet_id, reply_to_tweet_id, write_action_id, status, charged, charged_credits, and media. Cost: 10 credits text-only, plus 2 credits per started MB across attached media.Monitor tweets to webhooks
Call
POST /api/v1/monitors or POST /api/v1/monitors/keywords, then POST /api/v1/webhooks. Store monitor.id, event_types, next_billing_at, webhook.id, webhook URL, and the one-time webhook.secret; run POST /api/v1/webhooks/{id}/test before routing production events. Verify X-Xquik-Signature, de-dupe production payloads with deliveryId and streamEventId, and inspect GET /api/v1/webhooks/{id}/deliveries for retry status rows. Cost: 21 credits per active monitor-hour; webhook delivery is included.Replay monitor events
Call
GET /api/v1/events when a receiver missed webhook delivery or a downstream queue needs replay. Store event_id, type, monitor_id, monitor_type, occurred_at, has_more, and next_cursor; use after for the next page. Do not use cursor on event pages.POST /api/v1/x/tweets rejects media_ids with 400 unsupported_field; pass up to 4 public image URLs or exactly 1 public MP4 video URL up to 100 MB in media instead. Reserve uploaded media_id values for direct messages.
Subscribe (free, returns checkout or billing portal URL)
API endpoints
The server covers 120 operations across 10 categories:Account, composition, and credits
24 operations across
account, composition, and credits: account info, API keys, subscribe, X identity, compose, styles, drafts, radar, balance checks, top-ups, checkout status, and quick top-up.Extractions and media
10 operations across
extraction and media: giveaway draws, extraction jobs, estimates, exports, and media download.Monitoring and webhooks
18 operations in
monitoring: account monitors, keyword monitors, stored events, webhooks, deliveries, and test delivery.Support
5 operations in
support: create, list, read, reply to, and close support tickets.X data reads
38 operations in
twitter: tweet search, tweet and article lookup, user lookup, follow checks, trends, bookmarks, notifications, timeline, DM history, likes, media, followers, replies, communities, and lists.X accounts and writes
25 operations across
x-accounts and x-write: connect accounts, retry connection issues, post tweets, like, retweet, follow, remove followers, send DMs, upload media, update profiles, and manage community membership.explore to browse the full catalog with parameters and response shapes.
Cost summary
Always free discovery
explore is free. Use it to find endpoints, parameters, and response shapes before making API calls.Free account and stored records
Compose, cached styles, drafts, radar, subscribe, account, API keys, support, credits, X account management, webhooks, stored monitors, stored events, and existing extraction or draw reads are free.
Metered reads and jobs
Tweet search, user lookup, follow checks, media download, trends, extraction creation, and draw creation are metered.
Monitor billing
Active instant monitors cost 21 credits per active monitor-hour. Creating monitors requires a subscription and available credits.
Write actions
Tweet, reply, like, retweet, follow, DM, profile, community, and media upload writes are metered.
Subscription-only refreshes
Fresh style analysis after the 7-day cache window requires an active subscription.
Error handling
- 402 /
no_subscription/subscription_inactive: The sandbox attemptsPOST /api/v1/subscribe; when it returns a URL, the error includes it. Present that URL to the user. - 402 /
no_credits/insufficient_credits: Free data already fetched is preserved. CallPOST /api/v1/credits/topuporPOST /api/v1/credits/quick-topup, then retry the failed metered call. - 429: Rate limited. Retry with exponential backoff.
- API errors: Include status code and message in the response.