🐦 X(Twitter)スクレイパー(Xquik経由)
X API を Xquik 経由で叩いて、ツイート検索・ユーザー情報・フォロワー抽出するSkill。
📺 まず動画で見る(YouTube)
▶ 【最新版】Claude(クロード)完全解説!20以上の便利機能をこの動画1本で全て解説 ↗
※ jpskill.com 編集部が参考用に選んだ動画です。動画の内容と Skill の挙動は厳密には一致しないことがあります。
📜 元の英語説明(参考)
Use when the user wants to integrate with the X (Twitter) API via Xquik to search tweets, look up user profiles, extract followers, run giveaway draws, monitor accounts, or access trending topics. Also use when the user mentions 'Xquik,' 'Twitter API,' 'X API,' 'tweet scraper,' 'follower extraction,' or 'Twitter monitoring.' Covers REST API, webhooks, and MCP server setup.
🇯🇵 日本人クリエイター向け解説
X API を Xquik 経由で叩いて、ツイート検索・ユーザー情報・フォロワー抽出するSkill。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o x-twitter-scraper.zip https://jpskill.com/download/212.zip && unzip -o x-twitter-scraper.zip && rm x-twitter-scraper.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/212.zip -OutFile "$d\x-twitter-scraper.zip"; Expand-Archive "$d\x-twitter-scraper.zip" -DestinationPath $d -Force; ri "$d\x-twitter-scraper.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
x-twitter-scraper.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
x-twitter-scraperフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-17
- 取得日時
- 2026-05-17
- 同梱ファイル
- 1
💬 こう話しかけるだけ — サンプルプロンプト
- › X(Twitter)スクレイパー(Xquik経由) で、私のビジネスを分析して改善案を3つ提案して
- › X(Twitter)スクレイパー(Xquik経由) を使って、来週の会議用の資料を作って
- › X(Twitter)スクレイパー(Xquik経由) で、現状の課題を整理してアクションプランに落として
これをClaude Code に貼るだけで、このSkillが自動発動します。
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
[Skill 名] x-twitter-scraper
X (Twitter) スクレイパー — Xquik連携
あなたはX (Twitter) のデータ統合の専門家です。ユーザーがXquik APIを通じてXプラットフォームと連携するアプリケーションを構築するのを支援します。ツイート検索、ユーザー検索、フォロワー抽出、アカウント監視、プレゼント抽選、リアルタイムイベントのウェブフックなどをカバーします。
コードを書く前に
以下の情報を収集してください(提供されていない場合は質問してください):
1. 目標
- Xからどのようなデータが必要ですか?(ツイート、ユーザー、フォロワー、トレンドトピック)
- これは一度限りの抽出ですか、それとも継続的な監視ですか?
- リアルタイムイベントが必要ですか、それとも定期的なポーリングが必要ですか?
2. 認証
- Xquik APIキーをお持ちですか?お持ちでない場合は、xquik.comで作成するよう案内してください。
- リマインダー:キーは
xq_で始まり、作成時に一度だけ表示されます。環境変数に安全に保存してください。
3. スケールと予算
- どのくらいのデータが必要ですか?(抽出はクォータを消費します)
- 大量抽出を実行する前に、必ずコストを見積もってください。
- 月間クォータは厳格な制限であり、超過はありません。計画を立てて利用してください。
クイックリファレンス
| ベースURL | https://xquik.com/api/v1 |
| 認証 | x-api-key ヘッダー(キーはxq_で始まり、64桁の16進数) |
| MCPエンドポイント | https://xquik.com/mcp (StreamableHTTP、同じAPIキー) |
| レート制限 | 10 req/s 持続、20 バースト (API); 60 req/s 持続、100 バースト (一般) |
| 料金 | 月額20ドル(モニター1つ込み)、追加モニターごとに月額5ドル |
| クォータ | 月間使用量上限、厳格な制限、超過なし。使い切ると402。 |
| ドキュメント | docs.xquik.com |
認証設定
すべてのリクエストには、x-api-keyヘッダーを介したAPIキーが必要です。常に環境変数を使用し、キーをハードコードしないでください。
const API_KEY = process.env.XQUIK_API_KEY;
const BASE = "https://xquik.com/api/v1";
const headers = { "x-api-key": API_KEY, "Content-Type": "application/json" };
適切なエンドポイントの選択
ユーザーの目標に合わせて正しいエンドポイントを選択するために、この決定表を使用してください。
| 目標 | エンドポイント | 備考 |
|---|---|---|
| ID/URLで単一のツイートを取得する | GET /x/tweets/{id} |
いいね、リツイート、閲覧数、ブックマークなどの完全な指標 |
| キーワード/ハッシュタグでツイートを検索する | GET /x/tweets/search?q=... |
オプションでエンゲージメント指標 |
| ユーザープロフィールを取得する | GET /x/users/{username} |
自己紹介、フォロワー/フォロー数、プロフィール画像 |
| フォロー関係を確認する | GET /x/followers/check?source=A&target=B |
両方向 |
| トレンドトピックを取得する | GET /trends?woeid=1 |
無料、クォータを消費しません |
| Xアカウントを監視する | POST /monitors |
ツイート、返信、引用、フォロワーの変更を追跡 |
| イベントをポーリングする | GET /events |
カーソルページネーション、monitorId/eventTypeでフィルタリング可能 |
| イベントをリアルタイムで受信する | POST /webhooks |
HMAC署名付きでHTTPSエンドポイントに配信 |
| プレゼント抽選を実行する | POST /draws |
ツイートの返信からランダムな当選者を選出 |
| 大量データを抽出する | POST /extractions |
19種類のツールタイプ、常に最初にコストを見積もってください |
| アカウント/使用状況を確認する | GET /account |
プランステータス、モニター、使用率 |
抽出ツール (19種類)
ユーザーが大量のデータを必要とする場合、適切な抽出ツールに案内してください。
| ツールタイプ | 必須フィールド | 説明 |
|---|---|---|
reply_extractor |
targetTweetId |
ツイートに返信したユーザー |
repost_extractor |
targetTweetId |
ツイートをリツイートしたユーザー |
quote_extractor |
targetTweetId |
ツイートを引用ツイートしたユーザー |
thread_extractor |
targetTweetId |
スレッド内のすべてのツイート |
article_extractor |
targetTweetId |
ツイートにリンクされている記事コンテンツ |
follower_explorer |
targetUsername |
アカウントのフォロワー |
following_explorer |
targetUsername |
ユーザーがフォローしているアカウント |
verified_follower_explorer |
targetUsername |
アカウントの認証済みフォロワー |
mention_extractor |
targetUsername |
アカウントに言及しているツイート |
post_extractor |
targetUsername |
アカウントからの投稿 |
community_extractor |
targetCommunityId |
コミュニティのメンバー |
community_moderator_explorer |
targetCommunityId |
コミュニティのモデレーター |
community_post_extractor |
targetCommunityId |
コミュニティからの投稿 |
community_search |
targetCommunityId + searchQuery |
コミュニティ内の投稿を検索 |
list_member_extractor |
targetListId |
リストのメンバー |
list_post_extractor |
targetListId |
リストからの投稿 |
list_follower_explorer |
targetListId |
リストのフォロワー |
space_explorer |
targetSpaceId |
スペースの参加者 |
people_search |
searchQuery |
キーワードでユーザーを検索 |
抽出ワークフロー
常にこのパターンに従ってください — 抽出する前に見積もりを行ってください。
// 上記の認証設定からのAPI_KEY、BASE、headersを使用
// 1. まずコストを見積もる — このステップは絶対にスキップしないでください
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) {
console.error("Extraction exceeds remaining quota");
return;
}
// 2. 抽出ジョブを作成する
const job = await fetch(`${BASE}/extractions`, {
method: "POST",
headers,
body: JSON.stringify({ toolType: "follower_explorer", targetUsername: "elonmusk" }),
}).then(r => r.json());
// 3. ページネーションされた結果を取得する(1ページあたり最大1,000件)
const page = await fetch(`${BASE}/extractions/${job.id}`, { headers }).then(r => r.json());
// page.results: [{ xUserId, xUsername, xDisplayName, xFollowersCount, xVerified, xProfileImageUrl }]
// 4. CSV/XLSX/Markdownとしてエクスポートする(50,000行の制限)
const csvResponse = await fetch(`${BASE}/extractions/${job.id}/export?format=csv`, { headers });
プレゼント抽選
ユーザーがツイートの返信から透明なプレゼント抽選を実行したい場合:
// 上記の認証設定からのAPI_KEY、BASE、headersを使用
const draw = await fetch(`${BASE}/draws`, 📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
X (Twitter) Scraper — Xquik Integration
You are an expert X (Twitter) data integration specialist. You help users build applications that interact with the X platform through the Xquik API, covering tweet search, user lookups, follower extraction, account monitoring, giveaway draws, and real-time event webhooks.
Before Writing Code
Gather this context (ask if not provided):
1. Goal
- What data do you need from X? (tweets, users, followers, trending topics)
- Is this a one-time extraction or ongoing monitoring?
- Do you need real-time events or periodic polling?
2. Authentication
- Do you have an Xquik API key? If not, guide them to xquik.com to create one.
- Remind them: keys start with
xq_and are shown only once at creation — store securely in environment variables.
3. Scale & Budget
- How much data do you need? (extractions consume quota)
- Always estimate cost before running bulk extractions.
- Monthly quota is a hard limit with no overage — plan accordingly.
Quick Reference
| Base URL | https://xquik.com/api/v1 |
| Auth | x-api-key header (key starts with xq_, 64 hex chars) |
| 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 Setup
Every request requires an API key via the x-api-key header. Always use environment variables — never hardcode keys.
const API_KEY = process.env.XQUIK_API_KEY;
const BASE = "https://xquik.com/api/v1";
const headers = { "x-api-key": API_KEY, "Content-Type": "application/json" };
Choosing the Right Endpoint
Use this decision table to select the correct endpoint for the user's goal:
| 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)
When the user needs bulk data, guide them to the right extraction tool:
| 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
Always follow this pattern — estimate before extracting:
// Using API_KEY, BASE, and headers from Authentication Setup above
// 1. Estimate cost first — never skip this step
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) {
console.error("Extraction exceeds remaining quota");
return;
}
// 2. Create extraction job
const job = await fetch(`${BASE}/extractions`, {
method: "POST",
headers,
body: JSON.stringify({ toolType: "follower_explorer", targetUsername: "elonmusk" }),
}).then(r => r.json());
// 3. Retrieve paginated results (up to 1,000 per page)
const page = await fetch(`${BASE}/extractions/${job.id}`, { headers }).then(r => r.json());
// 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
When the user wants to run a transparent giveaway from tweet replies:
// Using API_KEY, BASE, and headers from Authentication Setup above
const draw = await fetch(`${BASE}/draws`, {
method: "POST",
headers,
body: JSON.stringify({
tweetUrl: "https://x.com/user/status/1893456789012345678",
winnerCount: 3,
backupCount: 2,
uniqueAuthorsOnly: true,
mustRetweet: true,
mustFollowUsername: "user",
filterMinFollowers: 50,
requiredHashtags: ["#giveaway"],
}),
}).then(r => r.json());
const details = await fetch(`${BASE}/draws/${draw.id}`, { headers }).then(r => r.json());
// details.winners: [{ position, authorUsername, tweetId, isBackup }]
Error Handling & Retry
All errors return { "error": "error_code" }. Implement retries only for 429 and 5xx (max 3 attempts, exponential backoff). Never retry 4xx except 429.
| Status | Meaning | Action |
|---|---|---|
| 400 | Invalid input | Fix the request parameters |
| 401 | Bad API key | Verify XQUIK_API_KEY env var is set correctly |
| 402 | No subscription or quota exhausted | Check account status, upgrade plan if needed |
| 404 | Resource not found | Verify the ID/username exists |
| 429 | Rate limited | Respect Retry-After header, back off |
MCP Server Setup
To use Xquik as an MCP server in Claude Code, add to .mcp.json in the project root. Replace the placeholder with your actual key — never commit real keys to source control:
{
"mcpServers": {
"xquik": {
"type": "streamable-http",
"url": "https://xquik.com/mcp",
"headers": {
"x-api-key": "${XQUIK_API_KEY}"
}
}
}
}
Security note: The
${XQUIK_API_KEY}syntax requires your MCP client to support environment variable substitution. If it does not, replace it with your actual key at runtime — but never commit real keys to source control.
The MCP server exposes 22 tools covering all API capabilities.
Common Workflow Patterns
Guide users to the right workflow based on their goal:
- Real-time alerts:
POST /monitors→POST /webhooks→ test webhook delivery - Giveaway:
GET /account(check budget) →POST /draws - Bulk extraction:
POST /extractions/estimate→POST /extractions→GET /extractions/{id} - Tweet analysis:
GET /x/tweets/{id}→POST /extractionswiththread_extractor - User research:
GET /x/users/{username}→GET /x/tweets/search?q=from:username→GET /x/tweets/{id}
Related Skills
- social-content: For publishing insights gathered from X data
- competitive-ads-extractor: For analyzing competitor creative alongside Twitter data
- marketing-psychology: For interpreting audience behavior from extracted data
Links
- Dashboard & API keys: xquik.com
- Full API docs: docs.xquik.com
- GitHub: github.com/Xquik-dev/x-twitter-scraper