X Tweet Scraper | $0.15/1K Tweets | Pay-Per-Result avatar

X Tweet Scraper | $0.15/1K Tweets | Pay-Per-Result

Pricing

from $0.12 / 1,000 tweets

Go to Apify Store
X Tweet Scraper | $0.15/1K Tweets | Pay-Per-Result

X Tweet Scraper | $0.15/1K Tweets | Pay-Per-Result

Scrape X/Twitter tweets for just $0.15 per 1,000 results. Advanced search with 40+ filters, batch tweet lookup, replies, retweeters, favoriters, quotes, and similar tweets. No API key needed, no rate limits.

Pricing

from $0.12 / 1,000 tweets

Rating

2.7

(17)

Developer

ScrapeBadger

ScrapeBadger

Maintained by Community

Actor stats

45

Bookmarked

2.6K

Total users

454

Monthly active users

23 hours

Issues response

5 days ago

Last modified

Share

X Tweet Scraper extracts public posts from X (formerly Twitter) and returns them as clean, structured JSON — tweets, replies, quotes, retweeters, likers and full advanced-search results. It is a practical X API alternative for teams who need tweet data on a schedule, with no X API key, no rate limits and no proxy setup on your side.

From $0.15 per 1,000 tweets. Eight modes, one input form.

What does X Tweet Scraper do?

It turns any X surface into a dataset you can query, export or pipe into a warehouse:

ModeWhat it returns
Advanced SearchFull X search with operators — from:, #hashtag, $cashtag, lang:, -is:retweet, date ranges
Get a Few TweetsBulk lookup of up to 100 tweet IDs per batch
Get Tweet by IDOne tweet with complete metadata
Get RepliesThe reply thread under a post
Get QuotesQuote tweets, where the opinion actually lives
Get RetweetersEvery account that amplified a post
Get FavoritersEvery account that liked a post
Get Similar TweetsX's own "related posts" for a tweet

Why scrape X (Twitter)?

  • No X API key. No developer account, no application review, no per-tier rate limits.
  • Anti-bot handled upstream. Residential proxy rotation, TLS fingerprinting and session management happen inside the ScrapeBadger API.
  • Pay only for results. $0.15 per 1,000 tweets on paid plans — a fraction of X's own API tiers.
  • Runs on Apify. Scheduling, webhooks, the API, MCP for AI agents, and integrations with Make, Zapier, Google Sheets, Slack and Airtable.
  • Partial results are kept. A transient upstream error ends the run cleanly with everything already scraped, instead of discarding rows you paid for.

What data can X Tweet Scraper extract?

Field groupFields
Coreid, text, full_text, created_at, lang, source
Authoruser_id, username, user_name
Engagementfavorite_count, retweet_count, reply_count, quote_count, view_count, bookmark_count
Contentmedia, urls, hashtags, user_mentions, poll
Threadconversation_id, in_reply_to_status_id, in_reply_to_user_id
Flagspossibly_sensitive, is_quote_status, is_retweet

Ready-to-run examples

Each of these is a live, pre-configured task — open one and press Start, no setup:

How to scrape tweets from X

  1. Click Try for free and sign in to Apify.
  2. Open Settings → Environment variables and add SCRAPEBADGER_API_KEY with your key from scrapebadger.com, ticking Secret.
  3. Pick a Mode from the dropdown.
  4. Fill in the field that mode needs — the description on each field says which modes use it.
  5. Set Max Results to cap the run.
  6. Press Start, then export as JSON, CSV, Excel or XML.

How much does it cost to scrape X?

Pricing is pay per result: you are charged per tweet delivered to the dataset, from $0.15 per 1,000 tweets on paid Apify plans. Apify adds its standard actor start fee per run.

A note we would rather state plainly than bury: runs that return an empty result set are still charged, because the upstream request is made either way. Narrow your query before scaling a schedule.

Input

See the Input tab for every option with inline documentation. A minimal run:

{
"mode": "Advanced Search",
"query": "\"your brand\" -is:retweet",
"query_type": "Latest",
"max_results": 200
}

