X API Data Scraper

X twitter scraper

by davila7 · MIT license · ★ 32,299 on GitHub

X twitter scraper cover

X API & Twitter scraper skill for AI coding agents. Builds integrations with the Xquik REST API, MCP server & webhooks: tweet search, user lookup, follower extraction, engagement metrics, giveaway contest draws, trending topics, account…

---
name: x-twitter-scraper
description: "X API & Twitter scraper skill for AI coding agents. Builds integrations with the Xquik REST API, MCP server & webhooks: tweet search, user lookup, follower extraction, engagement metrics, giveaway contest draws, trending topics, account monitoring, reply/retweet/quote extraction, community & Space data, mutual follow checks. Works with Claude Code, Cursor, Codex, Copilot, Windsurf & 40+ agents."
---

# Xquik API Integration

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 URL** | `https://xquik.com/api/v1` |
| **Auth** | `x-api-key: xq_...` header (64 hex chars after `xq_` prefix) |
| **MCP endpoint** | `https://xquik.com/mcp` (StreamableHTTP, same API key) |
| **Rate limits** | 10 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 |

Overview

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.

Manual install (npx, ZIP)
Claude Codenpx skills add davila7/claude-code-templates --skill x-twitter-scraper -g -a claude-code
Claude Code (degit)npx degit davila7/claude-code-templates/cli-tool/components/skills/marketing/x-twitter-scraper#main ~/.claude/skills/x-twitter-scraper-davila7
Claude.ai / desktopZip the folder and upload it under Settings → Capabilities → Skills.
Codex, Cursor, other agentsPoint them at SKILL.md. The other files are plain text.

Connects with Agent Alley MCP · agentalley.io/mcp

Files included

  • SKILL.md7.0 KB
Read SKILL.md here
davila7/main1 file shown
SKILL.md
Show the full text165 lines

Xquik API Integration

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 URL https://xquik.com/api/v1
Auth x-api-key: xq_... header (64 hex chars after xq_ prefix)
MCP endpoint https://xquik.com/mcp (StreamableHTTP, same API key)
Rate limits 10 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
Quota Monthly usage cap, hard limit, no overage. 402 when exhausted.
Docs docs.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

Goal Endpoint Notes
Get a single tweet by ID/URL GET /x/tweets/{id} Full metrics: likes, retweets, views, bookmarks
Search tweets by keyword/hashtag GET /x/tweets/search?q=... Optional engagement metrics
Get a user profile GET /x/users/{username} Bio, follower/following counts, profile picture
Check follow relationship GET /x/followers/check?source=A&target=B Both directions
Get trending topics GET /trends?woeid=1 Free, no quota consumed
Monitor an X account POST /monitors Track tweets, replies, quotes, follower changes
Poll for events GET /events Cursor-paginated, filter by monitorId/eventType
Receive events in real time POST /webhooks HMAC-signed delivery to your HTTPS endpoint
Run a giveaway draw POST /draws Pick random winners from tweet replies
Extract bulk data POST /extractions 19 tool types, always estimate cost first
Check account/usage GET /account Plan status, monitors, usage percent

Extraction Tools (19 Types)

Tool Type Required Field Description
reply_extractor targetTweetId Users who replied to a tweet
repost_extractor targetTweetId Users who retweeted a tweet
quote_extractor targetTweetId Users who quote-tweeted a tweet
thread_extractor targetTweetId All tweets in a thread
article_extractor targetTweetId Article content linked in a tweet
follower_explorer targetUsername Followers of an account
following_explorer targetUsername Accounts followed by a user
verified_follower_explorer targetUsername Verified followers of an account
mention_extractor targetUsername Tweets mentioning an account
post_extractor targetUsername Posts from an account
community_extractor targetCommunityId Members of a community
community_moderator_explorer targetCommunityId Moderators of a community
community_post_extractor targetCommunityId Posts from a community
community_search targetCommunityId + searchQuery Search posts within a community
list_member_extractor targetListId Members of a list
list_post_extractor targetListId Posts from a list
list_follower_explorer targetListId Followers of a list
space_explorer targetSpaceId Participants of a Space
people_search searchQuery Search 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:

