X/Twitter Post Scraper — Text, Author & Engagement Metrics
Pricing
from $1.00 / 1,000 results
X/Twitter Post Scraper — Text, Author & Engagement Metrics
Scrape a single X/Twitter post - text, author, like count, reply count, hashtags, mentions, media. No login, no API key.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
Axery
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
X (Twitter) Post Detail Scraper
Scrapes a single X/Twitter post — text, author, like count, reply count, hashtags, mentions, media. No login, no API key.
Useful for tracking specific posts (announcements, PR crises, viral moments), embedding post data into a dashboard, and archival/citation research.
What makes this different
Uses X's own public embed backend, not a scraped HTML page — the same endpoint every "embedded tweet" widget on the web calls to render a post for a viewer with no X account at all. That makes it considerably more stable than parsing rendered HTML, which changes shape often and is generally login-gated for anything beyond a single post view.
A withdrawn post is reported, not silently returned as empty. X's own API answers a deleted, protected, or otherwise unavailable post with HTTP 200 and a differently-shaped payload (a "tombstone") rather than an error status. A scraper that doesn't check for that shape would emit a row that looks like a real, empty post instead of correctly reporting "this post is gone."
No token-guessing. The embed endpoint's token parameter is required, but this Actor doesn't attempt to derive whatever validation X applies to it — that would mean reverse-engineering a value meant to gate the endpoint, not reading something the page hands over freely. If a post can't be retrieved, that's reported plainly as a failure for that post rather than worked around.
Input
| Field | Type | Notes |
|---|---|---|
posts | array | Full x.com/twitter.com status URLs, or bare numeric post IDs. |
proxyConfiguration | object | Not normally needed. |
Output
{"post_id": "x.com:20","text": "just setting up my twttr","author_name": "jack","author_screen_name": "jack","like_count": 308827,"reply_count": 17988,"created_at": "2006-03-21T20:50:14.000Z","url": "https://x.com/jack/status/20"}
Field presence follows the content of the post itself — hashtags, mentions, media_urls, retweet_count and quote_count are null when a post genuinely has none of those, not because they were missed. A post that's deleted, protected, or otherwise withdrawn fails with a clear message for that post rather than returning a hollow row. Each run also writes a RUN_COVERAGE record to the key-value store with what was requested, what came back, and any per-post failures.
Local development
pip install -r requirements.txtpython test_local.py 20 --out sample_output.jsonpython test_local.py https://x.com/jack/status/20
sample_output.json is real output from a live run.