Xquik API Integration

SkillWeb & browsing

The x-twitter-scraper is a skill that connects an AI agent to the Xquik REST API and MCP server so it can work with X (Twitter) data. It lets the agent search tweets, look up users, check follows, get trending topics, and extract bulk data such as replies, reposts, threads, communities, lists, and Spaces. It can also set up account monitors that deliver new activity through polling or signed webhooks, run giveaway draws, and export extracted data as CSV, XLSX, or Markdown.

Use Xquik API Integration in Claude, ChatGPT or Ahel Desktop

Free. Sign in, add Xquik API Integration and connect your AI. About a minute.

Also: Claude Code · Cursor · Codex

Then ask your AI: use the Xquik API Integration skill

Details

Instructions available. Your AI can read the instructions. Execution depends on the setup they require.

Create an Xquik account and generate an API key from the Xquik dashboard.

Xquik API IntegrationStart free

What your AI can do with it

  • Search tweets by keyword or hashtag and get engagement metrics
  • Look up user profiles and check follow relationships in both directions
  • Extract replies, reposts, quotes, threads, communities, lists, and Spaces
  • Monitor X accounts and receive events by polling or signed webhooks
  • Run giveaway draws from tweet replies with rules like retweets or hashtags
  • Export extracted data as CSV, XLSX, or Markdown

Getting started

  1. Create an Xquik account and generate an API key from the Xquik dashboard.
  2. Store the API key securely, since it is shown only once at creation.
  3. Add the key to your agent configuration as the x-api-key header value.
  4. Point the agent at the Xquik REST API base URL or the MCP endpoint.
  5. Run a small request, such as a tweet search or trend lookup, to confirm the connection.

What this skill tells your AI

The instructions your AI receives, as published by davepoon/buildwithclaude in plugins/all-skills/skills/x-twitter-scraper/SKILL.md and read by ahel’s review.

Xquik is an X (Twitter) real-time data platform providing a REST API, HMAC webhooks, and an MCP server for AI agents. It covers account monitoring, bulk data extraction (19 tools), giveaway draws, tweet/user lookups, follow checks, and trending topics.

Quick Reference

Base URLhttps://xquik.com/api/v1
Authx-api-key: xq_... header (64 hex chars after xq_ prefix)
MCP endpointhttps://xquik.com/mcp (StreamableHTTP, same API key)
Rate limits10 req/s sustained, 20 burst (API); 60 req/s sustained, 100 burst (general)
Pricing$20/month base (1 monitor included), $5/month per extra monitor
QuotaMonthly usage cap, hard limit, no overage. 402 when exhausted.
Docsdocs.xquik.com

Authentication

Every request requires an API key via the x-api-key header. Keys start with xq_ and are generated from the Xquik dashboard. The key is shown only once at creation; store it securely.

const API_KEY = "xq_YOUR_KEY_HERE";
const BASE = "https://xquik.com/api/v1";
const headers = { "x-api-key": API_KEY, "Content-Type": "application/json" };

Choosing the Right Endpoint

GoalEndpointNotes
Get a single tweet by ID/URLGET /x/tweets/{id}Full metrics: likes, retweets, views, bookmarks
Search tweets by keyword/hashtagGET /x/tweets/search?q=...Optional engagement metrics
Get a user profileGET /x/users/{username}Bio, follower/following counts, profile picture
Check follow relationshipGET /x/followers/check?source=A&target=BBoth directions
Get trending topicsGET /trends?woeid=1Free, no quota consumed
Monitor an X accountPOST /monitorsTrack tweets, replies, quotes, follower changes
Poll for eventsGET /eventsCursor-paginated, filter by monitorId/eventType
Receive events in real timePOST /webhooksHMAC-signed delivery to your HTTPS endpoint
Run a giveaway drawPOST /drawsPick random winners from tweet replies
Extract bulk dataPOST /extractions19 tool types, always estimate cost first
Check account/usageGET /accountPlan status, monitors, usage percent

Extraction Tools (19 Types)

