X (Twitter): scrapers and the official API, compared

Public posts, profiles, search results, trends, media and Spaces.

Short answer

For most X (Twitter) jobs, start with Twitter (X) Media Downloader: it covers 3 of 7 core fields (text, likes, url) at $0.99 per 1,000 results on Apify's Free plan. The top published score for X (Twitter) goes to X (Twitter) Tweet Scraper by xquik (90 of 100), a Store tool from another publisher, listed for reference.

From published Store listings, output schemas and the official documentation. Checked 2026-11-12. How the ranking works.

Twitter (X) Media Downloader: inputs, code and costOpen in Apify Store

12 catalogue Actors 8 other Store tools Official API: Public API Lowest rate  $0.15 per 1K

What do you need from X (Twitter)?

Route map

Each line is one way to get X (Twitter) data; each stop is a field you probably need. Green lines are catalogue Actors, ranked by the published formula.

Route diagram for X (Twitter) dataTwitter (X) Media Downloader: stops at 4 of the 10 fields shown; X Post, Reply & Profile Lookup by Link or ID: stops at 6 of the 10 fields shown; X (Twitter) Profile & Post Engagement Extractor: stops at 6 of the 10 fields shown; X Video Subtitle & Caption Transcript Converter: stops at 2 of the 10 fields shown; Other Store tools (7): stops at 8 of the 10 fields shown; X API v2: public, field coverage not compared.X (Twitter)post idauthorlikestextposted atrepostscreatedAtlikeCountretweetCountreplyCount1234+API

Stops are fields. A ring means the field is in that route's published output schema; no ring means the line passes without it. Bold labels are the core fields for this website, the rest are fields that differ between routes. A white capsule means every data line stops there. The red line is the official API; its field coverage is not compared. A crossed red line means there is no open official API.

Catalogue Actors for X (Twitter)

Twitter (X) Media Downloader

Download videos, photos, GIFs, audio and poster images from public Twitter/X posts - no login, no cookies. Works with post links or usernames,…

3/7 core fields 27 output fields $0.99 per 1K Open in Apify Store

X Post, Reply & Profile Lookup by Link or ID

Resolve X post links or IDs into text, author, media, polls, quoted/parent posts, engagement metrics and replies, or resolve a handle into that…

3/7 core fields 9 output fields $0.99 per 1K Open in Apify Store

X (Twitter) Profile & Post Engagement Extractor

Get any public X profile - bio, followers, verification, avatar, banner - plus latest, top and media posts with full engagement metrics. No login…

3/7 core fields 29 output fields $0.99 per 1K Open in Apify Store

Which route for which job

The catalogue Actors for X (Twitter) return different records. "Only this route" lists the published fields no other Actor in this table returns, which is usually what decides the choice. Cost is the published per-result rate; start events and platform usage are extra.

Catalogue Actors for X (Twitter) by job, with the fields only each one returns
Actor Good for Only this route Core fields 10K results
Twitter (X) Media Downloader Download post media filename, fileSizeBytes, width, height, audioFormat 3/7 $9.90
X Post, Reply & Profile Lookup by Link or ID Retrieve post details no unique fields 3/7 $9.90
X (Twitter) Profile & Post Engagement Extractor Collect public profiles totalEngagement, isPinned, isHighlight, following, postCount 3/7 $9.90
X Video Subtitle & Caption Transcript Converter Transcribe public videos videoIndex, transcriptionMethod, transcriptAvailable, wordCount, fullTranscript 3/7 $9.90
X/Twitter Keyword & Hashtag Tweet Search Find keyword mentions no unique fields 3/7 $9.90
X Keyword Search with Mention & Reply Operators Find indexed posts no unique fields 3/7 $9.90
X Community Activity & Member Finder Community activity monitoring memberCount, feed, moderatorCount, topic, description 3/7 $9.90
X Broadcast Viewer History & Replay Link Scraper Broadcast audience analysis title, state, viewersNow, viewersTotal, startedAt 1/7 $9.90

Field matrix: who returns what

Every tool with a published output schema, against the 7 fields most X (Twitter) jobs need. A dot means the field name appears in the schema; rows can still leave it empty.