Looking up specific tweets instead:

{
"mode": "Get a Few Tweets",
"tweets": "1930308570022576254,1921004145487515716",
"max_results": 100
}

Every mode needs its own field. The Console form prefills them, so pressing Start in the UI always works — but API, MCP and scheduled callers must pass the field explicitly, or the run fails telling you which one is missing.

Output

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel, or read it straight from the Apify API. One row per tweet:

{
"id": "1930308570022576254",
"text": "Announcing something we've been working on for a while.",
"created_at": "2026-08-16T09:30:00Z",
"username": "example",
"favorite_count": 1240,
"retweet_count": 318,
"reply_count": 87,
"view_count": 92400,
"lang": "en",
"hashtags": ["launch"]
}

What can you do with X data?

Brand monitoring and reputation

Track every mention of your brand, product or executives as it happens. Quote tweets and replies carry the opinion that raw mention counts miss — cluster them for sentiment and you have an early-warning system for PR problems.

Competitive and market intelligence

Watch a competitor's posting cadence, launch messaging and the engagement each post earns. Repetition is the tell: teams repeat what works, so their most-repeated framing is their best-performing framing.

Lead generation

The accounts that like, reply to and retweet posts in your category are self-selecting as interested. Export them, score them by bio and follower count, and you have a prospect list built from behaviour rather than firmographics.

AI, RAG and LLM training data

X is the fastest-moving public text corpus there is. Scope a search by topic and language, pull a few thousand posts, and you have a domain corpus to chunk and embed — with canonical URLs for citation.

Academic and social research

Advanced search with date ranges, language filters and operators makes reproducible datasets possible: the same query returns a comparable sample, which is what a methodology section needs.

Finance and cashtag sentiment

Retail sentiment on a ticker moves before the coverage that reports it. Poll a $cashtag on a short interval and you are reading the market's mood, not its summary.

Tips and advanced options

  • Use X's search operators. from:, to:, #hashtag, $cashtag, lang:, since:, until:, -is:retweet and quoted phrases all work in Advanced Search and do far more to control cost than any setting here.
  • Exclude retweets with -is:retweet unless you specifically want amplification data — it typically halves the row count without losing information.
  • Cap spend with Apify's Max cost per run in Console, or maxTotalChargeUsd via the API.
  • Bulk lookups are cheapest. Get a Few Tweets batches up to 100 IDs per request, so enriching known IDs costs less than re-searching for them.
  • Schedule incrementally. A daily narrow run beats one huge sweep: fresher data, smaller bill, and you build history you cannot buy later.

This Actor requests only public X fields — the same content any logged-out visitor can see. It does not access private accounts, direct messages or anything behind a login.

Results can still contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.

Frequently asked questions

Do I need an X (Twitter) API key?

No. That is the point of this Actor. You need a ScrapeBadger API key, which has a free tier, and nothing from X.

Are there rate limits?

No per-user rate limits on this Actor. Throughput is governed by the upstream proxy pool, which is managed for you.

Advanced Search reaches X's own public search index. Very old posts are reachable by ID via Get Tweet by ID or Get a Few Tweets even when search no longer surfaces them.

Can I scrape private or protected accounts?

No. Protected accounts return an "unavailable" record and the run continues — by design, and not something we will add.

Why did my run return zero results?

Almost always an over-narrow query. Test it on x.com's own search first; if it returns nothing there, it will return nothing here. Note that empty result sets are still charged.

Can I run this from my own code or an AI agent?

Yes. Use the API tab for run-and-fetch code in JavaScript, Python and CLI, or the MCP server to give an AI agent live X data.

What happens if a run fails partway?

Everything already scraped stays in the dataset. The run ends with a status message explaining where it stopped rather than discarding your results.

Your feedback and support

Found a bug, missing a field, or need a mode that is not here? Open a ticket on the Issues tab, or email support@scrapebadger.com.

Want ScrapeBadger outside Apify? The Python SDK and REST API are available for direct integration — see scrapebadger.com.