x-api
fetcher-sh/fetcher-skills
Search X posts, profiles, and trends via HTTP—no OAuth, no app review, pay-per-call in USDC or prepaid credits.
What is x-api?
A drop-in X (Twitter) data API for agents that fetches posts by keyword or advanced operators, resolves profiles by handle, pulls timelines and followers, reads Lists, and checks trends. Use it when you need X data without the official API's developer account, app review, or rate-limit tiers.
- Search posts by keyword, hashtag, or X advanced operators (from:, to:, since:, until:, min_faves:, filter:)
- Look up X profiles by @handle or numeric user ID, with extended bio/about info
- Fetch a user's posts, replies, followers, or followings
- Retrieve a single post with its replies and list of reposters
- Read X List members and posts, and check trending topics by country
- Search for X accounts by name or keyword
How to install x-api
npx skills add https://github.com/fetcher-sh/fetcher-skills --skill x-api- Fetcher.sh account with prepaid credits (Bearer key) or x402 payment setup for USDC on Base, Polygon, Arbitrum, Monad, or Solana
- FETCHER_API_KEY environment variable set (for prepaid mode) or x402 client configured (for pay-per-call)
How to use x-api
- 1.Set your FETCHER_API_KEY environment variable or configure x402 payment
- 2.Call GET /api/search with a query parameter to search posts (supports X operators like from:, since:, min_faves:)
- 3.Use GET /api/handle/{handle} to look up a profile by @handle, then GET /api/user/{id}/tweets to fetch their posts
- 4.Call GET /api/tweet/{id} to retrieve a single post, GET /api/tweet/{id}/replies for replies, or GET /api/tweet/{id}/retweeters for reposters
- 5.Use GET /api/trends?country=CountryName to check trending topics, or GET /api/list/{id}/tweets to read an X List's feed
Use cases
- Social listening and competitor monitoring by searching posts with specific keywords or from particular accounts
- Building X data pipelines for analysis without official API pricing tiers or approval delays
- Hashtag tracking and trend analysis across countries
- Exporting follower lists and analyzing user networks
- Resolving profile metadata and engagement metrics for individual posts
- Data analysts and researchers monitoring social media trends
- AI agents and automation tools needing X data integration
- Marketing and social-listening teams tracking brand mentions
- Developers building social-media dashboards without official API access
x-api FAQ
No. This is a third-party API alternative that requires only a Fetcher.sh account with prepaid credits or x402 payment setup.
Prepaid credits (purchased at fetcher.sh/topup) via Bearer key, or x402 pay-per-call in USDC on Base, Polygon, Arbitrum, Monad, or Solana.
All standard X operators: from:, to:, since:, until:, min_faves:, min_retweets:, filter:, and -filter: (negation).
Most endpoints cost $0.005 per call; fetching a single post by ID costs $0.002.
Yes—the API is designed for agents and includes MCP (Model Context Protocol) support at https://twitter.fetcher.sh/mcp.
Full instructions (SKILL.md)
Source of truth, from fetcher-sh/fetcher-skills.
name: x-api 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
- x-api
- twitter-api
- x-api-alternative
- twitter-api-alternative
- x-data-api
- 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-api — identical
endpoints, indexed under the "Twitter" name too since both are still in
everyday use.
Quick reference
| Base URL | https://twitter.fetcher.sh |
| Auth | Authorization: Bearer bby_live_... or x402 (USDC) |
| Price | $0.002–$0.005/call |
| Endpoints | 15, all GET |
| MCP | https://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 name | GET /api/search/users |
| Look up a profile by @handle | GET /api/handle/{handle} |
| Get a user's followers or followings | GET /api/user/{id}/followers or /followings |
| Get a single post by ID | GET /api/tweet/{id} |
| See who reposted a post | GET /api/tweet/{id}/retweeters |
| Read an X List's posts or members | GET /api/list/{id}/tweets or /members |
| Check trending topics for a country | GET /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)
| Endpoint | Price | What it returns |
|---|---|---|
/api/search | $0.005 | Posts matching a query; supports X's advanced search operators |
/api/search/users | $0.005 | Accounts matching a name/keyword query |
/api/handle/{handle} | $0.005 | Profile by @handle |
/api/handle/{handle}/about | $0.005 | Extended profile/about info by @handle |
/api/user/{id} | $0.005 | Profile by numeric user ID |
/api/user/{id}/tweets | $0.005 | A user's post timeline |
/api/user/{id}/replies | $0.005 | A user's replies |
/api/user/{id}/followers | $0.005 | A user's followers |
/api/user/{id}/followings | $0.005 | Accounts a user follows |
/api/tweet/{id} | $0.002 | A single post by ID |
/api/tweet/{id}/replies | $0.005 | Replies to a post |
/api/tweet/{id}/retweeters | $0.005 | Accounts that reposted a post |
/api/list/{id}/members | $0.005 | An X List's member accounts |
/api/list/{id}/tweets | $0.005 | An X List's post feed |
/api/trends | $0.005 | Trending 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 key402— payment required (x402 challenge) ortopup_required(credits exhausted)404— not a priced path- No rate limits; no refunds on upstream failures (settlement precedes delivery)
Reference
- Deep dives:
references/endpoints.md(every param) ·references/scenarios.md(onecurlper endpoint) ·references/faq.md·references/comparison.md(vs. the official X API and a browser scraper) - Task guides: search tweets · export followers
- Slash command:
/x-search - Full agent setup: https://twitter.fetcher.sh/skill.md
- OpenAPI 3.1 contract: https://twitter.fetcher.sh/openapi.json
- Condensed catalog: https://twitter.fetcher.sh/llms.txt
- Payment, credits, and MCP deep dive:
fetcherskill - Site: https://twitter.fetcher.sh
Related skills
More from fetcher-sh/fetcher-skills and the wider catalog.

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

yelp
Pay-per-call Yelp business search, details, and reviews via HTTP—no app approval or daily caps.

youtube-api
YouTube search, channel lookup, video details, and trending—pay-per-call via x402 or prepaid credits, no quota limits.

app-store
Search iOS apps, fetch details, reviews, and similar apps across any App Store country—pay-per-call in USDC or prepaid credits.

code-connect-components
Connects Figma design components to code components using Code Connect. Use when user says "code connect", "connect this component to code", "connect Figma to code", "map this component", "link component to code", "create code connect mapping", "add code connect", "connect design to code", or wants to establish mappings between Figma designs and code implementations. Requires Figma MCP server connection.

create-design-system-rules
Generate custom design system rules to guide AI agents in consistent Figma-to-code implementation.