# X (Twitter) Post Detail Scraper (`khadinakbar/x-post-detail-scraper`) Actor

Scrape full X/Twitter post details by URL or tweet ID — text, author, metrics, media, replies, quotes. Provider-backed (ScrapeCreators + SociaVault), cookieless, MCP-ready.

- **URL**: https://apify.com/khadinakbar/x-post-detail-scraper.md
- **Developed by:** [Khadin Akbar](https://apify.com/khadinakbar) (community)
- **Categories:** Social media, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 tweet detail scrapeds

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## X (Twitter) Post Detail Scraper

**Scrape full public X/Twitter post details by URL or tweet ID — no login, no cookies, MCP-ready.** Paste one or hundreds of `x.com/status/...` URLs (or raw numeric IDs) and get back a structured dataset: tweet text, author profile, likes, retweets, replies, views, quoted tweet links, media URLs, hashtags, and mentions.

Ideal for social listening, influencer research, brand monitoring, content archiving, and AI-agent pipelines. Built on ScrapeCreators (primary) + SociaVault (fallback) — provider-backed, cookieless, 100% cloud-compatible.

***

### What does X Post Detail Scraper do?

Given a list of public X/Twitter post URLs or numeric tweet IDs, the actor calls provider APIs to return a rich, structured record for each tweet. The dataset includes:

| Field | Description |
|---|---|
| `tweet_id` | Numeric tweet ID |
| `tweet_url` | Canonical x.com URL |
| `text` / `full_text` | Tweet body |
| `author_handle` | @username |
| `author_name` | Display name |
| `author_verified` | Blue-check status |
| `author_followers` | Follower count |
| `created_at` | ISO 8601 timestamp |
| `like_count` | Likes/favorites |
| `retweet_count` | Retweets |
| `reply_count` | Replies |
| `quote_count` | Quote-tweets |
| `view_count` | Impressions (when available) |
| `bookmark_count` | Bookmarks (when available) |
| `is_reply` / `is_retweet` / `is_quote` | Content type flags |
| `quoted_tweet_url` | Source quote-tweet URL |
| `in_reply_to_user` | Who was replied to |
| `has_media` | Media presence flag |
| `media_urls` | Direct image/video URLs |
| `hashtags` | `["#space", "#NASA"]` |
| `mentions` | `["@elonmusk"]` |
| `urls` | Expanded link URLs in tweet |
| `lang` | ISO language code |
| `source_provider` | Which provider returned the data |
| `scraped_at` | ISO 8601 scrape timestamp |

***

### Why use X Post Detail Scraper?

- **No login required.** No cookies, no auth tokens, no Twitter/X API key needed.
- **Bulk-ready.** Send up to 500 tweets per run; ideal for batch research and competitor archiving.
- **MCP-ready.** Call it directly from Claude, GPT, or any AI agent via the Apify MCP server.
- **Provider resilience.** ScrapeCreators primary → SociaVault fallback. If one provider is temporarily unavailable, the other takes over automatically.
- **Structured & clean.** Every field is normalized, typed, and consistent across runs.

***

### How to use

1. Open the actor on Apify Console and click **Try for free**.
2. In the **Tweet URLs** field, paste one or more `x.com/status/...` or `twitter.com/status/...` URLs (one per line).
3. Optionally add numeric tweet IDs in the **Tweet IDs** field.
4. Set **Max tweets** to control run cost.
5. Click **Start** — the actor finishes in seconds per tweet.
6. Download results from the **Output** tab as JSON, CSV, or Excel.

***

### Sample output

```json
{
  "tweet_id": "1823795972471718071",
  "tweet_url": "https://x.com/i/status/1823795972471718071",
  "text": "Spectacular views of Hurricane Debby from the Space Station!",
  "author_handle": "NASA",
  "author_name": "NASA",
  "author_verified": true,
  "author_followers": 95000000,
  "created_at": "2024-08-14T12:34:56.000Z",
  "like_count": 18492,
  "retweet_count": 3201,
  "reply_count": 487,
  "quote_count": 312,
  "view_count": 4200000,
  "is_reply": false,
  "is_retweet": false,
  "is_quote": false,
  "has_media": true,
  "media_urls": ["https://pbs.twimg.com/media/example.jpg"],
  "hashtags": [],
  "mentions": [],
  "lang": "en",
  "source_provider": "scrapecreators",
  "scraped_at": "2026-08-19T12:00:00.000Z"
}
```

***

### Pricing

**Pay per event + platform usage.** You are charged only for what is scraped:

| Event | Price |
|---|---|
| Actor start | $0.00005 per run |
| `tweet-detail-scraped` | $0.005 per tweet |

**Examples:**

- 10 tweets → ~$0.05
- 100 tweets → ~$0.50
- 500 tweets → ~$2.50

You can download the dataset in JSON, CSV, XLSX, or XML formats at no extra cost.

***

### Use cases

- **Brand monitoring** — archive tweets mentioning your brand or competitors.
- **Influencer research** — pull engagement metrics for a shortlist of posts before a partnership.
- **Content intelligence** — track which tweet formats drive the most views and quotes.
- **AI agent pipelines** — let Claude or GPT pull tweet context on demand via MCP.
- **Research & journalism** — document and archive public statements before deletion.

***

### Limitations & legal disclaimer

- Only **public** tweets are scraped. Private, suspended, or deleted tweets return no data.
- Metrics (views, bookmarks) are available only when the provider exposes them.
- This actor scrapes publicly available data. Always comply with X's [Terms of Service](https://twitter.com/en/tos) and applicable laws. The actor owner is not responsible for misuse.
- For tweet *search* (by keyword, hashtag, date range), use [x-tweet-scraper](https://apify.com/khadinakbar/x-tweet-scraper).
- For user profile data and timelines, use [twitter-profile-followers-scraper](https://apify.com/khadinakbar/twitter-profile-followers-scraper).

***

### Related actors

| Actor | Use case |
|---|---|
| [x-tweet-scraper](https://apify.com/khadinakbar/x-tweet-scraper) | Search tweets by keyword, hashtag, or username |
| [twitter-profile-followers-scraper](https://apify.com/khadinakbar/twitter-profile-followers-scraper) | Scrape X profiles and follower lists |
| [instagram-post-engagers-scraper](https://apify.com/khadinakbar/instagram-post-engagers-scraper) | Extract Instagram post commenters |
| [reddit-posts-comments-scraper](https://apify.com/khadinakbar/reddit-posts-comments-scraper) | Reddit posts and comment threads |

***

### Support

Open an issue on the **Issues** tab for bugs or feature requests. For custom data pipelines or white-label solutions, contact through the Apify platform.

# Actor input Schema

## `tweetUrls` (type: `array`):

List of public X/Twitter post URLs to scrape details for. Accepts x.com or twitter.com /status/ URLs, for example 'https://x.com/NASA/status/1823795972471718071'. Defaults to a NASA tweet as a working prefill. Not a profile URL — for profile scraping use x-tweet-scraper.

## `tweetIds` (type: `array`):

Alternative input: numeric tweet/status IDs, for example '1823795972471718071'. Each ID is fetched as a full tweet detail. Leave empty when using tweetUrls. IDs are 15–20 digits.

## `maxTweets` (type: `integer`):

Maximum number of tweet URLs/IDs to process in one run. Useful to cap cost on large batches. Range 1–500. Defaults to 100.

## `providerOrder` (type: `string`):

Which data provider to try first. 'scrapecreators-first' is recommended — it has broader Twitter/X coverage. 'sociavault-first' can be useful when ScrapeCreators is temporarily unavailable.

## `includeRawData` (type: `boolean`):

When true, the raw provider JSON response is added to each row under a '\_raw' key. For debugging or advanced schema exploration only — not recommended for production runs.

## Actor input object example

```json
{
  "tweetUrls": [
    "https://x.com/elonmusk/status/1947295471082316145"
  ],
  "tweetIds": [
    "1823795972471718071"
  ],
  "maxTweets": 100,
  "providerOrder": "scrapecreators-first",
  "includeRawData": false
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

## `OUTPUT` (type: `string`):

No description

## `RUN_SUMMARY` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "tweetUrls": [
        "https://x.com/elonmusk/status/1947295471082316145"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("khadinakbar/x-post-detail-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "tweetUrls": ["https://x.com/elonmusk/status/1947295471082316145"] }

# Run the Actor and wait for it to finish
run = client.actor("khadinakbar/x-post-detail-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "tweetUrls": [
    "https://x.com/elonmusk/status/1947295471082316145"
  ]
}' |
apify call khadinakbar/x-post-detail-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,khadinakbar/x-post-detail-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/w2rAMvbz7eJCc5yiC/builds/CO2H78nwbvr4fNyyy/openapi.json