Which tools return each core X (Twitter) field, from published output schemas
Toolpost idtextauthorposted atlikesrepostsurlFields
Twitter (X) Media Downloader–●––●–●3/7
X Post, Reply & Profile Lookup by Link or ID–●––●–●3/7
X (Twitter) Profile & Post Engagement Extractor–●––●–●3/7
X Video Subtitle & Caption Transcript Converter–●●–––●3/7
X/Twitter Keyword & Hashtag Tweet Search–●––●–●3/7
X Keyword Search with Mention & Reply Operators–●––●–●3/7
X Community Activity & Member Finder–●––●–●3/7
X Broadcast Viewer History & Replay Link Scraper––––––●1/7
X Article Announcement Post Metadata Collector––––––●1/7
Twitter (X) Screenshot Generator––●–––●2/7
Twitter (X) Space Scraper––––––●1/7
X Trends Lookup by Country, City & WOEID–––––––0/7
X (Twitter) Tweet ScraperReference only, by xquik●●●–●–●5/7
Tweet ScraperReference only, by kaitoeasyapi●●––●–●4/7
Tweet Scraper V2Reference only, by apidojo●●––●–●4/7
Twitter (X.com) Scraper Unlimited: No LimitsReference only, by apidojo●●––●–●4/7
Twitter (X) Follower ScraperReference only, by kaitoeasyapi●–––––●2/7
Twitter Profile Scraper: Get Profile Tweets + Their RepliesReference only, by apidojo–●––●–●3/7
Fast Twitter (X) User Scraper APIReference only, by apidojo●––––––1/7
Tools returning it6123011017

Field dictionary: the exact keys

The same core field has a different key in each Actor's output. Map these before you merge datasets; a dash means the published schema has no matching key. Need a field that is not listed here, such as email? Search every X (Twitter) Actor by field.

Output keys for each core X (Twitter) field in the top catalogue Actors
Core field Twitter (X) Media DownloaderX Post, Reply & Profile…X (Twitter) Profile & Post…
post id –––
text altText, tweetTexttexttext
author –––
posted at –––
likes likeCountlikeCountlikeCount
reposts –––
url tweetUrlurlurl, sourceUrl, profileUrl

Download this comparison: CSV · JSON (every tool with a published schema, matching keys per core field, price and score).

All 20 tools, scored

Catalogue Actors link to their detail pages; the score (0 to 100) is the published formula, identical for every tool. Other Store tools follow in their own table, for reference. Price is the published primary-result rate per 1,000 (the Free-plan rate where the price is tiered; higher Apify plans pay less); start events and platform usage are excluded.

Catalogue Actors for X (Twitter), ranked by the published method
Sample fields
57
Twitter (X) Media Downloader Catalogue Actor, pay per event
altText, likeCount, tweetUrl 27 $0.99 100% of 29 runs Oct 2026
56
X Post, Reply & Profile Lookup by Link or ID Catalogue Actor, pay per event
text, likeCount, url 9 $0.99 100% of 24 runs Oct 2026
56
X (Twitter) Profile & Post Engagement Extractor Catalogue Actor, pay per event
text, likeCount, url 29 $0.99 100% of 24 runs Oct 2026
50
X Video Subtitle & Caption Transcript Converter Catalogue Actor, pay per event
text, authorUsername, tweetUrl 29 $0.99 7 runs, too few to rate Nov 2026
50
X/Twitter Keyword & Hashtag Tweet Search Catalogue Actor, pay per event
text, likeCount, url 18 $0.99 6 runs, too few to rate Nov 2026
50
X Keyword Search with Mention & Reply Operators Catalogue Actor, pay per event
text, likeCount, url 21 $0.99 7 runs, too few to rate Nov 2026
50
X Community Activity & Member Finder Catalogue Actor, pay per event
text, likeCount, url 21 $0.99 10 runs, too few to rate Nov 2026
48
X Broadcast Viewer History & Replay Link Scraper Catalogue Actor, pay per event
url, title, state 8 $0.99 100% of 28 runs Oct 2026
48
X Article Announcement Post Metadata Collector Catalogue Actor, pay per event
sourceTweetUrl, title, author.username 6 $0.99 100% of 28 runs Oct 2026
46
Twitter (X) Screenshot Generator Catalogue Actor, pay per event
authorUsername, targetUrl, profileUrl 59 $0.99 6 runs, too few to rate Nov 2026
41
Twitter (X) Space Scraper Catalogue Actor, pay per event
url, title, state 8 $0.99 16 runs, too few to rate Nov 2026
37
X Trends Lookup by Country, City & WOEID Catalogue Actor, pay per event
location, trend, trendType 10 $0.99 14 runs, too few to rate Nov 2026

Other Store tools, for reference

Scored with the same published formula and listed for comparison only; this site does not link or recommend them.

