# Tweet Analytics Scraper - X Post Metrics, Views & Likes (`zaver.api/tweet-analytics-scraper`) Actor

Get detailed analytics for any public tweet - no login, no API key. Paste X (Twitter) status URLs and get likes, retweets, quotes, replies, views, plus author follower counts and tweet text. Export to CSV, JSON or Excel, run via API or on a schedule.

- **URL**: https://apify.com/zaver.api/tweet-analytics-scraper.md
- **Developed by:** [Zaver](https://apify.com/zaver.api) (community)
- **Categories:**
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 tweet analytics & metrics

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#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

## Tweet Analytics Scraper (X / Twitter) 📊

**Tweet Analytics Scraper** gets **detailed metrics for any public tweet** — **no login, no API key, no developer account**. Paste one or more X (Twitter) status URLs and get **likes, retweets, quotes, replies and views**, plus the author's **follower count** and the tweet text. Export to **CSV, Excel or JSON**, or pull it via the **API**.

Built for **social media analytics, competitor tracking, campaign reporting and viral-tweet research** — the engagement data X's own API now charges heavily for.

- ✅ **No login, no API key** — no X developer account or paid API tier needed
- ✅ **Full engagement set** — likes, retweets, quotes, replies, **views/impressions**
- ✅ **Author stats** — follower, following and tweet counts
- ✅ Tweet **text, publish date and video duration**
- ✅ **Bulk** — analyze hundreds of tweets in one run
- ✅ **CSV, Excel, JSON, XML** export + full API, scheduler and integrations

***

### What data does it extract?

One row per tweet:

| Field | Description | Example |
|---|---|---|
| `channel_id` | Author @handle | `nasa` |
| `title` | Tweet text | `We have liftoff 🚀` |
| `likes` | Like count | `12000` |
| `shares` | Retweets | `3400` |
| `quotes` | Quote tweets | `210` |
| `comments` | Replies | `880` |
| `view_count` | Views / impressions | `900000` |
| `author_followers` | Author follower count | `95000000` |
| `publish_date` | When it was posted | `2026-01-01` |
| `tweet_url` | Canonical tweet URL | `https://x.com/nasa/status/…` |

### Why choose this tweet analytics scraper?

- **No X API needed.** X's official API is expensive and rate-limited. This reads the public tweet page directly, so you get engagement data — including **views** — without a developer account.
- **The complete engagement picture.** Most tools miss quotes and views; this returns likes, retweets, quotes, replies *and* views in one row, plus author stats for context.
- **Bulk and schedulable.** Feed a list of tweet URLs, run on a schedule, and track how a campaign's tweets perform over time.

### How to analyze tweets (step by step)

1. Paste one or more **tweet URLs** (`https://x.com/USER/status/ID`).
2. Click **Start**.
3. Download from the **Storage → Dataset** tab as **CSV, Excel, JSON or XML**, or read via the API.

#### Example input

```json
{
  "tweetUrls": [
    "https://x.com/NASA/status/1750500000000000000",
    "https://x.com/SpaceX/status/1750600000000000000"
  ]
}
```

#### Example output

```json
{
  "channel_id": "nasa",
  "title": "We have liftoff 🚀",
  "likes": 12000,
  "shares": 3400,
  "quotes": 210,
  "comments": 880,
  "view_count": 900000,
  "author_followers": 95000000,
  "publish_date": "2026-01-01",
  "tweet_url": "https://x.com/nasa/status/1750500000000000000"
}
```

#### Run it via the Apify API

```bash
curl "https://api.apify.com/v2/acts/YOUR~ACTOR/runs?token=YOUR_TOKEN" \
  -X POST -H "Content-Type: application/json" \
  -d '{"tweetUrls": ["https://x.com/NASA/status/1750500000000000000"]}'
```

Works with the **Apify SDK**, **scheduled runs**, **webhooks**, and integrations for **Make, Zapier, n8n, Google Sheets and LangChain**.

### Pricing — pay only for results

You are billed **per tweet successfully analyzed**. Removed, protected or unparseable tweets return an error row and cost **nothing**.

| Result type | Price |
|---|---|
| Analyzed tweet | **$0.002 per tweet** ($2 / 1,000) |

### Frequently asked questions

#### Do I need an X API key or developer account?

No. The Actor reads the public tweet page — no API key, no login, no paid X tier.

#### Does it return view counts?

Yes, where X exposes them on the public page. Views are included alongside likes, retweets, quotes and replies.

#### Can it analyze many tweets at once?

Yes. Pass a list of tweet URLs; each becomes one row. Run on a schedule to track performance over time.

#### Why did a tweet come back as "unavailable"?

The tweet may be deleted, from a protected account, age-restricted, or the page format changed. Those rows are not billed.

#### Is this legal?

The Actor collects only **publicly available** data. You are responsible for using it in compliance with the laws that apply to you and X's terms.

### Support & roadmap

Open an issue on the Actor's **Issues** tab. On the roadmap: **bulk tweet URLs from a profile or search**, and **media/engagement-rate fields**.

# Actor input Schema

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

URLs of the tweets (X posts) to analyze. One per line, e.g. <code>https://x.com/NASA/status/1750500000000000000</code>. Works with x.com and twitter.com status links.

## Actor input object example

```json
{
  "tweetUrls": [
    "https://x.com/NASA/status/1750500000000000000"
  ]
}
```

# Actor output Schema

## `results` (type: `string`):

One dataset item per tweet, with likes, retweets, quotes, replies, views and author stats.

## `resultsCsv` (type: `string`):

The same records as a CSV download, ready for Excel or Sheets.

## `runSummary` (type: `string`):

Counts for the run: fetches, tweets analyzed and errors.

# 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/NASA/status/1750500000000000000"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("zaver.api/tweet-analytics-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/NASA/status/1750500000000000000"] }

# Run the Actor and wait for it to finish
run = client.actor("zaver.api/tweet-analytics-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/NASA/status/1750500000000000000"
  ]
}' |
apify call zaver.api/tweet-analytics-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,zaver.api/tweet-analytics-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/m0dY1hptxO0xecr8A/builds/odyebj8jvuXsVQ1HJ/openapi.json
