Documentation Python quickstart Blog Free tools Enterprise solutions hello@quanticdata.ioLog in
All collectors

Twitter (X) scraper API

Social & communities · v1.0.0 · x_user_tweets

$0.00025 / tweet

$0.25 / 1K · pay per delivered tweet

A Twitter scraper API for X profiles: send usernames or profile URLs and get each profile’s latest public tweets as rows, with the full text and its links expanded, exact like, reply, repost and quote counts, the date and the language, and photos and MP4 videos. No X API key and no login, billed per tweet delivered.

$0.00025 per delivered tweet · $2 free every month · Failed runs never billed

What it does

What a Twitter scraper does

Most tweet data is wanted for a short list of accounts: the brands you compete with, the people your market listens to, your own profile. Give the collector the handles and it returns what each profile posted most recently, about twenty items per profile, ready to store or to compare with yesterday. Replies and reposts are flagged, and you can turn either off to keep only what the account wrote itself.

On 30 October 2026 we read NASA’s profile: of its 20 latest items, 8 were tweets NASA wrote, 5 were replies and 7 were reposts. The most liked item on the timeline was a repost at 14,675 likes, which is the original tweet’s count, while NASA’s own best was a video post at 8,017. That is why a repost row carries the original’s text and numbers and is flagged with is_retweet: whose content performed is a different question from what an account shared.

Inputs

The whole request. Anything you leave out falls back to the default shown in the catalog.

InputTypeRequiredWhat it does
usernamesstring[]yesX handles, with or without @, or profile URLs, one per line, up to 20.
include_repliesbooleannoDeliver the profile's replies to other tweets too (default true).
include_retweetsbooleannoDeliver the profile's reposts too (default true).
countrystringnoISO 3166-1 alpha-2 code — proxy exit geo and Google locale (gl). Omit for the default pool.
max_resultsintegernoHow many tweets to deliver at most (1–200). You pay only for delivered tweets.

Outputs — 28 fields, one row per tweet

What one tweet looks like

Every delivered tweet carries these fields. Nullable means the source did not publish it — the field stays empty instead of being guessed.

