If you have tried to pull public tweets programmatically in the last couple of years, you already know the story: what used to be a free, generous API is now a gated, expensive product that most researchers, indie developers, and small marketing teams simply cannot justify. This post lays out exactly what the official X (Twitter) API costs in 2026, what most people actually need, and how to get public tweet and profile data for a fraction of the price — without a developer account, without an API key, and without an approval queue.
X's API pricing has changed several times since the 2023 overhaul, so it is worth stating the current picture precisely (verified against public pricing coverage as of July 2026 — always re-check developer.x.com before budgeting, because this moves):
| Tier | Cost | Reality in 2026 |
|---|---|---|
| Free | $0 | Effectively write-only or trivial testing. No meaningful read access for data collection. |
| Basic | $200 per month | The tier people remember — but closed to new signups. Existing subscribers keep it; you can no longer buy it. |
| Pro | $5,000 per month | Also legacy, also out of reach for individuals and small teams. |
| Pay-per-use (new default) | $0 base plus per-call | Roughly $0.005 per post read, capped around 2 million reads a month — but it still requires an approved developer account and app. |
| Enterprise | ~$42,000+ per month | The only option once you exceed the pay-per-use read cap. |
Two things make this painful for ordinary use cases. First, there is no real free tier for reading data anymore. Second, even the "cheap" pay-per-use path still gates you behind a developer-account application and an app setup before you can read a single public tweet — and the moment your needs outgrow the read cap, the only door left is a five-figure Enterprise contract. For a researcher gathering a dataset, a marketer tracking brand mentions, or a founder validating an idea, that is a wall.
Here is the quiet truth behind most Twitter/X data projects: you do not need firehose access, you do not need streaming, and you do not need an enterprise contract. The overwhelming majority of real use cases boil down to three things:
Social listening, competitor monitoring, sentiment analysis, academic research, and lead discovery are all built on exactly this. None of them require paying a monthly subscription for capacity you will never use. What you need is a way to pull public data on demand and pay only for what you actually collect.
Instead of a subscription, you can use a pay-per-result scraper that reads the same public data any visitor to x.com can see. Our Twitter/X Scraper on Apify charges $0.005 per result — that is $5 per 1,000 tweets — with no developer account, no API key, and no application to fill out. Apify also gives every account $5 in free platform credits every month, which covers roughly 1,000 tweets a month with no credit card at all.
Here is how the cost compares at three realistic usage levels. The X column uses the $200 per month Basic reference point (for those who still have it); the pay-per-result column is what you actually spend to collect that volume once:
| You need | Official X API | Pay-per-result scraper |
|---|---|---|
| 1,000 tweets a month | $200/mo (Basic) or a gated dev account | $5 (covered by Apify's free monthly credit) |
| 10,000 tweets a month | $200/mo minimum, if the tier is even available to you | $50 |
| 100,000 tweets a month | Past pay-per-use caps → Enterprise (~$42k/mo) | $500 |
The point is not that scraping is always literally cheaper per read — it is that you pay only for what you pull, you start in 30 seconds, and there is no cliff where your project suddenly requires a five-figure contract. For anyone below firehose scale, that changes the math entirely.
A cheap tool that fails half the time is not cheap. So here is the honest, public number: in the last 30 days this actor completed 3,716 of 3,719 runs successfully — a 99.9%+ success rate — while serving 40 active users. Those stats are published directly on the actor's Apify page, so you do not have to take our word for it; the run history and success rate are visible to anyone.
There is nothing to install. One HTTP request runs the actor and returns the data in the same call. Replace YOUR_APIFY_TOKEN with your Apify API token:
curl -s -X POST \
"https://api.apify.com/v2/acts/cryptosignals~twitter-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"username": "nasa",
"action": "tweets",
"maxTweets": 50
}'
That is the whole integration. username is the handle without the @, action is tweets (or profile, or search with a query), and maxTweets caps how many results you collect — which is exactly what you are billed on.
The response is clean, flat JSON — no deeply nested objects to unpack. Here is one real tweet object from a live run:
{
"tweet_id": "2080033755519947170",
"user_name": "NASA",
"user_handle": "NASA",
"tweet_text": "RT @NASAJohnson: Up, up, and away. NASA astronaut candidates ...",
"likes": 0,
"retweets": 124,
"replies": 0,
"quotes": 0,
"views": 54826,
"bookmarks": 0,
"tweet_url": "https://x.com/NASA/status/2080033755519947170",
"created_at": "Wed Jul 22 20:54:27 +0000 2026",
"is_retweet": true,
"is_reply": false,
"is_quote": false,
"language": "en",
"media_urls": []
}
| Field | Type | Description |
|---|---|---|
tweet_text | string | Full tweet content |
user_handle | string | Author's @ handle |
likes, retweets, replies, quotes | integer | Engagement metrics |
views | integer | Impression count when available |
tweet_url | string | Direct link to the tweet on x.com |
created_at | string | Timestamp the tweet was posted |
media_urls | array | URLs for attached images, video, or GIFs |
language | string | Detected language code |
Running with action: "profile" also returns profile metadata — bio, follower and following counts, tweet count, verification status, and account creation date. Output is available as JSON, CSV, or XLSX, and scheduled runs let you build continuous monitoring pipelines.
This approach reads public data only — the same tweets and profiles any logged-out visitor to x.com can see. It does not touch private or protected accounts, direct messages, or anything behind authentication. A couple of honest constraints worth knowing before you start:
Start with Apify's free $5 monthly credit — enough for about 1,000 tweets a month with no card required. Twitter/X Scraper on Apify →
Need more depth on the same platform? See our guides on collecting Twitter data at scale and scraping X/Twitter without the API.
Twitter/X is one platform. If you are tracking a brand or a niche, you usually need to watch several at once — same clean JSON output, same pay-per-result pricing across all of them:
| Platform | Actor |
|---|---|
| Twitter/X | Twitter Scraper |
| Instagram Profile Scraper | |
| Bluesky | Bluesky Scraper |
| Reddit Scraper (Fast) | |
| YouTube | YouTube Scraper |
| Pinterest Scraper | |
| Substack | Substack Scraper |