Claude Code SkillBusiness Marketing11 installs

X Twitter Scraper

"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."

Install with the Claude Code Templates CLI
$ npx claude-code-templates@latest --skill="business-marketing/x-twitter-scraper" --yes

Requires Claude Code. The command adds this skill to your project's .claudedirectory — nothing runs on ToolZip's servers.

What's inside this skill

Component source

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 URLhttps://xquik.com/api/v1
Authx-api-key header (key starts with xq_, 64 hex chars)
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 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:

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)

When the user needs bulk data, guide them to the right extraction tool:

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

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.

StatusMeaningAction
400Invalid inputFix the request parameters
401Bad API keyVerify XQUIK_API_KEY env var is set correctly
402No subscription or quota exhaustedCheck account status, upgrade plan if needed
404Resource not foundVerify the ID/username exists
429Rate limitedRespect 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 2 tools: explore for API discovery and xquik for authenticated API calls.

Common Workflow Patterns

Guide users to the right workflow based on their goal:

  • Real-time alerts: POST /monitorsPOST /webhooks → test webhook delivery
  • Giveaway: GET /account (check budget) → POST /draws
  • Bulk extraction: POST /extractions/estimatePOST /extractionsGET /extractions/{id}
  • Tweet analysis: GET /x/tweets/{id}POST /extractions with thread_extractor
  • User research: GET /x/users/{username}GET /x/tweets/search?q=from:usernameGET /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

Type
Skill
Category
Business Marketing
Installs
11
Source
GitHub ↗

Related Claude Code Skills

SkillBusiness Marketing

Seo Optimizer

Search Engine Optimization specialist for content strategy, technical SEO, keyword research, and ranking improvements. Use when optimizing website content, improving search rankings, conducting keyword analysis, or implementing SEO best practices. Expert in on-page SEO, meta tags, schema markup, and Core Web Vitals.

932 installsView →
SkillBusiness Marketing

Content Creator

Create SEO-optimized marketing content with consistent brand voice. Includes brand voice analyzer, SEO optimizer, content frameworks, and social media templates. Use when writing blog posts, creating social media content, analyzing brand voice, optimizing SEO, planning content calendars, or when user mentions content creation, brand voice, SEO optimization, social media marketing, or content strategy.

354 installsView →
SkillBusiness Marketing

Copywriting

When the user wants to write, rewrite, or improve marketing copy for any page — including homepage, landing pages, pricing pages, feature pages, about pages, or product pages. Also use when the user says "write copy for," "improve this copy," "rewrite this page," "marketing copy," "headline help," or "CTA copy." For email copy, see email-sequence. For popup copy, see popup-cro.

309 installsView →
SkillBusiness Marketing

Content Research Writer

Assists in writing high-quality content by conducting research, adding citations, improving hooks, iterating on outlines, and providing real-time feedback on each section. Transforms your writing process from solo effort to collaborative partnership.

238 installsView →
SkillBusiness Marketing

Marketing Strategy Pmm

Product marketing, positioning, GTM strategy, and competitive intelligence. Includes ICP definition, April Dunford positioning methodology, launch playbooks, competitive battlecards, and international market entry guides. Use when developing positioning, planning product launches, creating messaging, analyzing competitors, entering new markets, enabling sales, or when user mentions product marketing, positioning, GTM, go-to-market, competitive analysis, market entry, or sales enablement.

193 installsView →
SkillBusiness Marketing

Social Content

"When the user wants help creating, scheduling, or optimizing social media content for LinkedIn, Twitter/X, Instagram, TikTok, Facebook, or other platforms. Also use when the user mentions 'LinkedIn post,' 'Twitter thread,' 'social media,' 'content calendar,' 'social scheduling,' 'engagement,' or 'viral content.' This skill covers content creation, repurposing, and platform-specific strategies."

167 installsView →

Catalog data and component content are sourced from the open-source davila7/claude-code-templates project (MIT license). ToolZip curates the listing and writes original descriptions; every component links back to its original source. Claude Code is a product of Anthropic. ToolZip is an independent catalog and is not affiliated with or endorsed by Anthropic.