Tool TypeRequired FieldDescription
reply_extractortargetTweetIdUsers who replied to a tweet
repost_extractortargetTweetIdUsers who retweeted a tweet
quote_extractortargetTweetIdUsers who quote-tweeted a tweet
thread_extractortargetTweetIdAll tweets in a thread
article_extractortargetTweetIdArticle content linked in a tweet
follower_explorertargetUsernameFollowers of an account
following_explorertargetUsernameAccounts followed by a user
verified_follower_explorertargetUsernameVerified followers of an account
mention_extractortargetUsernameTweets mentioning an account
post_extractortargetUsernamePosts from an account
community_extractortargetCommunityIdMembers of a community
community_moderator_explorertargetCommunityIdModerators of a community
community_post_extractortargetCommunityIdPosts from a community
community_searchtargetCommunityId + searchQuerySearch posts within a community
list_member_extractortargetListIdMembers of a list
list_post_extractortargetListIdPosts from a list
list_follower_explorertargetListIdFollowers of a list
space_explorertargetSpaceIdParticipants of a Space
people_searchsearchQuerySearch for users by keyword

Extraction Workflow

// 1. Estimate cost
const estimate = await xquikFetch("/extractions/estimate", {
  method: "POST",
  body: JSON.stringify({ toolType: "follower_explorer", targetUsername: "elonmusk" }),
});

if (!estimate.allowed) return;

// 2. Create extraction job
const job = await xquikFetch("/extractions", {
  method: "POST",
  body: JSON.stringify({ toolType: "follower_explorer", targetUsername: "elonmusk" }),
});

// 3. Retrieve paginated results (up to 1,000 per page)
const page = await xquikFetch(`/extractions/${job.id}`);
// page.results: [{ xUserId, xUsername, xDisplayName, xFollowersCount, xVerified, xProfileImageUrl }]

// 4. Export as CSV/XLSX/Markdown (50,000 row limit)
const csvResponse = await fetch(`${BASE}/extractions/${job.id}/export?format=csv`, { headers });

Giveaway Draws

Run transparent giveaway draws from tweet replies with configurable filters:

const draw = await xquikFetch("/draws", {
  method: "POST",
  body: JSON.stringify({
    tweetUrl: "https://x.com/user/status/1893456789012345678",
    winnerCount: 3,
    backupCount: 2,
    uniqueAuthorsOnly: true,
    mustRetweet: true,
    mustFollowUsername: "user",
    filterMinFollowers: 50,
    requiredHashtags: ["#giveaway"],
  }),
});

const details = await xquikFetch(`/draws/${draw.id}`);
// details.winners: [{ position, authorUsername, tweetId, isBackup }]

Error Handling & Retry

All errors return { "error": "error_code" }. Retry only 429 and 5xx (max 3 attempts, exponential backoff). Never retry 4xx except 429. Key codes:

StatusMeaning
400Invalid input -- fix the request
401Bad API key
402No subscription or quota exhausted
404Resource not found
429Rate limited -- respect Retry-After header

MCP Server Setup (Claude Code)

Add to .mcp.json in your project root:

{
  "mcpServers": {
    "xquik": {
      "type": "streamable-http",
      "url": "https://xquik.com/mcp",
      "headers": {
        "x-api-key": "xq_YOUR_KEY_HERE"
      }
    }
  }
}

The MCP server exposes 22 tools covering all API capabilities. Supported platforms: Claude Code, Claude Desktop, ChatGPT, Codex CLI, Cursor, VS Code, Windsurf, OpenCode.

Workflow Patterns

  • Real-time alerts: add-monitor -> add-webhook -> test-webhook
  • Giveaway: get-account (check budget) -> run-draw
  • Bulk extraction: estimate-extraction -> run-extraction -> get-extraction
  • Tweet analysis: lookup-tweet -> run-extraction with thread_extractor
  • User research: get-user-info -> search-tweets from:username -> lookup-tweet

Links

Signals

GitHub stars
4k
Forks
543
Last commit
Sep 2026

Others that do the same job

Questions

How does authentication work?
Every request needs an API key sent in the x-api-key header. Keys start with xq_ followed by 64 hex characters and are generated from the Xquik dashboard. The key is shown only once at creation, so store it securely.
What are the rate limits?
The API allows 10 requests per second sustained with a burst of 20. General requests allow 60 per second sustained with a burst of 100. A monthly usage cap applies as a hard limit with no overage, and requests return 402 when it is exhausted.
Advanced
Item type
skill
Key
x-twitter-scraper
Source
github.com/davepoon/buildwithclaude