X (Twitter) Post Detail Scraper
Pricing
from $5.00 / 1,000 tweet detail scrapeds
X (Twitter) Post Detail Scraper
Scrape full X (Twitter) post details by URL or tweet ID: text, author, metrics, media, replies and quotes. Bulk input, no login or cookies needed.
Pricing
from $5.00 / 1,000 tweet detail scrapeds
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
12
Total users
8
Monthly active users
2 days ago
Last modified
Categories
Share
X (Twitter) Post Detail Scraper - Tweet Data by URL or ID
Use this Apify Actor when you have a public X or Twitter post URL, or a numeric tweet ID, and need one structured dataset record per post. Each record represents one tweet detail lookup and can include the post text, author handle and name, verification status, creation time, engagement metrics, media URLs, hashtags, mentions, language, reply or quote flags, source provider, and scrape timestamp. The outcome is a clean dataset you can read in Apify, export, or pass to downstream automation through Apify MCP.
Best fit and connected workflows
This Actor fits workflows that start with a known post and need its full detail record in a consistent schema. It is useful for:
- post-level social listening and monitoring
- content archives built from specific tweet URLs or IDs
- lead generation workflows that begin from a curated post list
- AI agent pipelines that need tweet context on demand through Apify MCP
- analysis of engagement, media presence, and post type flags for a selected set of tweets
If your workflow begins with a search query, hashtag, or profile-level collection, start with an Actor designed for that entry point and then pass the resulting tweet URLs or IDs into this Actor for post detail enrichment.
Practical scenario
Maya, a social media analyst, has a spreadsheet of public X post URLs from a campaign launch. She pastes those URLs into the input and limits the batch size to keep the run focused. The Actor returns one row per post with tweet_url, author_handle, text, like_count, retweet_count, reply_count, quote_count, view_count, media_urls, and source_provider. Maya then uses the engagement counts and media fields to decide which posts deserve deeper reporting and which ones should be sent to a content archive.
Input fields
| Field | Type | Purpose |
|---|---|---|
tweetUrls | array of strings | Public X or Twitter /status/ URLs to scrape. Accepts x.com and twitter.com URLs. |
tweetIds | array of strings | Numeric tweet or status IDs to fetch as full tweet details. |
maxTweets | integer | Caps how many tweet URLs or IDs are processed in one run. Range 1 to 500. |
providerOrder | string | Selects which provider is tried first: the routing options listed in the input schema. |
includeRawData | boolean | Adds the raw provider response under _raw for debugging and schema inspection. |
Focused JSON input example
{"tweetUrls": ["https://x.com/NASA/status/1823795972471718071"],"maxTweets": 1,"includeRawData": false}
Output fields
The dataset view is titled "Tweet Details" and contains one record per scraped post.
| Field | Type | Meaning |
|---|---|---|
tweet_id | string | Tweet ID. |
tweet_url | string | Canonical tweet URL. |
author_handle | string | Author handle. |
author_name | string | Author display name. |
author_verified | boolean | Verification status. |
created_at | string | Post creation timestamp. |
text | string | Post text. |
like_count | number | Likes count. |
retweet_count | number | Retweets count. |
reply_count | number | Replies count. |
quote_count | number | Quotes count. |
view_count | number | Views count. |
has_media | boolean | Media presence flag. |
media_urls | array | Media URLs. |
hashtags | array | Hashtags found in the post. |
mentions | array | Mentioned handles. |
lang | string | Language code. |
is_reply | boolean | Reply flag. |
is_retweet | boolean | Retweet flag. |
is_quote | boolean | Quote flag. |
source_provider | string | Provider used for the record. |
scraped_at | string | Scrape timestamp. |
Illustrative JSON output record
{"tweet_id": "1823795972471718071","tweet_url": "https://x.com/NASA/status/1823795972471718071","author_handle": "NASA","author_name": "NASA","author_verified": true,"created_at": "2024-08-14T12:34:56.000Z","text": "Spectacular views from orbit.","like_count": 18492,"retweet_count": 3201,"reply_count": 487,"quote_count": 312,"view_count": 4200000,"has_media": true,"media_urls": ["https://pbs.twimg.com/media/example.jpg"],"hashtags": [],"mentions": [],"lang": "en","is_reply": false,"is_retweet": false,"is_quote": false,"scraped_at": "2024-08-14T12:35:10.000Z"}
How it works
This Actor accepts public tweet URLs or numeric tweet IDs, then queries provider APIs to assemble a normalized post-detail record. The live contract shows two provider routes: the primary and fallback data providers. You can choose which provider is tried first with providerOrder. When includeRawData is enabled, the provider response is included in each row under _raw for inspection. The output is written to the default dataset and execution summaries are also exposed in key-value store records.
Pricing and platform usage
X (Twitter) Post Detail Scraper - Tweet Data by URL or ID uses Pay per event with Apify platform usage included. Charged events in the live contract include an actor start fee and a per tweet detail record fee. Your total run cost scales with how many tweet records are processed ; Apify platform usage for compute and storage is included. For current pricing details, check the live Pricing tab on the Apify Store page before running larger batches.
For example, a run that processes ten tweets will charge one start event and ten tweet-detail events with Apify platform usage included.
Use with AI agents (MCP)
This Actor is available as an Apify Actor usable through Apify MCP. It is designed for agent workflows that already know the tweet URL or tweet ID and need structured post details in a machine-readable form.
Exact Actor identity: khadinakbar/x-post-detail-scraper
Tool description: fetches full X/Twitter post details from a public tweet URL or numeric tweet ID and returns normalized fields such as text, author data, metrics, media, hashtags, mentions, and source provider.
Retrieve the detail record for this public X post URL and return the dataset item with text, author, metrics, media URLs, hashtags, and source provider. Use the provided tweet URL only, and summarize the result as structured JSON for downstream analysis.
Output interpretation:
- Each dataset row corresponds to one post detail lookup.
source_provideridentifies which provider supplied the row.scraped_atshows when the record was collected.- If
includeRawDatais enabled,_rawcan help with schema inspection or debugging. - The output schema also exposes run summary records named
OUTPUTandRUN_SUMMARY.
Scope and cost guidance:
- The Actor processes a list of tweet URLs or IDs, capped by
maxTweets. - One record is charged per scraped tweet detail event, plus the actor start fee.
- For batch agent workflows, keep the input list focused and use
maxTweetsto control run size.
Apify API example
import { ApifyClient } from 'apify-client';const client = new ApifyClient({token: process.env.APIFY_TOKEN,});const actor = client.actor('khadinakbar/x-post-detail-scraper');const run = await actor.call({tweetUrls: ['https://x.com/NASA/status/1823795972471718071'],maxTweets: 1,includeRawData: false,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Best results and outcome guidance
Use one input style per run: either tweetUrls or tweetIds. Keep URLs public and point them directly to /status/ posts. Set maxTweets to match the size of the batch you want to process. If you need provider preference for a given workflow, choose the provider order explicitly so the execution behavior is clear. For agent use, pass the exact tweet URL or tweet ID that you want enriched, then read the dataset item fields for downstream filtering, storage, or analysis.
Focused standalone workflow
X (Twitter) Post Detail Scraper - Tweet Data by URL or ID is designed as a focused standalone workflow for the public input and structured output contract described above.
Design note
I found that the dataset view is intentionally focused on a compact set of post-level fields: tweet_id, tweet_url, author details, engagement metrics, media, hashtags, mentions, language, and source metadata. That contract makes the output easy to consume in tables and automation.
FAQ
Can I start from a tweet URL instead of a tweet ID?
Yes. The input accepts public x.com or twitter.com /status/ URLs, and it also accepts numeric tweet IDs.
Can I use this Actor for profile scraping or timeline collection?
This Actor is designed for post details. For profile-level workflows, start from an Actor built for profile or timeline collection and then pass the resulting post URLs here if you need post-level enrichment.
How do I control which provider is used first?
Set providerOrder to the routing options listed in the input schema. The first option is the default in the live schema.
How many posts can I process in one run?
Use maxTweets to cap the batch size. The live schema allows values from 1 to 500.
What if I want more raw provider data?
Enable includeRawData to include the provider response in each row under _raw.
Responsible use
X and Twitter is a trademark of its owner. This independent Actor is not affiliated with, associated with, or endorsed by X and Twitter.
Use this Actor only with public post URLs or IDs and in ways that comply with applicable laws, platform terms, and data handling obligations.