Monitor & poll
Batch processing, dashboards, and low-frequency checks. Interval-based, low setup effort.
Signed monitor webhooks
Alerts, queues, support triage, and warehouse sync. Medium setup effort.
AI agent (MCP)
Tweet search, user lookups, follower checks, and research summaries. Low setup effort.
Publish tweet or reply
Post tweets, post tweet replies, and hand off public media URLs. Low setup effort.
Tweet composition
Draft generation and reply monitoring. Low setup effort.
Choose a workflow
Track competitor or brand posts
Use monitor polling or webhooks. Both return tweets, replies, quotes, and retweets.
Send monitor alerts
Use signed webhooks. They deliver event payloads to queues or support tools.
Build an AI research assistant
Use the MCP path. It returns tweet search results, user profiles, and monitor events.
Export followers or audiences
Use extraction workflows. They return CSV, JSON, XLSX, or paginated JSON.
Sync followers to CRM
Use the follower export CRM workflow. It returns CSV, XLSX, JSON, and a CRM field map.
Post a tweet or reply
Use the create tweet workflow. It returns published
tweetId, success, charged, and chargedCredits.Score and refine a draft tweet
Use tweet composition. It returns algorithm guidance, refined text, and score.
Audit giveaway activity
Use draws. They return eligible participants, winners, and archived tweet metrics.
Use-case endpoint finder
Start here when a user asks which Xquik endpoint to call. Pick the matching job, then open the API page for params, responses, and examples.- One tweet by ID.
GET /x/tweets/{id}. Hand off a tweet row with media and metrics. - Many known tweet IDs.
GET /x/tweets. Hand off the batch response before single-tweet loops. - Keyword or advanced search.
GET /x/tweets/search. Hand off cursor pages, ortweet_search_extractorexports. - Profile timeline.
GET /x/users/{id}/tweets. Hand offcursor,includeReplies, andincludeParentTweet. - Article body.
GET /x/articles/{tweetId}. Hand off body blocks, cover image, author, and not-found handling. - Replies, quotes, or threads.
GET /x/tweets/{id}/replies. Hand off conversation rows from replies, quotes, or threads. - Follower or following page.
GET /x/users/{id}/followersorGET /x/users/{id}/following. Hand offusers,has_next_page, andnext_cursor. - Follower or following export.
POST /extractions/estimate. Hand off thefollower_explorerorfollowing_explorerestimate, job, CSV, JSON, or XLSX. - Campaign verification.
GET /x/followers/check, retweeters, replies, quotes, or draws. Hand off proof exports. - Post tweet or reply.
POST /x/tweets. Hand offtweetId, write status, credits, and public media URLs. - Direct messages.
GET /x/dm/{userId}/history. Hand off history, cursor state, outboundmessageId, and success. - 1-second monitoring.
POST /monitorsorPOST /monitors/keywords. Hand off signed payloads and delivery IDs. - AI agent handoff.
xquik.request(...). Hand off normalized Xquik API results for MCP clients. - Saved file exports.
GET /extractions/{id}/export. Hand off CSV, JSON, XLSX, Markdown, PDF, or TXT.
Integration handoff matrix
Use this matrix before choosing code, webhooks, MCP, or exports.Competitor or brand monitoring
Competitor or brand monitoring
Setup needs an API key, an account username or keyword query, and event types.
First, call
POST /monitors for accounts or POST /monitors/keywords for search queries, then GET /events.
It returns tweet, reply, quote, and retweet events.
Hand off a polling cursor or signed webhook payload.
Active monitors bill 30 credits per hour while enabled.Monitor alert routing
Monitor alert routing
Setup needs a webhook URL and subscribed event types.
First, call
POST /webhooks, then POST /webhooks/{id}/test.
It returns the delivery status and signed event body.
Hand off to a queue, Slack, CRM, or warehouse endpoint.
Active monitor billing includes webhook management and deliveries.AI research agent
AI research agent
Setup needs an MCP API key or OAuth.
First, call
xquik.request('/api/v1/x/tweets/search').
It returns tweets, profiles, and monitor events.
Hand off the MCP tool result with normalized pagination.
Tweet search, profile lookup, and follower exports use endpoint credits.Audience export handoff
Audience export handoff
Setup needs a target username,
follower_explorer or following_explorer, and optional resultsLimit.
First, call POST /extractions/estimate, then POST /extractions.
It returns job status, rows, and export links.
Hand off CSV, JSON, XLSX, or paginated JSON.
Estimate the cost before creating the job.Tweet replies export
Tweet replies export
Setup needs a tweet ID and optional
resultsLimit.
First, call POST /extractions/estimate with reply_extractor.
It returns reply author fields, reply tweet fields, engagement counts, and metadata.
Hand off CSV, JSON, XLSX, JSONL, or moderation queue rows.
Each reply returned or extracted costs 1 credit.Post tweets or replies
Post tweets or replies
Setup needs a connected X account plus text, media URLs, or parent tweet ID.
First, call
POST /x/tweets.
It returns tweetId, success, charged, and chargedCredits.
Hand off the published tweet ID and charged credits for queue, CRM, CMS, or agent state.
A text-only post costs 30 credits. Attached media adds 2 credits per started MB.Tweet draft workflow
Tweet draft workflow
Setup needs a topic, goal, tone, and optional style username.
First, call
POST /compose with step.
It returns algorithm guidance, refined draft, and score checklist.
Hand off draft text or an X compose URL.
Compose, refine, and score are free.High-value workflows first
Prioritize rows for analysts, IDs for systems of record, events for queues, and published action IDs for audit trails.1. Scrape tweets to CSV, JSON, or XLSX
Exports matching tweets as rows for research, leads, support, and AI retrieval.
First, call
POST /extractions/estimate with tweet_search_extractor.
Hand off an export file, paginated JSON, or a direct GET /x/tweets/search page.
Each tweet returned or extracted costs 1 credit.2. Scrape tweet replies to CSV, JSON, or XLSX
Exports a post’s replies as rows for moderation, support, giveaways, research, or AI review.
First, call
POST /extractions/estimate with reply_extractor and targetTweetId.
Hand off an export file, paginated JSON, JSONL rows, or a direct GET /x/tweets/{id}/replies page.
Each reply returned or extracted costs 1 credit.3. Export followers or following to CRM
Builds audience and interest tables with stable X user IDs for import and upsert.
First, call
POST /extractions/estimate with follower_explorer or following_explorer.
Hand off CSV, JSON, XLSX, or a CRM field map keyed by x_user_id.
Each user returned costs 1 credit.4. Monitor tweets to signed webhooks
Delivers new posts, replies, quotes, and retweets to queues without polling.
First, call
POST /monitors for accounts or POST /monitors/keywords for search queries, then POST /webhooks.
Hand off a signed payload with deliveryId, streamEventId, eventType, and tweet data.
Each active monitor-hour costs 30 credits. The rate includes webhook delivery.5. Post media tweets or replies
Publishes media tweets or replies from public image URLs or 1 public MP4 URL up to 100 MB.
First, call
POST /x/tweets with media.
Hand off tweetId, success, chargedCredits, original media URLs, and optional reply_to_tweet_id.
A text-only post costs 30 credits. Attached media adds 2 credits per started MB.6. Send direct messages with returned IDs
Lets support, sales, and agents store the outbound message ID.
First, call
GET /x/users/{id} if needed. Use GET /x/dm/{userId}/history?account=..., then POST /x/dm/{userId}.
Hand off account, messages, has_next_page, next_cursor, messageId, and success.
Each user lookup or history message costs 1 credit. Each DM send costs 10 credits.1. Scrape tweets to CSV, JSON, or XLSX
Use this to scrape tweets, search tweets, export hashtag results, or hand matching posts to analysts. Estimate first, create the job, poll it, then export the format your system expects. For reply-specific exports, use the next workflow.GET /extractions/{id} returns job, results, hasMore, and nextCursor. GET /extractions/{id}/export?format=csv downloads the rows. For live pagination without a stored job, call GET /x/tweets/search with q. Leave limit unset for a simple cursor loop. For bounded pulls, keep the same q, filters, and limit while sending next_cursor as cursor. It returns tweets, has_next_page, and next_cursor.
2. Scrape tweet replies to CSV, JSON, or XLSX
Use this when a moderation, support, giveaway, research, or AI review system needs every reply under a post as rows. Estimate withreply_extractor and targetTweetId, create the job, poll it, then export format=csv, format=json, or format=xlsx.
GET /extractions/{id} returns reply rows, hasMore, and nextCursor. Pass nextCursor as cursor for more stored results. For live pagination without a stored job, call GET /x/tweets/{id}/replies, pass next_cursor back as cursor, and store tweets, has_next_page, and next_cursor.
3. Export followers or following to CRM
Use this for follower export, following export, audience ownership, CRM import, or warehouse sync. KeepresultsLimit on estimate and create calls for a predictable credit cap.
following_explorer with the same targetUsername shape when the job needs accounts the user follows. After status becomes completed, export format=csv, format=xlsx, or format=json. Map stable User ID values to x_user_id. Do not key imports by display name.
4. Monitor tweets to signed webhooks
Use this when a workflow needs account alerts, keyword alerts, support routing, warehouse ingest, or queue fanout within seconds. Create an account monitor or keyword monitor, register the webhook URL, test delivery, then process signed events asynchronously.POST /monitors/keywords with query and eventTypes instead of username. Account and keyword monitors both check every 1 second while active. Both can deliver events to the same signed webhooks.
Each POST has 1 event. Multiple matches produce multiple POSTs.
Payloads include durable IDs. Store deliveryId for delivery-level idempotency. Store streamEventId when you must process the same monitor event once across retries or endpoints. Store the one-time secret returned by POST /webhooks. Verify X-Xquik-Signature against the raw body before accepting the event. Return 2xx before slow CRM, Slack, warehouse, or queue work starts.
Receiver storage handoff
For Zapier, Make, and Pipedream receivers, map production payload IDs before enqueueing slow work.2xx for duplicate deliveryId or streamEventId after signature verification. Store raw request bytes only long enough to verify X-Xquik-Signature. Do not put endpoint signing values, raw body, raw signature, or full headers in shared workflow rows.
5. Post media tweets or replies
Use this when an agent or app has public image URLs or exactly 1 public MP4 video URL up to 100 MB and needs to post a tweet or reply. Pass those URLs directly in themedia array on POST /x/tweets. Do not call POST /x/media first for tweet posts when the media is already public. POST /x/tweets rejects media_ids with 400 unsupported_field.
id, status, billing, result, request.hash, and statusUrl. Poll while terminal is false. Retry only when safeToRetry is true, using a new Idempotency-Key. Store media URLs with the action record. Text-only tweet or reply writes cost 30 credits. Attached media adds 2 credits per started MB across all files. Use POST /x/media only when you need a one-item media_ids array for POST /x/dm/{userId}.
6. Send direct messages with returned IDs
Use this when a support, sales, or agent workflow needs direct messages with audit trails. Look up the recipient user ID. Pass the same connected sender asaccount for history reads and DM writes. Then store returned message IDs.
account. That connected account must participate in the conversation. Missing account returns 400 account_required. A non-participant account returns 403 dm_not_permitted.
GET /x/dm/{userId}/history returns messages, has_next_page, and next_cursor. Pass next_cursor back as cursor for older messages. POST /x/dm/{userId} returns messageId and success. Store both on the support ticket, CRM note, or agent state.
Focused workflow pages
Choose a path, then open its examples, SDK guidance, and error recovery.Tweet search exports
Build CSV, JSON, or XLSX exports from
tweet_search_extractor, or use direct GET /x/tweets/search pagination.Tweet replies exports
Turn a post conversation into
reply_extractor jobs, direct replies pagination, JSONL rows, or moderation queues.Follower CRM export
Estimate
follower_explorer, export CSV, JSON, or XLSX files, and map stable x_user_id fields.Campaign verification
Check social actions and draw exports.
Monitor webhooks
Test signed deliveries, verify
X-Xquik-Signature, store deliveryId and streamEventId, and return 2xx before slow work.Media tweets and DMs
Use public URLs in tweet
media. Upload only when DMs need one media_ids item.Direct messages
Read DM history with
account, send DMs, and store returned messageId values.MCP agents
Connect agents, call
xquik.request(...), and hand normalized pagination back to memory.Tweet composition
Use
POST /compose for compose, refine, and score loops without usage credits.Public draw results
Completed giveaway draws have a public results page athttps://xquik.com/results/{drawId}. The page needs no authentication. Share the URL so participants can check the winners.
Create a monitor
Start 1-second checks for one account.
Register a webhook
Receive detected events through signed webhooks.
MCP server
Connection details and setup instructions.
Signature verification
Verify webhook payloads with HMAC-SHA256.