Web Data LabsBlog › X API Alternative

How to Scrape X/Twitter in 2026 Without Paying $200/mo for the Official API

July 23, 2026  ·  7 min read

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.

The problem: what the X API actually costs in 2026

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):

TierCostReality in 2026
Free$0Effectively write-only or trivial testing. No meaningful read access for data collection.
Basic$200 per monthThe tier people remember — but closed to new signups. Existing subscribers keep it; you can no longer buy it.
Pro$5,000 per monthAlso legacy, also out of reach for individuals and small teams.
Pay-per-use (new default)$0 base plus per-callRoughly $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 monthThe 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.

What you actually need (and what you don't)

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.

The alternative: pay-per-result scraping

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 needOfficial X APIPay-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 monthPast 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.

Reliability, with receipts

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.

How to call it

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.

What you get back

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": []
}

Fields returned per tweet

FieldTypeDescription
tweet_textstringFull tweet content
user_handlestringAuthor's @ handle
likes, retweets, replies, quotesintegerEngagement metrics
viewsintegerImpression count when available
tweet_urlstringDirect link to the tweet on x.com
created_atstringTimestamp the tweet was posted
media_urlsarrayURLs for attached images, video, or GIFs
languagestringDetected 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.

Limits & ethics

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:

Try it

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.

📡 The Social Monitoring Suite

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:

PlatformActor
Twitter/XTwitter Scraper
InstagramInstagram Profile Scraper
BlueskyBluesky Scraper
RedditReddit Scraper (Fast)
YouTubeYouTube Scraper
PinterestPinterest Scraper
SubstackSubstack Scraper