Other Store tools for X (Twitter), for reference
Sample fields
90
X (Twitter) Tweet Scraper Reference only, by xquik
id, text, author 120 $0.15 100% of 3,051,112 runs Nov 2026
84
Tweet Scraper Reference only, by kaitoeasyapi
id, text, likeCount 17 $0.25 99% of 2,788,916 runs Nov 2026
81
Tweet Scraper V2 Reference only, by apidojo
id, text, likeCount 12 $0.40 100% of 4,913,864 runs Nov 2026
81
Twitter (X.com) Scraper Unlimited: No Limits Reference only, by apidojo
id, text, likeCount 12 $0.40 100% of 1,442,247 runs Nov 2026
77
Twitter (X) Follower Scraper Reference only, by kaitoeasyapi
id, url, target_username 29 $0.15 100% of 33,036 runs Nov 2026
75
Twitter Profile Scraper: Get Profile Tweets + Their Replies Reference only, by apidojo
text, likeCount, url 10 $0.40 100% of 55,587 runs Nov 2026
70
Twitter Scraper Reference only, by danek
No published schema – $0.30 100% of 2,641,409 runs Oct 2026
67
Fast Twitter (X) User Scraper API Reference only, by apidojo
id, name, userName 11 $0.40 100% of 650,777 runs Nov 2026

What to check before you choose

Public X posts and profile activity help teams track mentions, follow conversations and compare engagement. Decide whether the collection starts with known links, account names or search terms: each route answers a different question.

Post lookup suits a defined list of URLs, while keyword search supports topic discovery. Media, captions, screenshots, trends and Spaces need specialist outputs; the official X API offers a separate route with resource-based charges and spending limits.

Checklist

  • Match the output to the task. A screenshot preserves a visual record, while post search exposes text and engagement values that can be filtered and compared.
  • Check naming before importing results: search tools publish author.username, createdAt, likeCount and retweetCount, which need mapping if your destination expects author, posted_at, likes and reposts.
  • Compare billing units as well as headline prices. Store result-event charges can exclude start events and platform plan differences, while the official X API charges per resource returned.

Where the data is incomplete

The published keyword schemas include searchTerm and engagement values.

Specialist outputs have separate availability limits. Screenshot results can report protected, deleted or login_wall states; transcriptAvailable and replayAvailable need checking before treating a video or Space as usable source material.

Official API route

X API v2

X API v2 uses prepaid pay-per-usage credits. Published standard read rates include $0.005 per Post resource and $0.010 per User resource. Pay-per-use launched on February 6, 2026; legacy Basic and Pro plans migrated to pay-per-use.

Price. Charged per resource returned: $0.005 per Post, $0.010 per User. Owned Reads on qualifying own-account endpoints are $0.001 per resource. A 3 million Post-read monthly cap applies to self-serve pay-per-use.

Limits. Spending limits are configurable. Enterprise access is required above the monthly cap.

Official documentation Official pricing

Follow X's terms and the X Developer Agreement when collecting or reusing public content. Do not bypass logins or access controls. This is general information, not legal advice.

Read X (Twitter)'s terms. Keep to public data, do not bypass logins or access controls, and check whether personal data is involved before you collect it. The can-I-scrape checklist walks through it.

How to start

  1. Configure a small collection using the documented inputs and review the billing conditions before starting it.
  2. Inspect the resulting records for post identity, text, author, posting time and engagement, then export the usable records and retain any status messages for review.

Call Twitter (X) Media Downloader from code

The example input uses the Actor's published defaults; set your own X (Twitter) query before you run it. You need an Apify API token.

Python

from apify_client import ApifyClient

client = ApifyClient("<YOUR_APIFY_TOKEN>")
run_input = {
    "postUrls": [
        "https://x.com/NASA/status/2107095768821576019"
    ],
    "maxPostsPerUser": 1,
    "maxItems": 1,
    "mediaTypes": [
        "video",
        "photo",
        "gif"
    ],
    "imageQuality": "orig",
    "videoQuality": "best",
    "downloadAllQualities": False,
    "includePosterImage": False,
    "includeAltText": True,
    "audioOnly": False,
    "audioFormat": "m4a",
    "includeQuotedMedia": True,
    "includeMetadata": True,
    "minLikes": 0,
    "minRetweets": 0,
    "onlyVerifiedAuthors": False,
    "saveToFile": False
}

run = client.actor("dataspryva/twitter-x-media-downloader").call(run_input=run_input)
if run is None:
    raise RuntimeError("The Actor run was not found.")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

pip install apify-client

JavaScript

import { ApifyClient } from "apify-client";

