Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
davepoon avatar

X Twitter Scraper

  • 86 installs
  • 3.2k repo stars
  • Updated August 2, 2026
  • davepoon/buildwithclaude

Extract and monitor X (Twitter) data with Xquik: tweet search, user lookup, follower and reply extraction, account monitoring, and trending topics.

About

Provides a REST API and MCP server for X data, covering search, profiles, bulk follower/reply/retweet extraction, giveaway draws, and account monitoring with webhooks. A developer uses it to pull and monitor X data at scale.

  • 22 MCP tools plus REST API with x-api-key auth
  • 19 bulk extractors; estimate cost, create job, then fetch results

X Twitter Scraper by the numbers

  • 86 all-time installs (skills.sh)
  • Ranked #870 of 2,719 Automation & Workflows skills by installs in the Skillselion catalog
  • Data as of Aug 3, 2026 (Skillselion catalog sync)
npx skills add https://github.com/davepoon/buildwithclaude --skill x-twitter-scraper

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs86
repo stars3.2k
Last updatedAugust 2, 2026
Repositorydavepoon/buildwithclaude

What it does

Extract and monitor X (Twitter) data with Xquik: tweet search, user lookup, follower and reply extraction, account monitoring, and trending topics.

Files

SKILL.mdMarkdownGitHub ↗

Xquik - X (Twitter) Data Platform

Xquik provides a REST API, MCP server, and HMAC webhooks for X (Twitter) data. It covers tweet search, user profiles, bulk extraction (19 tools), giveaway draws, account monitoring, and trending topics.

Docs: docs.xquik.com

Quick Reference

Base URLhttps://xquik.com/api/v1
Authx-api-key: xq_... header
MCP endpointhttps://xquik.com/mcp (StreamableHTTP)
Rate limits10 req/s sustained, 20 burst
Pricing$20/month (1 monitor included), $5/month per extra monitor

Prerequisites

  • Xquik account with active subscription
  • API key generated from the Xquik dashboard
  • For MCP: configure the endpoint in your client (Claude Desktop, Claude Code, Cursor, VS Code, etc.)

Setup

MCP Server (Claude Code)

Add to your MCP configuration:

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

REST API

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" };

Core Workflows

1. Search Tweets

When to use: Find tweets by keyword, hashtag, or user.

Endpoint: GET /x/tweets/search?q=...

MCP tool: search-tweets

const results = await fetch(`${BASE}/x/tweets/search?q=from:elonmusk AI`, { headers });

Pitfalls:

  • Basic results only (id, text, author, date). Use lookup-tweet for engagement metrics
  • Searches recent tweets, not full archive

2. Look Up a Tweet

When to use: Get full metrics (likes, retweets, views, bookmarks) for a specific tweet.

Endpoint: GET /x/tweets/{id}

MCP tool: lookup-tweet

3. Look Up a User Profile

When to use: Get name, bio, follower/following counts, profile picture, join date.

Endpoint: GET /x/users/{username}

MCP tool: get-user-info

Pitfalls:

  • MCP returns a subset (no verified, location, createdAt, statusesCount). Use REST API for the full profile

4. Check Follow Relationship

When to use: Check if account A follows account B (both directions).

Endpoint: GET /x/followers/check?source=A&target=B

MCP tool: check-follow

5. Bulk Data Extraction (19 Tools)

When to use: Extract followers, replies, retweets, quotes, community members, list data, and more.

Workflow: Always estimate cost first, then create the job, then retrieve results.

Tool types:

Tool TypeTargetDescription
reply_extractorTweet IDUsers who replied
repost_extractorTweet IDUsers who retweeted
quote_extractorTweet IDUsers who quote-tweeted
thread_extractorTweet IDAll tweets in a thread
article_extractorTweet IDArticle content from a tweet
follower_explorerUsernameFollowers of an account
following_explorerUsernameAccounts followed by a user
verified_follower_explorerUsernameVerified followers
mention_extractorUsernameTweets mentioning an account
post_extractorUsernamePosts from an account
community_extractorCommunity IDCommunity members
community_moderator_explorerCommunity IDCommunity moderators
community_post_extractorCommunity IDCommunity posts
community_searchCommunity ID + querySearch within a community
list_member_extractorList IDList members
list_post_extractorList IDList posts
list_follower_explorerList IDList followers
space_explorerSpace IDSpace participants
people_searchSearch querySearch for users

