PluginBench
Skill
Review
Audit score 70

x-scraper

fetcher-sh/fetcher-skills

Search X posts, profiles, and trends via HTTP—no OAuth, no app review, pay-per-call or prepaid.

What is x-scraper?

A drop-in X (Twitter) data API for agents: search posts by keyword or advanced operators, look up profiles by handle, pull timelines and followers, read Lists, and check trends. No developer account or OAuth handshake required—authenticate with a prepaid Bearer key or pay per call in USDC via x402.

  • Search posts by keyword, hashtag, or X operators (from:, to:, since:, until:, min_faves:, filter:)
  • Look up X profiles by @handle and fetch extended profile/about info
  • Pull a user's posts, replies, followers, or followings by ID
  • Fetch a single post with its replies and list of reposters
  • Read X List members and posts by List ID
  • Search for X accounts by name and check trending topics by country

How to install x-scraper

npx skills add https://github.com/fetcher-sh/fetcher-skills --skill x-scraper
Prerequisites
  • A fetcher.sh prepaid API key (Bearer token) or x402 payment setup for pay-per-call access
  • Base URL: https://twitter.fetcher.sh
Claude Code
Cursor
Windsurf
Cline

How to use x-scraper

  1. 1.Set your FETCHER_API_KEY environment variable or configure x402 payment
  2. 2.Choose an endpoint based on your task: /api/search for posts, /api/handle/{handle} for profiles, /api/user/{id}/tweets for timelines, /api/trends for trending topics
  3. 3.Make a GET request with required parameters (query for search, country for trends, handle or ID for profiles)
  4. 4.Parse the JSON response { status, message, data } and extract the data field
  5. 5.Use cursor and sort parameters to paginate or reorder results as needed

Use cases

Good for
  • Build an X data pipeline or social-listening dashboard without official API tiers
  • Monitor competitor accounts and hashtag trends over time
  • Export follower lists and analyze engagement patterns
  • Search for posts matching specific criteria (date range, minimum favorites, author)
  • Resolve user profiles and retrieve their timeline or follower graph
Who it's for
  • Data analysts and researchers tracking social trends
  • Agents building competitive intelligence or brand-monitoring systems
  • Developers needing X data without OAuth or app-review delays
  • Teams running social-listening or sentiment-analysis workflows

x-scraper FAQ

Do I need an X developer account or OAuth?

No. This API requires only a prepaid fetcher.sh key or x402 payment—no app review or developer application needed.

What are the costs?

Most endpoints cost $0.005 per call; fetching a single tweet by ID costs $0.002. Prepaid credits or x402 USDC payments on Base, Polygon, Arbitrum, Monad, or Solana.

What search operators does /api/search support?

All standard X operators: from:, to:, since:, until:, min_faves:, min_retweets:, filter:, and -filter: (negation).

Can I paginate large result sets?

Yes. Use the cursor parameter to paginate through results, and sort parameter (Latest or Top) to reorder.

Is there an MCP interface?

Yes. The skill publishes an MCP server at https://twitter.fetcher.sh/mcp with free endpoints (search_endpoints, describe_endpoint, check_balance) and paid data-fetch operations.

Full instructions (SKILL.md)

Source of truth, from fetcher-sh/fetcher-skills.


name: x-scraper description: >- An X API alternative and Twitter API alternative on fetcher.sh — pay-per-call in USDC via x402, or prepaid credits with a Bearer key, no OAuth and no developer application. Use when the user wants to search X posts by keyword, hashtag, or advanced operators (from:, to:, since:, until:, min_faves:, filter:), scrape an X/Twitter profile by handle, pull a user's posts, replies, followers, or followings, fetch a single post with its replies or reposters, read an X List's members or posts, check trending topics by country, or search for X accounts by name. Also covers building an X data pipeline, social listening, competitor monitoring, hashtag tracking, or follower export without the official X API's pricing tiers or app-review process. keywords:

  • x
  • twitter
  • x-api
  • twitter-api
  • x-api-alternative
  • twitter-api-alternative
  • x-data-api
  • x-scraper
  • social-media
  • social-listening
  • x402
  • ai-agent

X (Twitter) Data API

A drop-in X data source for agents: search posts, resolve profiles, pull timelines and followers, read Lists, and check trends — all as one plain HTTP GET, paid per call. No developer account, no app review, no OAuth handshake, and no waiting on X's own API tiers or rate-limit approvals. If your task mentions an X search query, a handle, a post/tweet ID, or a list ID, this is the skill.

Base URL: https://twitter.fetcher.sh — the API host is still named twitter (it predates the rebrand and matches what agents already search for); everything below is current X data.

Also published as twitter-scraper — identical endpoints, indexed under the "Twitter" name too since both are still in everyday use.

Quick reference

Base URLhttps://twitter.fetcher.sh
AuthAuthorization: Bearer bby_live_... or x402 (USDC)
Price$0.002–$0.005/call
Endpoints15, all GET
MCPhttps://twitter.fetcher.sh/mcp
Machine-readable/openapi.json · /llms.txt · /skill.md

Which endpoint do I need?

I want to...Call
Search posts by keyword or operator (from:, since:, min_faves:, ...)GET /api/search
Search accounts by nameGET /api/search/users
Look up a profile by @handleGET /api/handle/{handle}
Get a user's followers or followingsGET /api/user/{id}/followers or /followings
Get a single post by IDGET /api/tweet/{id}
See who reposted a postGET /api/tweet/{id}/retweeters
Read an X List's posts or membersGET /api/list/{id}/tweets or /members
Check trending topics for a countryGET /api/trends

