Skip to main content
skill CX Codex

x-api — Claude Code skill: what it does, how to install

Query posts, profiles, followers, and trends on X without OAuth handshakes or developer reviews. The skill routes requests through 15 pay-per-call GET endpoints.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add fetcher-sh/fetcher-skills --skill x-api -a claude-code
Open on GitHub

What x-api does

This skill integrates an alternative X data source hosted at https://twitter.fetcher.sh. It exposes 15 GET endpoints costing between $0.002 and $0.005 per call. Agents can run keyword searches with advanced query syntax (from:, min_faves:, since:, -filter:replies), look up profiles by handle, grab replies, and inspect List feeds or country trends.

Access bypasses the official developer application pipeline and tier limits. Calls authenticate either with a prepaid Bearer key in FETCHER_API_KEY or through the x402 payment protocol using USDC on chains like Base, Polygon, Arbitrum, Monad, or Solana. Requests fail with HTTP 402 if neither payment method is present. A dedicated MCP interface is also served at https://twitter.fetcher.sh/mcp.

What it helps with

  • search X posts using advanced query operators
  • scrape user profiles, follower lists, and followings by handle or ID
  • retrieve individual posts along with replies and retweeters
  • inspect trending topics partitioned by country

Example prompts for the agent

  • Search X for popular posts mentioning AI agents with min_faves:500 via x-api
  • Fetch the bio and about info for handle @nasa from https://twitter.fetcher.sh
  • Get the follower list for user ID 11348282 using /api/user/{id}/followers

How to install x-api

1Skills CLI (Vercel)

npx skills add fetcher-sh/fetcher-skills --skill x-api -a claude-code

2Manually: put the files in place

~/.claude/skills/x-api/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/x-api/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about x-api

How to install x-api in Claude Code?

Run npx skills add fetcher-sh/fetcher-skills --skill x-api -a claude-code in your terminal. The configuration is saved to ~/.claude/skills/x-api/SKILL.md.

What does the x-api skill do?

It lets coding agents query live X data via 15 plain HTTP GET endpoints. You can search posts, pull user profiles, fetch replies, and read lists without an official X developer account.

How is usage billed?

Every request is paid individually at $0.002 for single posts and $0.005 for search or profiles. Settlement works with prepaid API keys or USDC microtransactions via x402.

Source text

SKILL.md · MIT
---
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
  - twitter
  - 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`](../twitter-api/SKILL.md) — 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`](references/endpoints.md).

## Authentication

Two ways to pay, same data — full mechanics in the [`fetcher`
skill](../fetcher/SKILL.md):

```bash
# 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:**

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

**Between two dates:**

```bash
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:**

```bash
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:**

```bash
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:**

```bash
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):**

```bash
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:**

```bash
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:**

```bash
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:**

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

## MCP

```json
{
  "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](../fetcher/SKILL.md) 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

- Deep dives: [`references/endpoints.md`](references/endpoints.md) (every
  param) · [`references/scenarios.md`](references/scenarios.md) (one `curl`
  per endpoint) · [`references/faq.md`](references/faq.md) ·
  [`references/comparison.md`](references/comparison.md) (vs. the official
  X API and a browser scraper)
- Task guides: [search tweets](../../task-guides/search-tweets.md) ·
  [export followers](../../task-guides/export-twitter-followers.md)
- Slash command: [`/x-search`](../../commands/x-search.md)
- 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: [`fetcher` skill](../fetcher/SKILL.md)
- Site: <https://twitter.fetcher.sh>

© fetcher-sh · MIT · fetcher-sh/fetcher-skills

Similar skills

All skills for Backend and APIs →

From the same set11

instagram-api This skill hands your agent 16 Instagram endpoints on fetcher.sh: profiles, posts, reels, hashtags. Pay per call or from a prepaid balance. CX Codex +1 6,700installs google-news This skill queries Google News through an HTTP API, covering keyword search, section headlines, and article-link decoding. Use it for topic or press monitoring. CX Codex +1 3,700installs google-maps This skill hands your agent place search, business details and reviews through fetcher.sh. Useful when a project needs points-of-interest data without a Google Cloud setup. CX Codex +1 3,700installs youtube-api This skill gives an agent YouTube search and data access through fetcher.sh. Use it for channel monitoring, video research, and trend tracking. CX Codex +1 3,700installs fetcher Shared payment and setup skill for fetcher.sh: API keys, credits, x402 micropayments and MCP server config. Meant to run before or alongside the per-service skills. CX Codex +1 3,700installs google-play The skill gives your agent HTTP access to Android app search, details, reviews and permissions. Useful for ASO research and competitor monitoring. CX Codex +1 3,600installs reddit-api This skill guides an agent through fetching Reddit posts, feeds, comments, and user profiles via fetcher.sh. Use it for keyword searches or to gather material for monitoring and analysis. CX Codex +1 3,600installs app-store This skill gives your agent search and detail access to iOS apps, reviews and developer catalogs through a paid HTTP API. CX Codex +1 3,600installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor