X / Twitter Article API
Get a public X long-form article from its wrapper post URL, including its author, engagement, cover image, and structured content blocks.
Try it
Make your first request
{
"data": {
"author": {
"avatarUrl": "https://example.com/image.jpg",
"bio": "A short example description of this item.",
"blueVerified": true,
"coverUrl": "https://example.com/page",
"createdUtc": 12.5,
"followers": 12500,
"following": 12500,
"handle": "alex_rivera",
"id": "a1b2c3d4",
"location": "example",
"name": "Example title",
"url": "https://example.com/page",
"verified": true
},
"contentBlocks": [
{
"entities": [
{
"key": 42,
"length": 180,
"offset": 42
}
],
"height": 42,
"image": "https://example.com/image.jpg",
"inlineStyles": [
{
"length": 180,
"offset": 42,
"style": "example"
}
],
"text": "A short example description of this item.",
"type": "general",
"width": 1024
}
],
"coverImage": "https://example.com/image.jpg",
"createdUtc": 12.5,
"id": "a1b2c3d4",
"likes": 12500,
"previewText": "A short example description of this item.",
"quotes": 42,
"replies": 42,
"title": "Example title",
"views": 12500
},
"found": true
}interface TwitterArticleResponse {
data: {
author: {
avatarUrl?: string;
bio?: string;
blueVerified?: boolean;
coverUrl?: string;
createdUtc?: number;
followers?: number;
following?: number;
handle: string;
id: string;
location?: string;
name?: string;
url: string;
verified?: boolean;
};
contentBlocks: {
entities?: {
key: number;
length: number;
offset: number;
}[];
height?: number;
image?: string;
inlineStyles?: {
length: number;
offset: number;
style: string;
}[];
text?: string;
type: string;
width?: number;
}[];
coverImage?: string;
createdUtc: number;
id: string;
likes?: number;
previewText?: string;
quotes?: number;
replies?: number;
title: string;
views?: number;
} | null;
found: boolean;
}Full parameter and response reference - every field, type, and example for this endpoint.
Reference
Request, response, and price
Last verified 2026-09-16 · uptime and latency measured over 30dcurl -X POST https://api.getanyapi.com/v1/run/twitter.article \
-H "Authorization: Bearer $ANYAPI_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://x.com/Decentralisedco/status/1905545699552375179"}'| Field | Type | Example value |
|---|---|---|
| Request body | ||
| url | string | "https://x.com/Decentralisedco/status/1905545699552375179"Canonical x.com or twitter.com URL of the public wrapper post for an X Article. |
| Response | ||
| data | object | Normalized public article, or null when the wrapper post is not an article. |
| data.author | object | Article author profile at retrieval time. Populated whenever the provider has data for the entity. |
| data.author.avatarUrl | string | Profile avatar image URL. |
| data.author.bio | string | Profile biography. |
| data.author.blueVerified | boolean | Whether the account has X blue verification. |
| data.author.coverUrl | string | Profile cover image URL when available. |
| data.author.createdUtc | number | UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. |
| data.author.followers | integer | Follower count at retrieval time. |
| data.author.following | integer | Following count at retrieval time. |
| data.author.handle | string | Current X handle without @. Populated whenever the provider has data for the entity. |
| data.author.id | string | Stable numeric X user ID. Populated whenever the provider has data for the entity. |
| data.author.location | string | Self-reported profile location. |
| data.author.name | string | Profile display name. |
| data.author.url | string | Canonical public X profile URL. Populated whenever the provider has data for the entity. |
| data.author.verified | boolean | Whether the account has legacy verification. |
| data.contentBlocks | object[] | Ordered, explicitly normalized article blocks. Unknown future block types remain representable through type and optional fields. Populated whenever the provider has data for the entity. |
| data.contentBlocks[].entities | object[] | Entity references within the block text. |
| data.contentBlocks[].entities[].key | integer | Upstream entity table key. |
| data.contentBlocks[].entities[].length | integer | Entity character length. |
| data.contentBlocks[].entities[].offset | integer | Zero-based character offset. |
| data.contentBlocks[].height | integer | Image height in pixels when supplied. |
| data.contentBlocks[].image | string | Canonical image URL for an image block. |
| data.contentBlocks[].inlineStyles | object[] | Formatting ranges within the block text. |
| data.contentBlocks[].inlineStyles[].length | integer | Formatted character length. |
| data.contentBlocks[].inlineStyles[].offset | integer | Zero-based character offset. |
| data.contentBlocks[].inlineStyles[].style | string | Inline style name reported by X. |
| data.contentBlocks[].text | string | Text content for a text-bearing block. |
| data.contentBlocks[].type | string | Block type reported by X, such as unstyled, header-two, image, divider, blockquote, or list item. Populated whenever the provider has data for the entity. |
| data.contentBlocks[].width | integer | Image width in pixels when supplied. |
| data.coverImage | string | Canonical article cover image URL when available. |
| data.createdUtc | number | UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity. |
| data.id | string | Stable X Article entity ID. Populated whenever the provider has data for the entity. |
| data.likes | integer | Wrapper post like count at retrieval time. |
| data.previewText | string | Preview text supplied by X. |
| data.quotes | integer | Wrapper post quote count at retrieval time. |
| data.replies | integer | Wrapper post reply count at retrieval time. |
| data.title | string | Article title. Populated whenever the provider has data for the entity. |
| data.views | integer | Wrapper post view count at retrieval time. |
| found | boolean | True when the wrapper post contains a public X Article. |
| Price | ||
| Price per request | USD | $0.00075 |
| Price /1k req | USD | $0.75 |
FAQ
About the X / Twitter Article API
The AnyAPI X / Twitter Article API returns X / Twitter article data as normalized JSON from one POST call to /v1/run/twitter.article. Get a public X long-form article from its wrapper post URL, including its author, engagement, cover image, and structured content blocks. AnyAPI returns one normalized schema whichever source serves it. It costs from $0.75 per 1,000 requests, in US dollars with no subscription and no monthly minimum. Over the last 30 days, 98.2% of X / Twitter article calls through AnyAPI succeeded, with a median response time of 1.9 seconds across 279 measured calls.