POST /v1/x/postX (Twitter) Post Scraper API
A single X post (tweet) by URL or ID: text, author, reply/quote/retweet info, media and engagement counts including views.
- Cost
- 1 credit
- Failed requests
- Refunded
- Cache hits
- Free
- Response fields
- 20
- Limits
- Public posts only
What the X (Twitter) Post Scraper API does
The X (Twitter) Post Scraper API returns a single public post (tweet) by URL or ID: text, language, creation time, author, reply, quote and retweet information, media with image and video URLs, and the engagement numbers: replies, reposts, quotes, likes, bookmarks and views. It is the building block for archiving posts with their metrics, reporting on campaign posts and validating links that users submit to your product. Send the post URL, or the ID as a string: post IDs are larger than JSON numbers can represent exactly, so numeric IDs are rejected. No paid X API tier is needed. Each request costs 1 credit.
What you get
Top-level fields of the response. Every field is typed and documented; nullable fields are null when the platform does not show them.
| Field | Type | Description |
|---|---|---|
id | string | Tweet ID (original tweet if a retweet) |
link | string | null | https://x.com/<author>/status/<id> |
text | string | Full text (long-form note text if present) |
lang | string | null | Language code detected by X |
created_at | string | null | Post time, X legacy date format |
author_username | string | null | Author screen name |
is_pinned | boolean | Always false for this endpoint |
is_retweet | boolean | Tweet is a retweet |
retweeted_from | string | null | Original author's username when retweet |
is_reply | boolean | Tweet is a reply |
in_reply_to | string | null | Screen name being replied to |
is_quote | boolean | Tweet quotes another tweet |
quoted | object | null | Quoted tweet summary |
reply_count | integer | null | Number of replies |
retweet_count | integer | null | Number of retweets |
quote_count | integer | null | Number of quote tweets |
like_count | integer | null | Number of likes |
bookmark_count | integer | null | Number of bookmarks |
view_count | integer | null | Number of views |
media | array<object> (6 fields each) | Attached media; empty array if none |
Request example
Send the API key as a Bearer token. The body is a small JSON object.
curl -X POST https://api.scrapeeverything.com/v1/x/post \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://x.com/jack/status/20"}'| Parameter | Required | Description |
|---|---|---|
url | No | Tweet URL (a bare tweet ID also works). |
id | No | Tweet ID; used only when url is empty. |
What it costs
Each successful request costs 1 credit. Your first 100 credits are free. With credit packs, 1,000 requests to this endpoint cost:
Builder pack
$1.56
25,000 credits for $39.00
Growth pack
$1.19
100,000 credits for $119.00
Scale pack
$0.90
500,000 credits for $449.00
See pricing for all packs and rate limits.
Use cases
- Report on campaign posts with views, likes, reposts and bookmarks.
- Archive posts with their media and engagement for compliance or research.
- Unfurl and validate X links that users paste into your app.
Limitations: Unofficial API: not affiliated with or endorsed by the platform. Public data only, as a logged-out visitor sees it. Timelines return recent posts only (up to 60); protected accounts and posts X hides from logged-out visitors are missing.
- Send id as a string. Post IDs are larger than JSON numbers can hold exactly; numeric IDs are rejected.
Questions
Why must the ID be a string?
X post IDs are larger than JSON numbers can hold exactly, so numeric IDs would be corrupted. Send the URL or the ID as a string.
Are view counts included?
Yes, view_count is returned when X shows it for the post, along with replies, reposts, quotes, likes and bookmarks.
Does it return media files?
It returns media items with type, image or video URL, duration and dimensions.
How much does the X (Twitter) Post Scraper API cost?
1 credit per successful request. Credits are bought in one-time packs and never expire. New accounts get 100 free credits. No payment details needed.
Am I charged for failed requests?
No. If the platform blocks the request, it times out or something fails on our side, the credits are refunded automatically. A definitive answer such as "this account does not exist" is billed because the lookup completed.
Can I re-read a result without paying again?
Yes. Send cache_days (1 to 14) and a repeat request for the same target within that window is served from your cache for free.
More X (Twitter) endpoints
Start with 100 free credits.
Continue with Google, create an API key and send your first request in under a minute.