const client = new ApifyClient({ token: "<YOUR_APIFY_TOKEN>" });
const input = {
    "postUrls": [
        "https://x.com/NASA/status/2107095768821576019"
    ],
    "maxPostsPerUser": 1,
    "maxItems": 1,
    "mediaTypes": [
        "video",
        "photo",
        "gif"
    ],
    "imageQuality": "orig",
    "videoQuality": "best",
    "downloadAllQualities": false,
    "includePosterImage": false,
    "includeAltText": true,
    "audioOnly": false,
    "audioFormat": "m4a",
    "includeQuotedMedia": true,
    "includeMetadata": true,
    "minLikes": 0,
    "minRetweets": 0,
    "onlyVerifiedAuthors": false,
    "saveToFile": false
};

const run = await client.actor("dataspryva/twitter-x-media-downloader").call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

npm install apify-client

cURL

curl -X POST "https://api.apify.com/v2/actors/dataspryva~twitter-x-media-downloader/run-sync-get-dataset-items"   -H "Authorization: Bearer $APIFY_TOKEN"   -H "Content-Type: application/json"   -d '{"postUrls":["https://x.com/NASA/status/2107095768821576019"],"maxPostsPerUser":1,"maxItems":1,"mediaTypes":["video","photo","gif"],"imageQuality":"orig","videoQuality":"best","downloadAllQualities":false,"includePosterImage":false,"includeAltText":true,"audioOnly":false,"audioFormat":"m4a","includeQuotedMedia":true,"includeMetadata":true,"minLikes":0,"minRetweets":0,"onlyVerifiedAuthors":false,"saveToFile":false}'

Waits for the run and returns the dataset items (runs over 300 seconds return HTTP 408; start an async run instead).

MCP (AI agents)

{
  "mcpServers": {
    "apify": {
      "url": "https://mcp.apify.com?tools=dataspryva/twitter-x-media-downloader",
      "headers": {
        "Authorization": "Bearer <YOUR_APIFY_TOKEN>"
      }
    }
  }
}

Adds this Actor as a tool in an MCP client that takes a remote server URL (Cursor, VS Code, Claude Code) through Apify's hosted MCP server. OAuth sign-in also works without the header. Clients that only start local servers can wrap the URL with npx mcp-remote.

Questions people ask

Should I choose the official X API or a Store tool?

Choose the official API when its documented endpoints and resource-based billing fit the collection you need. Choose a Store tool when its published output matches a specific task, such as screenshots, media downloads or caption extraction.

Can keyword search replace collecting replies to known posts?

Keyword search finds matching posts. For a defined conversation, review the link lookup tool's reply and quote collection options.

How should I compare engagement across collection runs?

Keep the posting time separate from the collection time, using createdAt and collectedAt where available. Compare likeCount and retweetCount with that timing context because the values can change after publication.

Does a video or Space result guarantee a transcript?

Check transcriptAvailable for video transcription and replayAvailable for Spaces before planning downstream processing.

What is the cheapest catalogue Actor for X (Twitter) data?

Twitter (X) Media Downloader lists $0.99 per 1,000 results (pay per event), with 27 fields in its published output schema. Start events and platform usage are billed separately. Checked 2026-11-12.

Which X (Twitter) scraper returns the most core fields?

Twitter (X) Media Downloader covers 3 of the 7 core X (Twitter) fields this page tracks (post id, text, author, posted at, likes, reposts, url), based on its published output schema.

Does X (Twitter) have an official API?

Public API: X API v2 uses prepaid pay-per-usage credits. Published standard read rates include $0.005 per Post resource and $0.010 per User resource. Pay-per-use launched on February 6, 2026; legacy Basic and Pro plans migrated to pay-per-use. Charged per resource returned: $0.005 per Post, $0.010 per User. Owned Reads on qualifying own-account endpoints are $0.001 per resource. A 3 million Post-read monthly cap applies to self-serve pay-per-use.

Is it legal to scrape X (Twitter)?

It depends on what you collect and how. Follow X's terms and the X Developer Agreement when collecting or reusing public content. Do not bypass logins or access controls. Read X (Twitter)'s terms (https://x.com/en/tos) before you collect, and check whether personal data is involved. This is general information, not legal advice.

More on X (Twitter)

Sources

Text updated 2026-11-12 Data checked 2026-11-12
Cite this page

Scraper Finder. "How to get X (Twitter) data." https://scraperfinder.com/sites/x/ (data checked 2026-11-12).

Highest-scoring catalogue Actor

Twitter (X) Media Downloader: 3 of 7 core fields, $0.99 per 1,000 results, score 57. The highest score overall is 90 (X (Twitter) Tweet Scraper, a Store tool from another publisher); both are in the table above.

Open in Apify Store