Skip to main content
GET
X article API for long-form tweet & post content
5 credits per call · All plans from $0.00012/credit · Direct MPP: USD 0.00075 per call
Get X Article returns one long-form X Article by wrapper tweet ID. It is also useful as an X article API, Twitter article API, tweet article API, long-form post API, or article body endpoint. The canonical endpoint remains GET /api/v1/x/articles/{tweetId}.
The examples shape durable article handoff rows instead of raw lookup dumps. Use GET /api/v1/x/articles/{tweetId} when a workflow needs one long-form post body plus article metadata. Store tweet_id, article_title, preview_text, author_id, author_username, author_name, author_profile_picture, created_at, cover_image_url, and body_text with the downstream record. Store block_count, block_types, formatted_blocks, and media_urls when your archive, article index, or agent handoff needs block-level completeness and formatting checks.

Find candidate articles

Use this endpoint after you have the numeric wrapper tweet ID for an X Article. When a workflow starts from a mixed set of tweets, search first, store candidate tweet IDs, then try the article lookup once per candidate.

Search first

Use Search tweets to find candidate wrapper tweets by author, keyword, URL, or visible tweet text.

Article lookup

Call GET /api/v1/x/articles/{tweetId} with the candidate tweet ID when the workflow needs the long-form body.

Fallback route

If the response is article_not_found, store the terminal result and switch to Get tweet or Get tweet thread.

Saved export

Use article_extractor when the workflow needs an extraction job, estimate, or CSV/JSON/XLSX export.

Direct article handoff

Use GET /api/v1/x/articles/{tweetId} when you have the numeric tweet ID for an X Article wrapper tweet and need the article body. Use the final status ID from an X Article URL. A normal tweet ID can be valid and still return 404 article_not_found when it is not an X Article.

Article row

Store article.title, previewText, coverImageUrl, createdAt, metrics, and a derived body_text field.

Body blocks

Store article.contents[] when you need headings, lists, quotes, media, dividers, code blocks, and inline styles.

Author joins

Store author.id, username, name, and profilePicture when returned.

Media assets

Store coverImageUrl and media-block url values for article archives and article review.

Not an article

Treat article_not_found as a terminal lookup result for that tweet ID. Ask for an X Article URL or use a tweet/thread endpoint.

Saved exports

Use article_extractor when you need a saved extraction job or CSV, JSON, or XLSX export.

Store an X article archive

Preserve the wrapper Tweet ID, article fields, structured content blocks, author, cover image, and collection time. Keep article.contents[] when the archive must reconstruct headings, lists, quotes, media, dividers, or code. Direct article reads cost 5 credits per successful call. For MPP callers, this endpoint is billed as a fixed charge at USD 0.00075 per call.

Path parameters

string
required
Numeric tweet ID of the X Article, 15-20 digits. If you have a tweet URL, use the final status ID. Regular tweet URLs can return article_not_found.

Which article endpoint?

X article body

Use GET /x/articles/{tweetId} for the title, body blocks, cover image, metrics, and author fields of one X Article.

Single tweet

Use Get tweet for one tweet’s text, media, author, and engagement metrics.

Tweet thread

Use Get tweet thread for conversation context around the article wrapper tweet.

Search tweets

Use Search tweets to discover candidate article tweets by keyword, URL, author, or other filters.

Saved exports

Use Create extraction with toolType=article_extractor when you need a saved job or CSV, JSON, or XLSX export.

Article-not-found handling

Do not retry the same ID after article_not_found; switch to tweet lookup or ask for an X Article URL.

Headers

string
Full account key. Sessions and OAuth also work.
string
Bearer xq_your_guest_key_here authenticates paid_reads guest keys. Direct MPP uses the Payment ... credential. Get it from the WWW-Authenticate: Payment challenge.

Response

200 OK

object
The article data. Article object fields.
string
Article title.
string
Short preview/summary text of the article.
string
Cover thumbnail image URL.
string
Plain text joined from all article content blocks. Omitted if unavailable.
object[]
Article body as an array of content blocks. Content block fields.
string
Block type: paragraph, header-one, header-two, header-three, header-four, header-five, header-six, ordered-list-item, unordered-list-item, blockquote, code-block, media, or divider.
string
Text content for text-based blocks.
string
Media URL for media blocks.
string
Preview image URL for media blocks.
number
Image width in pixels.
number
Image height in pixels.
object[]
Inline text formatting. Style range fields.
number
Character offset where the style starts.
number
Number of characters the style spans.
string
Draft.js style token such as BOLD or ITALIC.
string
Article creation timestamp.
number
Like count.
number
Reply count.
number
Quote tweet count.
number
View count.
object
The article author. Omitted if author data is unavailable. Author object fields.
string
Author user ID.
string
Author X username.
string
Author display name.
string
Profile picture URL. Omitted if unavailable.
string
Author bio. Omitted if unavailable.
string
Profile location. Omitted if unavailable.
string
Profile website URL. Omitted if unavailable.
string
Account creation timestamp. Omitted if unavailable.
number
Follower count. Omitted if unavailable.
number
Following count. Omitted if unavailable.
number
Posted tweet count. Omitted if unavailable.
number
Media post count. Omitted if unavailable.
number
Liked tweet count. Omitted if unavailable.
string
Profile banner URL. Omitted if unavailable.
boolean
Whether the account has X Premium verification. Omitted if unavailable.
boolean
Normalized verification status. Omitted if unavailable.
boolean
Whether the account is an X translator. Omitted if unavailable.
boolean
Whether the account protects its posts. Omitted if unavailable.

400 Invalid tweet ID

The provided tweet ID is empty or not a valid format.

401 Unauthenticated

Missing or invalid API key. Check the x-api-key header value.

402 Payment required

Account keys get account options; guest keys get guest top-up only. Anonymous calls receive a direct MPP WWW-Authenticate: Payment challenge plus a guest wallet creation action. No checkout starts automatically. Confirm any payment action.

404 Article not found

The tweet is valid but does not contain an X Article.

502 X API unavailable

The read service returned an error. Retry after a short delay.

429 Rate limit exceeded

Your tier rate limit was exceeded. Wait for the Retry-After header before retrying.

424 Dependency failed

The normalized v1 response contract can return 424 when the read service is unavailable.