본문으로 건너뛰기
cccskills
무료GitHub에 공개

x-twitter-scraper

Build integrations that use Xquik to search X posts, retrieve profiles and followers, monitor accounts, and draw giveaway winners. Includes API authentication, bulk extraction with cost estimates, real-time notifications, and MCP connections for agent access.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

원문원문 설명 보기

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 (Twitter)
설치 방법 보기

이럴 때 유용합니다

  • Searching posts and researching user profiles
  • Extracting follower lists for CSV export
  • Receiving notifications about account activity
  • Drawing giveaway winners from post replies

포함된 파일(1)

  • SKILL.md9.1 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

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 /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 /extractions with thread_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

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Create interactive 3D scenes for websites, including product views and scroll-driven animations. Covers choosing Three.js, React Three Fiber, or Spline, preparing lightweight models, showing loading progress, and adapting experiences for mobile devices.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Building an interactive 3D product configurator
  • Adding 3D scenes to a portfolio
  • Animating models and cameras as visitors scroll
davila7/claude-code-templates3.3만2026년 10월 18일 업데이트

Plan A/B tests that compare page or product changes, with clear hypotheses, sample sizes, success metrics, and traffic allocation. Get a structured test plan and guidance for interpreting results and deciding what to try next.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Comparing signup button copy
  • Planning a pricing page experiment
  • Estimating sample size and test duration
davila7/claude-code-templates3.3만2026년 10월 18일 업데이트

Prepare an academic CV for faculty, postdoctoral, or research applications. Organize publications, grants, teaching, and research experience, with section order and formatting adapted to the role and academic field.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Preparing a CV for faculty applications
  • Updating a CV for postdoctoral applications
  • Organizing publications and research funding
davila7/claude-code-templates3.3만2026년 10월 18일 업데이트

Audit and improve web accessibility using WCAG 2.1 guidelines. Covers image descriptions, color contrast, keyboard controls, forms, and screen reader support, with code examples and automated and manual checks to guide fixes.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Auditing accessibility before a website launch
  • Improving keyboard navigation
  • Fixing form labels and error announcements
davila7/claude-code-templates3.3만2026년 10월 18일 업데이트

Audit websites for accessibility barriers and improve image descriptions, color contrast, forms, keyboard navigation, and screen reader support. Provides code examples and automated and manual testing guidance for work toward WCAG 2.1 AA or AAA accessibility standards.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Auditing a website for accessibility issues
  • Fixing form labels and error announcements
  • Checking keyboard navigation and dialog focus
davila7/claude-code-templates3.3만2026년 10월 18일 업데이트

Design autonomous agents for Claude Code plugins, including when they should run, what tools they may use, and how they should respond. Provides configuration templates, prompt guidance, and validation steps for creating agent files.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Create a code review agent
  • Refine examples that trigger an agent
  • Limit the tools an agent can use
davila7/claude-code-templates3.3만2026년 10월 18일 업데이트

davila7의 스킬 모두 보기

이 스킬의 문제 신고