MCP tools: estimate-extraction -> run-extraction -> get-extraction

// 1. Estimate cost
const estimate = await fetch(`${BASE}/extractions/estimate`, {
  method: "POST", headers,
  body: JSON.stringify({ toolType: "follower_explorer", targetUsername: "elonmusk" }),
}).then(r => r.json());

if (!estimate.allowed) return; // Would exceed monthly quota

// 2. Create job
const job = await fetch(`${BASE}/extractions`, {
  method: "POST", headers,
  body: JSON.stringify({ toolType: "follower_explorer", targetUsername: "elonmusk" }),
}).then(r => r.json());

// 3. Retrieve results (paginated)
const results = await fetch(`${BASE}/extractions/${job.id}`, { headers }).then(r => r.json());

Pitfalls:

  • Always call estimate first. 402 means quota exhausted
  • Large jobs return status: "running" and need polling
  • Export (CSV/XLSX/MD) capped at 50,000 rows

6. Giveaway Draws

When to use: Pick random winners from tweet replies with configurable filters.

Endpoint: POST /draws

MCP tool: run-draw

Available filters: mustRetweet, mustFollowUsername, filterMinFollowers, filterAccountAgeDays, filterLanguage, requiredKeywords, requiredHashtags, requiredMentions, uniqueAuthorsOnly.

const draw = await fetch(`${BASE}/draws`, {
  method: "POST", headers,
  body: JSON.stringify({
    tweetUrl: "https://x.com/user/status/123456789",
    winnerCount: 3,
    uniqueAuthorsOnly: true,
    mustRetweet: true,
  }),
}).then(r => r.json());

7. Real-Time Monitoring

When to use: Track when an account tweets, gets replies, gains/loses followers.

Workflow: Create a monitor, optionally register a webhook for push notifications.

Event types: tweet.new, tweet.reply, tweet.quote, tweet.retweet, follower.gained, follower.lost

MCP tools: add-monitor -> add-webhook -> test-webhook

// Create monitor
await fetch(`${BASE}/monitors`, {
  method: "POST", headers,
  body: JSON.stringify({
    username: "elonmusk",
    eventTypes: ["tweet.new", "follower.gained"],
  }),
});

// Register webhook (save the secret!)
const webhook = await fetch(`${BASE}/webhooks`, {
  method: "POST", headers,
  body: JSON.stringify({
    url: "https://your-server.com/webhook",
    eventTypes: ["tweet.new"],
  }),
}).then(r => r.json());

Pitfalls:

  • Webhook secret is shown only once at creation
  • Verify HMAC signature (X-Xquik-Signature header) before processing
  • Respond within 10 seconds; queue slow processing for async

8. Trending Topics

When to use: Get current trending topics for a region.

Endpoint: GET /trends?woeid=1

MCP tool: get-trends

Free, no quota consumed.

Error Handling

Retry only 429 and 5xx. Never retry other 4xx.

StatusMeaningAction
400Invalid requestFix parameters
401Bad API keyCheck key
402No subscription or quota exhaustedSubscribe or wait for reset
404Not foundResource doesn't exist
429Rate limitedRetry with backoff, respect Retry-After
500+Server errorRetry with exponential backoff (max 3)

Conventions

  • IDs are strings (bigints). Never parse as numbers
  • Timestamps: ISO 8601 UTC
  • Cursors are opaque. Pass nextCursor as the after query parameter
  • Pagination: hasMore + nextCursor pattern across events, draws, extractions

MCP Tool Reference

22 tools available through the MCP server:

ToolPurpose
search-tweetsSearch tweets by keyword/hashtag
lookup-tweetGet tweet by ID with full metrics
get-user-infoUser profile lookup
check-followCheck follow relationship
get-trendsTrending topics by region
add-monitorStart monitoring an account
remove-monitorStop monitoring
list-monitorsList active monitors
get-eventsPoll for monitor events
get-eventGet single event details
add-webhookRegister webhook endpoint
remove-webhookDelete webhook
list-webhooksList webhooks
test-webhookSend test payload
run-drawRun giveaway draw
list-drawsList past draws
get-drawGet draw results with winners
estimate-extractionPreview extraction cost
run-extractionStart bulk extraction
list-extractionsList extraction jobs
get-extractionGet extraction results
get-accountCheck subscription and usage

Related skills

Automation & Workflowsdistributioncontent

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.