Status Meaning
400 Invalid input -- fix the request
401 Bad API key
402 No subscription or quota exhausted
404 Resource not found
429 Rate 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
1---
2name: x-twitter-scraper
3description: "X API & Twitter scraper skill for AI coding agents. Builds integrations with the Xquik REST API, MCP server & webhooks: tweet search, user lookup, follower extraction, engagement metrics, giveaway contest draws, trending topics, account monitoring, reply/retweet/quote extraction, community & Space data, mutual follow checks. Works with Claude Code, Cursor, Codex, Copilot, Windsurf & 40+ agents."
4---
5 
6# Xquik API Integration
7 
8Xquik 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.
9 
10## Quick Reference
11 
12| | |
13|---|---|
14| **Base URL** | `https://xquik.com/api/v1` |
15| **Auth** | `x-api-key: xq_...` header (64 hex chars after `xq_` prefix) |
16| **MCP endpoint** | `https://xquik.com/mcp` (StreamableHTTP, same API key) |
17| **Rate limits** | 10 req/s sustained, 20 burst (API); 60 req/s sustained, 100 burst (general) |
18| **Pricing** | $20/month base (1 monitor included), $5/month per extra monitor |
19| **Quota** | Monthly usage cap, hard limit, no overage. `402` when exhausted. |
20| **Docs** | [docs.xquik.com](https://docs.xquik.com) |
21 
22## Authentication
23 
24Every request requires an API key via the `x-api-key` header. Keys start with `xq_` and are generated from the [Xquik dashboard](https://xquik.com). The key is shown only once at creation; store it securely.
25 
26```javascript
27const API_KEY = "xq_YOUR_KEY_HERE";
28const BASE = "https://xquik.com/api/v1";
29const headers = { "x-api-key": API_KEY, "Content-Type": "application/json" };
30```
31 
32## Choosing the Right Endpoint
33 
34| Goal | Endpoint | Notes |
35|------|----------|-------|
36| Get a single tweet by ID/URL | `GET /x/tweets/{id}` | Full metrics: likes, retweets, views, bookmarks |
37| Search tweets by keyword/hashtag | `GET /x/tweets/search?q=...` | Optional engagement metrics |
38| Get a user profile | `GET /x/users/{username}` | Bio, follower/following counts, profile picture |
39| Check follow relationship | `GET /x/followers/check?source=A&target=B` | Both directions |
40| Get trending topics | `GET /trends?woeid=1` | Free, no quota consumed |
41| Monitor an X account | `POST /monitors` | Track tweets, replies, quotes, follower changes |
42| Poll for events | `GET /events` | Cursor-paginated, filter by monitorId/eventType |
43| Receive events in real time | `POST /webhooks` | HMAC-signed delivery to your HTTPS endpoint |
44| Run a giveaway draw | `POST /draws` | Pick random winners from tweet replies |
45| Extract bulk data | `POST /extractions` | 19 tool types, always estimate cost first |
46| Check account/usage | `GET /account` | Plan status, monitors, usage percent |
47 
48## Extraction Tools (19 Types)
49 
50| Tool Type | Required Field | Description |
51|-----------|---------------|-------------|
52| `reply_extractor` | `targetTweetId` | Users who replied to a tweet |
53| `repost_extractor` | `targetTweetId` | Users who retweeted a tweet |
54| `quote_extractor` | `targetTweetId` | Users who quote-tweeted a tweet |
55| `thread_extractor` | `targetTweetId` | All tweets in a thread |
56| `article_extractor` | `targetTweetId` | Article content linked in a tweet |
57| `follower_explorer` | `targetUsername` | Followers of an account |
58| `following_explorer` | `targetUsername` | Accounts followed by a user |
59| `verified_follower_explorer` | `targetUsername` | Verified followers of an account |
60| `mention_extractor` | `targetUsername` | Tweets mentioning an account |
61| `post_extractor` | `targetUsername` | Posts from an account |
62| `community_extractor` | `targetCommunityId` | Members of a community |
63| `community_moderator_explorer` | `targetCommunityId` | Moderators of a community |
64| `community_post_extractor` | `targetCommunityId` | Posts from a community |
65| `community_search` | `targetCommunityId` + `searchQuery` | Search posts within a community |
66| `list_member_extractor` | `targetListId` | Members of a list |
67| `list_post_extractor` | `targetListId` | Posts from a list |
68| `list_follower_explorer` | `targetListId` | Followers of a list |
69| `space_explorer` | `targetSpaceId` | Participants of a Space |
70| `people_search` | `searchQuery` | Search for users by keyword |
71 
72### Extraction Workflow
73 
74```javascript
75// 1. Estimate cost
76const estimate = await xquikFetch("/extractions/estimate", {
77 method: "POST",
78 body: JSON.stringify({ toolType: "follower_explorer", targetUsername: "elonmusk" }),
79});
80 
81if (!estimate.allowed) return;
82 
83// 2. Create extraction job
84const job = await xquikFetch("/extractions", {
85 method: "POST",
86 body: JSON.stringify({ toolType: "follower_explorer", targetUsername: "elonmusk" }),
87});
88 
89// 3. Retrieve paginated results (up to 1,000 per page)
90const page = await xquikFetch(`/extractions/${job.id}`);
91// page.results: [{ xUserId, xUsername, xDisplayName, xFollowersCount, xVerified, xProfileImageUrl }]
92 
93// 4. Export as CSV/XLSX/Markdown (50,000 row limit)
94const csvResponse = await fetch(`${BASE}/extractions/${job.id}/export?format=csv`, { headers });
95```
96 
97## Giveaway Draws
98 
99Run transparent giveaway draws from tweet replies with configurable filters:
100 
101```javascript
102const draw = await xquikFetch("/draws", {
103 method: "POST",
104 body: JSON.stringify({
105 tweetUrl: "https://x.com/user/status/1893456789012345678",
106 winnerCount: 3,
107 backupCount: 2,
108 uniqueAuthorsOnly: true,
109 mustRetweet: true,
110 mustFollowUsername: "user",
111 filterMinFollowers: 50,
112 requiredHashtags: ["#giveaway"],
113 }),
114});
115 
116const details = await xquikFetch(`/draws/${draw.id}`);
117// details.winners: [{ position, authorUsername, tweetId, isBackup }]
118```
119 
120## Error Handling & Retry
121 
122All errors return `{ "error": "error_code" }`. Retry only `429` and `5xx` (max 3 attempts, exponential backoff). Never retry `4xx` except 429. Key codes:
123 
124| Status | Meaning |
125|--------|---------|
126| 400 | Invalid input -- fix the request |
127| 401 | Bad API key |
128| 402 | No subscription or quota exhausted |
129| 404 | Resource not found |
130| 429 | Rate limited -- respect `Retry-After` header |
131 
132## MCP Server Setup (Claude Code)
133 
134Add to `.mcp.json` in your project root:
135 
136```json
137{
138 "mcpServers": {
139 "xquik": {
140 "type": "streamable-http",
141 "url": "https://xquik.com/mcp",
142 "headers": {
143 "x-api-key": "xq_YOUR_KEY_HERE"
144 }
145 }
146 }
147}
148```
149 
150The MCP server exposes 22 tools covering all API capabilities. Supported platforms: Claude Code, Claude Desktop, ChatGPT, Codex CLI, Cursor, VS Code, Windsurf, OpenCode.
151 
152## Workflow Patterns
153 
154- **Real-time alerts:** `add-monitor` -> `add-webhook` -> `test-webhook`
155- **Giveaway:** `get-account` (check budget) -> `run-draw`
156- **Bulk extraction:** `estimate-extraction` -> `run-extraction` -> `get-extraction`
157- **Tweet analysis:** `lookup-tweet` -> `run-extraction` with `thread_extractor`
158- **User research:** `get-user-info` -> `search-tweets from:username` -> `lookup-tweet`
159 
160## Links
161 
162- **Dashboard & API keys**: [xquik.com](https://xquik.com)
163- **Full API docs**: [docs.xquik.com](https://docs.xquik.com)
164- **GitHub (skill source)**: [github.com/Xquik-dev/x-twitter-scraper](https://github.com/Xquik-dev/x-twitter-scraper)
165 
View all files on GitHub →

Details

License
MIT
Stars on the repo
★ 32,299
Checked
Source
davila7/claude-code-templates ↗
Creator
davila7 · 212 listings
View creator

Similar skills

See all →
SkillAPI Interface Designaddyosmani/agent-skills · by addyosmaniGuides stable API and interface design. Use when designing APIs, module boundaries, or any public interface. Use when creating REST or GraphQL endpoints, defining type contracts between modules, or establishing boundaries between frontend and backend.★ 98.7k GitHub starsAgentVersion-Specific Docs Lookupupstash/context7 · by upstashPulls up-to-date, version-specific library docs and code examples into the prompt so the AI stops inventing old APIs.★ 62.3k GitHub starsSkillAdaptyv Bio Foundry APIK-Dense-AI/scientific-agent-skills · by K-Dense-AIHow to use the Adaptyv Bio Foundry API and Python SDK for protein experiment design, submission, and results retrieval. Use this skill whenever the user mentions Adaptyv, Foundry API, protein binding assays, protein screening experiments, BLI/SPR assays, thermostability assays, or wants to submit protein sequences for experimental characterization. Also trigger when code imports `adaptyv`, `adaptyv_sdk`, or `FoundryClient`, or references `foundry-api-public.adaptyvbio.com`.★ 46k GitHub starsSkill.NET Backend Developerwshobson/agents · by wshobsonMaster C#/.NET backend development patterns for building robust APIs, MCP servers, and enterprise applications. Covers async/await, dependency injection, Entity Framework Core, Dapper, configuration, caching, and testing with xUnit. Use when developing .NET backends, reviewing C# code, or designing API architectures.★ 39.9k GitHub starsSkillGemini Agent API Guidegoogle/skills · by googleGuides the usage of Gemini Interactions API on Gemini Enterprise Agent Platform. Use when the user wants to use the stateful, server-managed Interactions API for multi-turn conversations, background execution, streaming, structured output, and function calling on the Agent Platform.★ 20.9k GitHub starsSkillGemini Notebook Automationteng-lin/notebooklm-py · by teng-linInstall, authenticate, troubleshoot, and operate Gemini Notebook through the notebooklm-py CLI or typed async Python API. Use for notebook and source management, grounded chat and research, and artifact generation or download when the user mentions Gemini Notebook, notebooklm-py, the notebooklm CLI, or its Python API. Do not use for the generic Gemini API or unrelated content creation.★ 19.6k GitHub stars

More from davila7

Skill2D Game Developmentdavila7/claude-code-templates · by davila72D game development principles. Sprites, tilemaps, physics, camera.★ 32.3k GitHub starsSkill3D Game Development Principlesdavila7/claude-code-templates · by davila73D game development principles. Rendering, shaders, physics, cameras.★ 32.3k GitHub starsSkill3D Web Experience Builderdavila7/claude-code-templates · by davila7Expert in building 3D experiences for the web - Three.js, React Three Fiber, Spline, WebGL, and interactive 3D scenes. Covers product configurators, 3D portfolios, immersive websites, and bringing depth to web experiences. Use when: 3D website, three.js, WebGL, react three fiber, 3D experience.★ 32.3k GitHub starsSkillSplit Test Setupdavila7/claude-code-templates · by davila7When the user wants to plan, design, or implement an A/B test or experiment. Also use when the user mentions "A/B test," "split test," "experiment," "test this change," "variant copy," "multivariate test," or "hypothesis." For tracking implementation, see analytics-tracking.★ 32.3k GitHub starsAgentResearch Literature Synthesizerdavila7/claude-code-templates · by davila7Academic research synthesis specialist. Use PROACTIVELY for comprehensive research on academic topics, literature reviews, technical investigations, and well-cited analysis combining multiple sources. <example>Context: A podcast episode needs a segment grounded in peer-reviewed evidence with formal citations. user: "Research the current state of transformer efficiency techniques for the episode, with proper academic citations." assistant: "I'll use the academic-research-synthesizer agent to search arXiv and Semantic Scholar, extract full-text findings via WebFetch, and produce a cited literature synthesis with confidence levels." <commentary>Use academic-research-synthesizer (not comprehensive-researcher) when the episode segment needs peer-reviewed sourcing, formal citation format, and explicit confidence tagging rather than general-purpose multi-source coverage.</commentary></example> <example>Context: The episode-orchestrator has routed a "literature review" request for a technical deep-dive segment. user: "Summarize the research landscape on federated learning privacy guarantees." assistant: "I'll invoke academic-research-synthesizer to systematically search academic sources, note peer-review status per source, and synthesize consensus vs. open debates."</example>★ 32.3k GitHub starsAgentAcademic Research Specialistdavila7/claude-code-templates · by davila7Academic research specialist for scholarly sources, peer-reviewed papers, and academic literature. Use PROACTIVELY for research paper analysis, literature reviews, citation tracking, and academic methodology evaluation. <example>Context: The research-orchestrator has kicked off Phase 4 parallel research on 'efficacy of intermittent fasting' and needs peer-reviewed evidence. user: "Find the academic evidence on intermittent fasting outcomes." assistant: "I'll use the academic-researcher agent to search Semantic Scholar, PubMed, and OpenAlex for peer-reviewed studies and write structured findings to academic-research.md." <commentary>The request is specifically for scholarly/peer-reviewed evidence rather than general web coverage or code, so academic-researcher (not web-researcher or technical-researcher) is the right specialist.</commentary></example> <example>Context: The user wants a literature review comparing methodologies across studies on a topic. user: "Can you review the literature on transformer model interpretability and identify research gaps?" assistant: "Let me invoke the academic-researcher agent to pull foundational and recent papers, extract methodologies, and surface open research gaps." <commentary>Literature review, methodology extraction, and research-gap identification are core academic-researcher capabilities, distinct from technical-researcher's focus on code repositories and implementations.</commentary></example>★ 32.3k GitHub stars