跳到主要内容
知仓学习社ZHICANG

x-twitter-scraper

X (Twitter) data extraction and monitoring via Xquik: tweet search, user lookup, follower extraction, giveaway draws, trending topics, account monit…

不碰外部(只输出文字)无严重或高危命中davepoon/buildwithclaude

它会碰到什么

扫了多少1 个文本文件,9 KB
它会碰到什么不碰外部(只输出文字)
命中总数7 处
命中统计严重 0 · 高 0 · 中 0 · 低 0

这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。

技能内容

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 URL | https://xquik.com/api/v1 |

| Auth | x-api-key: xq_... header |

| MCP endpoint | https://xquik.com/mcp (StreamableHTTP) |

| Rate limits | 10 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 Type | Target | Description |

|-----------|--------|-------------|

| reply_extractor | Tweet ID | Users who replied |

| repost_extractor | Tweet ID | Users who retweeted |

| quote_extractor | Tweet ID | Users who quote-tweeted |

| thread_extractor | Tweet ID | All tweets in a thread |

| article_extractor | Tweet ID | Article content from a tweet |

| follower_explorer | Username | Followers of an account |

| following_explorer | Username | Accounts followed by a user |

| verified_follower_explorer | Username | Verified followers |

| mention_extractor | Username | Tweets mentioning an account |

| post_extractor | Username | Posts from an account |

| community_extractor | Community ID | Community members |

| community_moderator_explorer | Community ID | Community moderators |

| community_post_extractor | Community ID | Community posts |

| community_search | Community ID + query | Search within a community |

| list_member_extractor | List ID | List members |

| list_post_extractor | List ID | List posts |

| list_follower_explorer | List ID | List followers |

| space_explorer | Space ID | Space participants |

| people_search | Search query | Search 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.

| Status | Meaning | Action |

|--------|---------|--------|

| 400 | Invalid request | Fix parameters |

| 401 | Bad API key | Check key |

| 402 | No subscription or quota exhausted | Subscribe or wait for reset |

| 404 | Not found | Resource doesn't exist |

| 429 | Rate limited | Retry with backoff, respect Retry-After |

| 500+ | Server error | Retry 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:

| Tool | Purpose |

|------|---------|

| search-tweets | Search tweets by keyword/hashtag |

| lookup-tweet | Get tweet by ID with full metrics |

| get-user-info | User profile lookup |

| check-follow | Check follow relationship |

| get-trends | Trending topics by region |

| add-monitor | Start monitoring an account |

| remove-monitor | Stop monitoring |

| list-monitors | List active monitors |

| get-events | Poll for monitor events |

| get-event | Get single event details |

| add-webhook | Register webhook endpoint |

| remove-webhook | Delete webhook |

| list-webhooks | List webhooks |

| test-webhook | Send test payload |

| run-draw | Run giveaway draw |

| list-draws | List past draws |

| get-draw | Get draw results with winners |

| estimate-extraction | Preview extraction cost |

| run-extraction | Start bulk extraction |

| list-extractions | List extraction jobs |

| get-extraction | Get extraction results |

| get-account | Check subscription and usage |

想直接用这个技能?

本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。

它属于哪个仓库

星标★ 3,470
本站分层T1
该仓技能数381
原文件路径plugins/all-skills/skills/x-twitter-scraper/SKILL.md

同一个仓库里的其他技能

看这个仓库的全部 381 个技能