FieldTypeWhat it holds
usernamestringProfile handle.
author_namestring · nullableProfile display name.
author_followersinteger · nullableProfile follower count.
author_verifiedbooleanVerified badge on the profile.
tweet_idstringTweet id.
urlstringTweet URL.
created_atstring · nullablePosted at (ISO 8601).
textstringFull text, t.co links expanded (the original's text for a repost).
langstring · nullableLanguage code X assigned.
likesinteger · nullableExact like count.
repliesinteger · nullableExact reply count.
retweetsinteger · nullableExact repost count.
quotesinteger · nullableExact quote count.
is_retweetbooleanTrue for a repost; text and counts are the original tweet's.
retweeted_userstring · nullableHandle of the reposted author.
original_tweet_idstring · nullableId of the reposted tweet.
is_replybooleanTrue for a reply.
in_reply_to_userstring · nullableHandle replied to.
in_reply_to_tweet_idstring · nullableTweet id replied to.
conversation_idstring · nullableThread (conversation) id.
is_quotebooleanTrue when the tweet quotes another.
quoted_tweet_idstring · nullableId of the quoted tweet.
hashtagsstring[]Hashtags used.
mentionsstring[]Handles mentioned.
linksstring[]Expanded link URLs.
mediaobject[]Photos and videos: type, url, alt_text, video_url (best MP4), duration_seconds.
possibly_sensitivebooleanX's sensitive-media flag.
rankinteger1-based delivery order.

Integration

One POST, typed rows

Base URL https://api.quanticdata.io/v1, Bearer auth, the same key as every other Data API. Endpoint: POST /v1/scraper/collectors/x_user_tweets/run.

curl -X POST https://api.quanticdata.io/v1/scraper/collectors/x_user_tweets/run \
  -H "Authorization: Bearer $QD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"usernames":["NASA"],"max_results":20}'

Example response

POST /v1/scraper/collectors/x_user_tweets/run
$ curl $QD/x_user_tweets/run \
    -H "Authorization: Bearer $QD_API_KEY" \
    -d '{"usernames": ["NASA"], "max_results": 20}'
{ "status": "done", "count": 20,
  "results": [
    {
      "username": "…",
      "text": "…",
      "likes": "…",
      "created_at": "…" } ],
  "cost": 0.005 }
# 20 tweets × $0.00025 · nothing delivered, nothing charged

Try it

X profile tweets, running now

Change the input and run it against the live collector — nothing to install, no sign-up.

Run it from your own code, on your own inputs

Same collector, same rows — $2 of free API credit every month, no card.

Get my free API key
Twitter (X) scraper API: from usernames, QuanticData reads the Twitter (X) page and returns one row per tweet with author_name, username and author_followers, at $0.00025 per delivered tweet.
You send X usernames; their latest public tweets come back as rows with username, text and exact likes — 28 fields on every row — and you are billed $0.00025 for each tweet actually delivered, nothing for a run that delivers none.
$0.00025 / tweet8,000 tweets on the free $2 every month
Semantic inputusernames, include_replies, include_retweets — no URL lists
Up to 200tweets per run, pagination handled for you
28 fieldsone row per tweet

Pricing

Twitter (X) Scraper API pricing

$0.00025 per delivered tweet. A run that delivers nothing costs nothing, and the $2 monthly allowance covers about 8,000 tweets before you spend anything.

$0.00025per delivered tweet$0.25 per 1,000 delivered tweets
8,000 tweetson the free allowance$2 every month, no card
Zero rowszero chargea run that delivers nothing is free
−30%on volume tiersthe catalog returns your key's price

Same wallet, same key and same $2 monthly allowance as every other Data API. Prices are launch pricing read live from the billing config — GET /v1/scraper/collectors returns the price your key actually pays.

What people build with the Twitter scraper

Three shapes of work this endpoint was designed around.

Brand and competitor tracking

Read the timelines of the accounts you follow every day and keep the history: what they posted, what got engagement, which links they pushed.

A watchlist for social listening

Analysts, founders or journalists in your market, read on a schedule: their latest takes as rows you can search and alert on, next to the threads the Reddit scraper API returns.

Datasets for AI and research

Text, language, hashtags, mentions and exact counts per tweet: the fields a classifier or a study needs, without a developer account on X.

Twitter (X) Scraper API versus rolling your own

The differences that actually cost time when you build this in-house.

DIY scraperThis collector
AccessA developer account, or the cookies of an account you riskOne API key, no X account involved
Counts“12K” labels to parseExact likes, replies, reposts and quotes
RepostsMixed in with the account’s own tweetsFlagged, with the original tweet’s text and counts
Linkst.co short linksExpanded to the real address
VideoA player to dig outMP4 address and duration as fields
BillingCalls, whatever they returnOnly delivered tweets
Twitter (X) scraper API: the POST to the x_user_tweets collector, 20 tweets delivered and the bill, 20 × $0.00025 = $0.005 in usage.cost_usd; zero tweets would cost $0.
The same call you would paste into a terminal: a Bearer key, the usernames in the body, and back the envelope every QuanticData endpoint returns — type, message, payload — where count is how many tweets arrived and usage.cost_usd is $0.005, which is 20 × $0.00025. A run that delivers nothing costs nothing.

Sources and standards

The platform documentation and standards this collector is built against — check any claim on this page against the primary source:

FAQ

Questions we get about the Twitter scraper.

Something else? Ask us

Can I scrape Twitter without an API key?

Yes. You need a QuanticData key, not one from X: the collector reads each profile’s public timeline without logging in and without a developer account, and returns the tweets as JSON. X’s own API is sold per post read through a developer account.

Is Twitter scraping still possible in 2026?

For public profiles, yes. Send up to 20 usernames in one run and each returns its latest public tweets, about twenty per profile, with exact counts, media and expanded links.

Is scraping Twitter legal?

The collector reads only what X shows publicly to a visitor who is not signed in. How you may use the data depends on X’s Terms of Service and on the law where you work, so check both for your use case.

Can I get only the tweets an account wrote itself?

Yes. Set include_replies and include_retweets to false and the run delivers only the profile’s own posts. Both are on by default.

Is there a free Twitter scraper?

Every account gets $2 of credit every month with no card, which is about 8,000 delivered tweets on this endpoint at $0.00025 each. It renews monthly, and a run that delivers nothing is never billed.

How much does one run cost?

Multiply the rows you actually receive by $0.00025. A run capped at 200 tweets — the maximum for this collector — costs $0.05 if every row comes back, and less when the listing has fewer. Volume tiers take up to 30% off, and GET /v1/scraper/collectors returns the price your key actually pays.

Run the Twitter scraper now

$2 of free credit every month, no card. Your key returns its own prices from GET /v1/scraper/collectors.

Get my free API key
Illustration: three coloured zones of the page that is read (Twitter (X) page) turn into clean JSON with the fields author_name, username and author_followers; 28 fields on every row.