An X article (long-form post) by its wrapper tweet id (public)
An X article (long-form post) by its wrapper tweet id (public). Example: GET /api/articles/1
10000 (raw units)
price
1
calls / 30d
1
unique payers
2026-08-25
updated
Provider
readx.sh · discovered, not yet claimed by its owner
Payment (x402 accepts[])
[
{
"scheme": "exact",
"network": "eip155:8453",
"payTo": "0x13E060ADcc6F4b731Da8382B333027B8B2bfF707",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"amount": "10000",
"maxTimeoutSeconds": 300
},
{
"scheme": "exact",
"network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
"payTo": "CHHWRYyo8exGvcLGn3AxzHEZseLZDTnq3FaYkzZVQDQr",
"asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"amount": "10000",
"maxTimeoutSeconds": 300
}
]Output schema
{
"bazaar": {
"info": {
"input": {
"method": "GET",
"pathParams": {
"id": "2092302780379574675"
},
"queryParams": {},
"type": "http"
},
"output": {
"example": {
"code": 0,
"data": {
"article": {
"author": {
"canDm": true,
"coverPicture": "https://pbs.twimg.com/profile_banners/12/1742427520",
"createdAt": "Tue Mar 21 20:50:14 +0000 2006",
"description": "no state is the best state",
"favouritesCount": 39746,
"followers": 10342967,
"following": 3,
"id": "12",
"isBlueVerified": true,
"isVerified": false,
"location": "",
"mediaCount": 2968,
"name": "jack",
"pinnedTweetIds": [
"1833951636005552366"
],
"profilePicture": "https://pbs.twimg.com/profile_images/1661201415899951105/azNjKOSH_normal.jpg",
"statusesCount": 30715,
"twitterUrl": "https://twitter.com/jack",
"type": "user",
"url": "https://x.com/jack",
"userName": "jack",
"verifiedType": null
},
"contents": [
{
"text": "At Sequoia, we see that speed is the best predictor of start-up success. Most companies are focused on AI as a productivity enhancer. Few are focused on the potential of AI to change how we work together. Block is showing what it looks like to fundamentally rethink organization design, ultimately harnessing AI to increase speed as a compounding competitive advantage.",
"type": "unstyled"
},
{
"text": "Two thousand years before the first corporate org chart, the Roman Army solved a problem that every large organization still faces: how do you coordinate thousands of people across vast distances with limited communication?",
"type": "unstyled"
}
],
"cover_media_img_url": "https://pbs.twimg.com/media/HEv7_K5WIAEcknc.jpg",
"createdAt": "Tue Mar 31 15:36:22 +0000 2026",
"id": "QXJ0aWNsZUVudGl0eToyMDM4OTk4NDgzNDQxNDc5Njgw",
"likeCount": 11056,
"preview_text": "At Sequoia, we see that speed is the best predictor of start-up success. Most companies are focused on AI as a productivity enhancer. Few are focused on the potential of AI to change how we work",
"quoteCount": 789,
"replyCount": 567,
"title": "From Hierarchy to Intelligence",
"viewCount": 6451994
},
"msg": "success",
"status": "success"
}
},
"type": "json"
}
},
"routeTemplate": "/api/articles/:id",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"method": {
"enum": [
"GET"
],
"type": "string"
},
"pathParams": {
"type": "object"
},
"queryParams": {
"properties": {
"id": {
"description": "The wrapper tweet id for the article (public lookup).",
"minLength": 1,
"type": "string"
}
},
"required": [
"id"
],
"type": "object"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method"
],
"type": "object"
},
"output": {
"properties": {
"example": {
"type": "object"
},
"type": {
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}
}
}Use it
curl
curl "https://readx.sh/api/articles/:id" # -> 402 Payment Required, accepts[] lists how to pay # retry with a PAYMENT-SIGNATURE (or PAYMENT header) once paid
JavaScript
const res = await fetch("https://readx.sh/api/articles/:id");
if (res.status === 402) {
const { accepts } = await res.json();
// pay one of accepts[] via an x402 client, then retry with the payment header
}Python
import httpx
res = httpx.get("https://readx.sh/api/articles/:id")
if res.status_code == 402:
accepts = res.json()["accepts"]
# pay one of accepts[] via an x402 client, then retry with the payment headerMachine-readable
Everything on this page is also available as clean JSON at /resources/973.json, and this resource appears in /discovery/resources and /discovery/search.