Full param details for every row: references/endpoints.md.

Authentication

Two ways to pay, same data — full mechanics in the fetcher skill:

# 1. Prepaid credits (recommended — get a key at https://fetcher.sh/topup
#    or via POST /api/credits/topup, see the fetcher skill)
export FETCHER_API_KEY="bby_live_xxxxxxxxxxxx"
curl -H "Authorization: Bearer $FETCHER_API_KEY" \
  "https://twitter.fetcher.sh/api/search?query=hello"

# 2. x402 pay-per-call — omit the header; a GET with no payment returns 402
#    with machine-readable payment requirements (USDC on Base, Polygon,
#    Arbitrum, Monad, or Solana). @x402/fetch signs and retries automatically.

Every response is { "status": number, "message": string, "data": ... }; the HTTP status mirrors status.

Endpoints (15 — all GET, $0.005/call unless noted)

EndpointPriceWhat it returns
/api/search$0.005Posts matching a query; supports X's advanced search operators
/api/search/users$0.005Accounts matching a name/keyword query
/api/handle/{handle}$0.005Profile by @handle
/api/handle/{handle}/about$0.005Extended profile/about info by @handle
/api/user/{id}$0.005Profile by numeric user ID
/api/user/{id}/tweets$0.005A user's post timeline
/api/user/{id}/replies$0.005A user's replies
/api/user/{id}/followers$0.005A user's followers
/api/user/{id}/followings$0.005Accounts a user follows
/api/tweet/{id}$0.002A single post by ID
/api/tweet/{id}/replies$0.005Replies to a post
/api/tweet/{id}/retweeters$0.005Accounts that reposted a post
/api/list/{id}/members$0.005An X List's member accounts
/api/list/{id}/tweets$0.005An X List's post feed
/api/trends$0.005Trending topics for a country

{id} / {handle} are path parameters — substitute the real value. Optional query params (cursor, sort) paginate or reorder; only query (search) and country (trends) are required elsewhere they appear.

Scenarios

The query on /api/search goes straight to X's own search, so its operators work as-is: from:, to:, since:, until:, min_faves:, min_retweets:, filter:, -filter:.

Everything from one account:

curl -H "Authorization: Bearer $FETCHER_API_KEY" \
  "https://twitter.fetcher.sh/api/search?query=from%3AOpenAI&sort=Latest"

Between two dates:

curl -H "Authorization: Bearer $FETCHER_API_KEY" \
  --data-urlencode "query=x402 since:2026-01-01 until:2026-02-01" -G \
  "https://twitter.fetcher.sh/api/search"

Popular posts only, replies excluded:

curl -H "Authorization: Bearer $FETCHER_API_KEY" \
  --data-urlencode "query=ai agents min_faves:500 -filter:replies" -G \
  --data-urlencode "sort=Top" \
  "https://twitter.fetcher.sh/api/search"

Search accounts by name:

curl -H "Authorization: Bearer $FETCHER_API_KEY" \
  --data-urlencode "query=climate scientist" -G \
  "https://twitter.fetcher.sh/api/search/users"

Resolve a profile by handle, then pull its bio/about:

curl -H "Authorization: Bearer $FETCHER_API_KEY" \
  "https://twitter.fetcher.sh/api/handle/nasa"

curl -H "Authorization: Bearer $FETCHER_API_KEY" \
  "https://twitter.fetcher.sh/api/handle/nasa/about"

A user's posts, replies, followers, or followings (by numeric ID from the handle lookup above):

curl -H "Authorization: Bearer $FETCHER_API_KEY" \
  "https://twitter.fetcher.sh/api/user/11348282/tweets"

curl -H "Authorization: Bearer $FETCHER_API_KEY" \
  "https://twitter.fetcher.sh/api/user/11348282/followers"

A single post, its replies, and who reposted it:

curl -H "Authorization: Bearer $FETCHER_API_KEY" \
  "https://twitter.fetcher.sh/api/tweet/1234567890123456789"

curl -H "Authorization: Bearer $FETCHER_API_KEY" \
  "https://twitter.fetcher.sh/api/tweet/1234567890123456789/replies"

curl -H "Authorization: Bearer $FETCHER_API_KEY" \
  "https://twitter.fetcher.sh/api/tweet/1234567890123456789/retweeters"

An X List's members and posts:

curl -H "Authorization: Bearer $FETCHER_API_KEY" \
  "https://twitter.fetcher.sh/api/list/1234567890/members"

curl -H "Authorization: Bearer $FETCHER_API_KEY" \
  "https://twitter.fetcher.sh/api/list/1234567890/tweets"

Trending topics for a country:

curl -H "Authorization: Bearer $FETCHER_API_KEY" \
  "https://twitter.fetcher.sh/api/trends?country=United%20States"

MCP

{
  "mcpServers": {
    "x": {
      "url": "https://twitter.fetcher.sh/mcp",
      "headers": { "Authorization": "Bearer bby_live_..." }
    }
  }
}

Free: search_endpoints, describe_endpoint, check_balance. Paid: fetch_data (any endpoint above), topup_credits, plus the named shortcut twitter_search. Drop the headers block to pay per call with x402 instead — see the fetcher skill for the full flow.

Errors

  • 400 — missing/invalid parameter (message names it)
  • 401 — unknown or rotated key
  • 402 — payment required (x402 challenge) or topup_required (credits exhausted)
  • 404 — not a priced path
  • No rate limits; no refunds on upstream failures (settlement precedes delivery)

Reference