ReadX is a read-only X/Twitter JSON API. Profiles, timelines, tweets, search, lists, followers & following — pay per call with x402 micropayments in USDC on Base or Solana. No API keys.
Price
from $0.0100
up to $0.0500 per request
Network
base
Category
search
On-chain txns
0
Uptime
100%
Avg latency
81ms
Checks
79
Status
Healthy
Discovered from on-chain x402 payment activity. Prices shown are per-call in USDC.
Account info: join date, base location, verification, username changes. Example: GET /api/jack/about
Account info: join date, base location, verification, username changes. Example: GET /api/jack/about
Accounts affiliated with a user (e.g. an organization's members). Example: GET /api/jack/affiliates
A user's followers (~200 per page; paginate with cursor until has_more is false). Example: GET /api/jack/followers
A user's followers (~200 per page; paginate with cursor until has_more is false). Example: GET /api/jack/followers
Accounts a user follows (~200 per page; paginate with cursor until has_more is false). Example: GET /api/jack/following
Accounts a user follows (~200 per page; paginate with cursor until has_more is false). Example: GET /api/jack/following
Resolve an @handle to its numeric user id. Example: GET /api/jack/id
A list's metadata by owner @handle and list slug. Example: GET /api/jack/lists/engineering
A list's metadata by owner @handle and list slug. Example: GET /api/jack/lists/engineering
Tweets that mention a user (paginate with cursor until has_more is false). Example: GET /api/jack/mentions
Just the user's pinned tweet, if any. Example: GET /api/jack/pinned
Just the user's pinned tweet, if any. Example: GET /api/jack/pinned
Full profile: bio, counts, banner, pinned tweet and a photo rail. Example: GET /api/jack/profile
A single tweet with its full conversation: tweets before, after and replies. Example: GET /api/jack/status/20
A tweet's edit history: the latest version plus every prior revision. Example: GET /api/jack/status/20/history
A single tweet with its full conversation: tweets before, after and replies. Example: GET /api/jack/tweets/20
A tweet's edit history: the latest version plus every prior revision. Example: GET /api/jack/tweets/20/history
A user's verified followers (~200 per page; paginate with cursor until has_more is false). Example: GET /api/jack/verified_followers
A user's timeline filtered to tweets with media. Example: GET /api/jack/with_media
A user's timeline including their replies. Example: GET /api/jack/with_replies
A user's timeline including their replies. Example: GET /api/jack/with_replies
An X article by its entity rest_id (owner-only; requires auth_token). Example: GET /api/article-entities/1?auth_token=…
An X article (long-form post) by its wrapper tweet id (public). Example: GET /api/articles/1
An X article (long-form post) by its wrapper tweet id (public). Example: GET /api/articles/1
A Spaces / broadcast: title, state, watch count, replay m3u8. Example: GET /api/broadcasts/1
Tweet search for a hashtag. Same as `/api/search?q=%23tag`. Example: GET /api/hashtag/typescript
A list's metadata (name, owner, description, member count). Example: GET /api/lists/1
A list's metadata (name, owner, description, member count). Example: GET /api/lists/1
The users that belong to a list. Example: GET /api/lists/1/members
The users that belong to a list. Example: GET /api/lists/1/members
The combined timeline of every account in a list. Example: GET /api/lists/1/timeline
The combined timeline of every account in a list. Example: GET /api/lists/1/timeline
Search tweets. Start the query with @ (or add f:user) to search users instead. Example: GET /api/search?q=typescript
Search for tweets by query (optional product filter; paginate with cursor). Example: GET /api/search/tweets?q=typescript
Search for users by query (paginate with cursor until has_more is false). Example: GET /api/search/users?q=jack
A single tweet on its own, without the surrounding conversation. Example: GET /api/status/20
Resolve an @handle to its numeric user id. Example: GET /api/tools/get_user_id?username=jack
Resolve a numeric user id to its current @username. Example: GET /api/tools/get_username?user_id=12
A single tweet on its own, without the surrounding conversation. Example: GET /api/tweets/20
# one-time setup
npx @apihubio/cli register
npx @apihubio/cli topup 10
# call it
npx @apihubio/cli call https://readx.sh \
-X POST \
-d '{ /* check provider docs for input */ }'
# or save it to Claude/Cursor/Codex
npx @apihubio/cli install
npx @apihubio/cli add https://readx.shimport { wrapFetchWithPayment } from "@x402/fetch";
import { createWalletClient, http } from "viem";
import { privateKeyToAccount } from "viem/accounts";
import { base } from "viem/chains";
const account = privateKeyToAccount("0xYOUR_PRIVATE_KEY");
const client = createWalletClient({ account, chain: base, transport: http() });
const x402Fetch = wrapFetchWithPayment(client);
const res = await x402Fetch("https://readx.sh", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ /* check provider docs for input */ }),
});
const data = await res.json();This is an external service not operated by APIHub. Listing data is sourced from public on-chain records and third-party indexes. Payment goes directly to the service provider via the x402 protocol. APIHub does not guarantee availability, accuracy, or quality of external services.