Skip to content

Sorsa API vs Bright Data

Sorsa API is the better choice over Bright Data for X data: tweets cost from $0.014 per 1,000 instead of $1.50, and one request returns the data instead of starting a collection job.

Sorsa API

$0.014per 1,000 tweets

45 endpointsfor X data

10 of 10scorecard checks passed

Bright Data

$1.50per 1,000 tweets

2 scrapersfor X data

2 of 10scorecard checks passed

Short answer: Bright Data sells X data through two scrapers, posts and profiles, at $1.50 per 1,000 records, and delivers bulk results as jobs you trigger, poll and download. Sorsa API is a REST API built for X data: 45 endpoints, 100 tweets or profiles per request, 200 followers per page, and the JSON in the response at 20 requests per second on every plan. For X data in your code, choose Sorsa API, with search back to 2006 and campaign checks on the same key, and run your own job on 100 free requests first.

  • Updated
  • 13 min read
  • Published by the Sorsa API team. Bright Data's figures come from its own pages, linked below.

#Seven numbers behind the verdict

  1. Over 100x less per tweet.

    Sorsa API returns 100 tweets per request, so 1,000 tweets cost from $0.014, against $1.50 per 1,000 post records on Bright Data's pay-as-you-go plan.

  2. 45 endpoints against two scrapers.

    Bright Data's X catalog lists Posts and Profiles; Sorsa API adds search back to 2006, followers, replies, quotes, retweeters, Lists, Communities, Spaces, trends and checks.

  3. The data comes back in the response.

    One Sorsa API request returns up to 100 tweets as JSON, while Bright Data's live endpoint takes one input and hands back a snapshot ID after 1 minute.

  4. Nothing to poll.

    Sorsa API needs no job table, status loop or download step, and it answers 20 requests per second on every plan, up to 2,000 tweets a second.

  5. Failed requests cost nothing.

    Sorsa API never charges a failed request, while Bright Data's own FAQ bills records that fail because the input was incorrect, at $1.50 per 1,000.

  6. Your results stay yours.

    Sorsa API deletes full responses after 30 days; Bright Data's agreement lets it keep the data it collects for you and use it for its own purposes.

  7. A price that stays put.

    All eight Sorsa API plans, from 10K to 10M requests a month, keep their price while you stay subscribed; Bright Data's agreement can change with or without notice.

#Two scrapers, or 45 endpoints

Bright Data's catalog of X scrapers, the machine-readable list its docs refresh every day, has two entries: Posts and Profiles. Posts take a post URL, or a profile URL with a date range and a number of posts. Profiles take a profile URL or a username. The records carry counts of replies, reposts, quotes and followers, but not the accounts or posts behind those counts.

Sorsa API covers those three jobs and fourteen more, each with its own endpoint and one documented schema. A tweet arrives with its author's full profile, its language, its conversation ID and the full quoted tweet, so one response feeds a dataset without a second pass.

X DATA JOBSorsa API: 17 of 17Bright Data: 3 of 17Tweets by ID or linkPOST /tweet-info-bulkPosts scraperAn account's posts, by datePOST /user-tweetsPosts scraperProfiles by handle or IDGET /info-batchProfiles scraperSearch with X operators, back to 2006POST /search-tweetsnot in its catalogMentions of an accountPOST /mentionsnot in its catalogFollowers of an accountGET /followersa count onlyAccounts it followsGET /followsa count onlyReplies to a postPOST /commentsa count onlyQuotes of a postPOST /quotesa count onlyRetweeters of a postPOST /retweetersa count onlyX Lists: members and tweetsGET /list-tweetsnot in its catalogCommunitiesPOST /community-tweetsnot in its catalogSpacesGET /spacesnot in its catalogTrends by locationGET /trendsnot in its catalogX ArticlesPOST /articlenot in its catalogAccount details: country, past usernamesGET /aboutnot in its catalogFollow, retweet, quote and comment checksPOST /check-follow + 4not in its catalogSorsa API covers all 17 jobs. Bright Data's two X scrapers cover 3; for 5 more,its records carry only a count. The other 9 are not in its X catalog.
Sorsa API has an endpoint for all 17 jobs; Bright Data's two X scrapers cover 3 of them.

Keywords show the gap best. Bright Data's own tutorial for a keyword listener finds X posts through Google results first, the top 10 links per query from its SERP API, and only then sends those links to its Posts scraper. On Sorsa API, POST /search-tweets takes X's own search operators, reaches back to 2006 and returns about 20 tweets per request, each with its author.

The five jobs below are the ones teams buy X data for. Sorsa API is priced at its best plan rate, $1.40 per 1,000 requests, with the time at 20 requests per second. Bright Data is priced at the pay-as-you-go rates on its own pages, $1.50 per 1,000 records and $1.50 per 1,000 SERP API requests, as we saw them on November 3, 2026.

#The same five jobs on both bills

Rehydrate 1M tweet IDs

A research team holds 1M tweet IDs from a published dataset and needs every full tweet back.

Sorsa API

Total: from $14

  • 10K requests100 tweets each, POST /tweet-info-bulk
  • Time at 20 requests per secondabout 8 minutes
  • Author profile in every tweetincluded

The data comes back in the responseyes

Bright Data

Total: $1,500

  • 1M post records at $1.50 per 1,000$1,500
  • Inputone post URL per record, up to 5,000 per call
  • Resultsa snapshot to download, kept 30 days

The data comes back in the responseno, a collection job

Export 1M followers of an account

A growth team needs every follower of a competitor's account, each with a full profile.

Sorsa API

Total: from $7

  • 5,000 requests200 followers each, GET /followers
  • Time at 20 requests per secondabout 4 minutes

Returns the list of followersyes

Bright Data

Total: not offered

  • Follower lists in its X catalognone
  • What a profile record holdsfollower and following counts

Returns the list of followersno

Watch a keyword every 5 minutes for a month

A brand team wants every new post that mentions its product, checked 12 times an hour for 30 days.

Sorsa API

Total: from $12.10

  • 8,640 requestsabout 20 latest tweets each, POST /search-tweets
  • Search operatorsX's own, back to 2006

Searches X itselfyes

Bright Data

Total: up to $142.56

  • Keyword input on its X scrapersnone
  • Its tutorial's routeGoogle results first, top 10 per query
  • 8,640 SERP API searches at $1.50 per 1,000$12.96
  • Up to 86.4K post records at $1.50 per 1,000$129.60

Searches X itselfno

Build a research set of 100K posts

A lab needs 100K public posts on one topic for a study, from a query it can publish with the paper.

Sorsa API

Total: from $7

  • 5,000 requestsabout 20 tweets each, POST /search-tweets
  • Time at 20 requests per secondabout 4 minutes

The set matches your exact X queryyes

Bright Data

Total: $250

  • X posts dataset, minimum order$250
  • Price per recordup to $0.0025

The set matches your exact X queryno, dataset filters

Check 10K giveaway entries for a follow

A campaign team must confirm that each of 10K entrants follows its account before it draws the winners.

Sorsa API

Total: from $14

  • 10K requestsone check each, POST /check-follow
  • Time at 20 requests per secondabout 8 minutes

One request answers "does this user follow you?"yes

Bright Data

Total: not offered

  • Follow, retweet or quote checksnone
  • Follower lists to check againstnone

One request answers "does this user follow you?"no

#The answer in the response, not a snapshot to fetch

Bright Data's Scraper API has two ways in. The live endpoint, POST /datasets/v3/scrape, is "built for a single input", in Bright Data's words: when collection runs past 1 minute, it answers HTTP 202 with a snapshot ID, and your code polls for the result. Anything larger is a job. You trigger it with up to 5,000 URLs, poll its progress until the status reads ready, then download the snapshot, which Bright Data keeps for 30 days. Its docs call the workflow "trigger, poll, download", and discovery requests, such as an account's posts by date, always run that way.

Sorsa API answers every request with the data. One call to POST /tweet-info-bulk takes up to 100 tweet IDs or links and returns all 100 tweets with their authors in the same response, so there is no job table to keep and no snapshot that expires. At 20 requests per second on every plan, that is up to 2,000 tweets a second.

Sorsa API: one requestBright Data: a collection jobPOST /tweet-info-bulk{"tweet_links": [100 IDs or links]}200 OK{"tweets": [100 tweets, authors in]}1 call, data in itPOST /datasets/v3/trigger[up to 5,000 post URLs]200 {"snapshot_id": "sd_..."}GET /datasets/v3/progress/sd_...{"status": "running"}, repeat{"status": "ready"}GET /datasets/v3/snapshot/sd_...200 [records]3+ calls, snapshot kept 30 daysBright Data's live endpoint, POST /datasets/v3/scrape, is built for one input: if collection runs past1 minute it answers 202 with a snapshot ID. Bulk and discovery requests run as jobs, like the one above.
One Sorsa API call returns 100 tweets; a Bright Data collection job takes three or more calls and leaves a snapshot to download.

#A ten-point scorecard for X data

Ten checks decide whether a source of X data holds up in production code: what a result costs, what one request returns, how far the coverage goes and what the terms promise. They build on our guide on how to choose a Twitter API.

Sorsa API passes all ten checks; Bright Data passes two.

CheckSorsa API10 of 10Bright Data2 of 10
Price per 1,000 resultsfrom $0.014 per 1,000 tweets$1.50 per 1,000 records
Batch lookups100 tweets or profiles per requestjobs of up to 5,000 URLs, each record billed
The data in the responseevery request returns JSONone input; past 1 minute, a snapshot ID
A free test with no deadline100 requests that never expire5K records a month, no rollover
What it needs from your X accountnothing: read-onlynothing for posts and profiles
A schema built for Xlang and thread IDs on every tweettext in description, no lang field
An endpoint for every step45 endpoints, checks includedtwo scrapers: posts and profiles
A predictable billone price per request, failed ones freeper record; input errors billed
Search with X operatorsback to 2006no keyword input for X
A price lock in the termsprice never goes up while subscribedterms change with or without notice

#Bright Data X Scraper API pricing, explained

Bright Data prices its X (Twitter) Scraper API per record, and a record is one post or one profile. Its Web Scraper API pricing (opens in a new tab) lists four plans, the same for every site it collects from:

Bright Data planPriceRecordsPer 1,000 records
Free tier$05K a month, no rolloverfree
Pay as you goper recordas many as you buy$1.50
Scale$499 a month384K included$1.30 after 384K
Enterprisecustomcustomvolume discounts

The free credits reset on the 1st of each month and are shared with Bright Data's other APIs. A promo code on the page takes 60% off the Scraper API for three months; the jobs on this page use the list price. Failed deliveries cost nothing, but records that fail because the input was incorrect are billed. Bright Data's X datasets are a separate purchase: up to $0.0025 per record with a $250 minimum order, which is $2.50 per 1,000.

Sorsa API prices the request instead, the same on every endpoint. A request carries 100 tweets or profiles, 200 followers or about 20 search results, so the price per 1,000 follows from your plan's rate:

Data, per 1,000Sorsa APIBright Data, seen November 3, 2026
Tweets by ID or linkfrom $0.014$1.50 (post records)
Tweets from a searchfrom $0.07no X search
Profilesfrom $0.014$1.50 (profile records)
Followers of an accountfrom $0.007not offered
A ready set of postsfrom $0.07 through search$2.50, with a $250 minimum

A follow, retweet or quote check costs from $0.0014 on Sorsa API, one request each, and Bright Data has no checks for X.

Tweets to read

Sorsa API

from$14

for 1M tweets

from $0.014 per 1,000 tweets

Bright Data

$1,500

for 1M tweets

$1.50 per 1,000 records

Over 100x less on Sorsa API

#Bright Data's agreement and docs, quoted

We read Bright Data's Master Service Agreement and its Scraper API docs. Every quote below is Bright Data's own, as we saw it on November 3, 2026, with a screenshot.

  • Failed records (Scraper API FAQs)

    Bright Data

    “Records that fail because the input was incorrect are still billed”

    Bright Data, docs.brightdata.com/products/scrapers/scrapers-library/faqs, seen Nov 3, 2026: "Records that fail because the input was incorrect are still billed"Full capture
    Seen Nov 3, 2026 on docs.brightdata.com/products/scrapers/scrapers-library/faqs (opens in a new tab)Evidence 2026-11-03/docs_brightdata_com_products_scrapers_scrapers_library_faqs

    Sorsa API

    Failed requests are never charged on Sorsa API.

  • Data collected for you (Master Service Agreement 10.2)

    Bright Data

    “data it has collected or delivered to its Clients and may use it for its own purposes”

    Bright Data, brightdata.com/license, seen Nov 3, 2026: "data it has collected or delivered to its Clients and may use it for its own purposes"Full capture
    Seen Nov 3, 2026 on brightdata.com/license (opens in a new tab)Evidence 2026-11-03/brightdata_com_license

    Sorsa API

    Full responses are kept for 30 days, then deleted, and X never learns who is asking.

  • Liability cap (Master Service Agreement 7)

    Bright Data

    “during the one month period prior to the Event”

    Bright Data, brightdata.com/license#toc_1_7, seen Nov 3, 2026: "during the one month period prior to the Event"Full capture
    Seen Nov 3, 2026 on brightdata.com/license#toc_1_7 (opens in a new tab)Evidence 2026-11-03/brightdata_com_license_toc_1_7

    Sorsa API

    The greater of three months of fees or $100 (Terms of Service 15.2).

  • Changes to the agreement (Master Service Agreement 11.7)

    Bright Data

    “with or without notice to the Client”

    Bright Data, brightdata.com/license#toc_1_11, seen Nov 3, 2026: "with or without notice to the Client"Full capture
    Seen Nov 3, 2026 on brightdata.com/license#toc_1_11 (opens in a new tab)Evidence 2026-11-03/brightdata_com_license_toc_1_11

    Sorsa API

    Material changes are announced in advance, and your price never goes up while you stay subscribed (Terms 20.1 and 8.10).

  • Too many 429s (Scraper API limits)

    Bright Data

    “Bright Data blocks the IP on every API request until support clears it”

    Bright Data, docs.brightdata.com/products/scrapers/limits, seen Nov 3, 2026: "Bright Data blocks the IP on every API request until support clears it"Full capture
    Seen Nov 3, 2026 on docs.brightdata.com/products/scrapers/limits (opens in a new tab)Evidence 2026-11-03/docs_brightdata_com_products_scrapers_limits

    Sorsa API

    A 429 from Sorsa API covers only the excess requests of that second: no data is lost and your key is not penalized.

  • Live requests (Bright Data docs, sync and async)

    Bright Data

    “built for a single input”

    Bright Data, docs.brightdata.com/concepts/sync-vs-async, seen Nov 3, 2026: "built for a single input"Full capture
    Seen Nov 3, 2026 on docs.brightdata.com/concepts/sync-vs-async (opens in a new tab)Evidence 2026-11-03/docs_brightdata_com_concepts_sync_vs_async

    Sorsa API

    One Sorsa API request takes up to 100 tweet IDs or links and returns them all in the response.

#For AI agents: 40 X tools in one server

An agent that needs X data calls one Sorsa API tool and gets the data back. The Twitter MCP server runs with npx -y sorsa-mcp, is listed on npm and in the official MCP Registry, and carries 40 tools, every one of them for X data: search, timelines, followers, Lists, Communities, Spaces, trends and the campaign checks. It is read-only by design, so an agent can look things up and can never post.

Bright Data's MCP server reaches X data through the same two scrapers, which its README lists as "posts, posts by profile". There is no X scraper behind it for followers, replies, a keyword search or a follow check, and the posts it does return arrive through a scraper run. With Sorsa API every tool returns the same documented schema, so the agent's code and prompts stay the same from one task to the next.

#Plans and contracts for serious volume

Sorsa API has been in production since 2022, first as TweetScout API. Its eight plans run from 10K to 10M requests a month at published prices, and from 1M requests a month you can get higher rate limits and an SLA we sign with you. Business adds a dedicated account manager, Hyperscale runs on dedicated infrastructure, and above 10M requests, or for custom terms and invoices, you can talk to sales.

The response schema stays the same, so integrations keep working, and your price never goes up while your subscription stays active (Terms of Service, Section 8.10). How Sorsa API protects your key and your data is on uptime and security.

#Move a Bright Data X job to Sorsa API

Every Bright Data X input has a Sorsa API endpoint, and the fields keep their meaning under new names. Run your first job on the free requests, then follow the docs quickstart (opens in a new tab).

Bright Data inputSorsa API endpointPer request
Posts, by post URLPOST /tweet-info-bulk (opens in a new tab) with tweet_links (IDs or links)100 tweets
Posts, by profile URL with start_date and end_datePOST /search-tweets (opens in a new tab) with from: and since: / until:, or POST /user-tweetsabout 20 tweets
Profiles, by profile URLGET /info-batch (opens in a new tab) with usernames or user_ids100 profiles
Profiles, by user nameGET /info with username1 profile
No X input: follower listsGET /followers (opens in a new tab), GET /follows200 profiles
No X input: replies, quotes, retweetersPOST /comments, POST /quotes, POST /retweetersa page each
No X input: campaign checksPOST /check-follow, POST /check-retweet, POST /check-quoted1 check

A Bright Data post record names its fields after social posts in general; a Sorsa API tweet uses X's own terms:

In Bright Data's post recordIn Sorsa API's response
idid (a string)
descriptionfull_text
date_postedcreated_at (ISO 8601)
user_posted, nameuser.username, user.display_name
likes, reposts, replies, quotes, views, bookmarkslikes_count, retweet_count, reply_count, quote_count, view_count, bookmark_count
quoted_postquoted_status (the full quoted tweet)
parent_post_detailsin_reply_to_tweet_id, in_reply_to_username
followers, biography, is_verifieduser.followers_count, user.description, user.verified
no fieldlang, conversation_id_str

In a Bright Data profile record the handle sits in id and the numeric ID in x_id; Sorsa API returns them as username and id, with display_name, description, followers_count, followings_count, tweets_count and created_at beside them.

100 tweets by ID in one request
curl -X POST "https://api.sorsa.io/v3/tweet-info-bulk" \
  -H "ApiKey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"tweet_links": ["20", "1683559267524136962"]}'

The response holds the tweets, so the trigger, the status loop and the download step all go away. For a first export without code, the API playground runs the same requests in your browser and saves the results as CSV, Excel or JSON.

#For X data, Sorsa API

For X data in your code, Sorsa API is the better pick than Bright Data on every job priced here. A million tweet IDs cost from $14 instead of $1,500, follower lists and campaign checks come with the same key, and every request returns its data in the response instead of a snapshot to collect later. More comparisons are on our Twitter API comparison page, including Sorsa vs Apify, the other platform that buyers often weigh against Bright Data.

#How we checked

The pages behind this comparison, all read on November 3, 2026: Bright Data's X Scraper API page, its Web Scraper API and SERP API pricing, its X datasets page, its Scraper API docs (the X introduction, the catalog of X scrapers, limits, async requests, sync and async, the FAQ and the free tier), its keyword listener tutorial, its Master Service Agreement and its MCP server's README. We saved a screenshot and an archive of every page we quote; on brightdata.com we hid the cookie banner before the screenshot, without answering it. Sorsa API's numbers come from our pricing page and the live API reference, and prices "from" use our best plan rate. Bright Data's figures are the ones its own pages publish; we did not run its collection jobs.

#FAQ

Is Sorsa API better than Bright Data for Twitter data?

Yes. Sorsa API returns tweets from $0.014 per 1,000, against $1.50 per 1,000 records on Bright Data, and one request returns up to 100 tweets as JSON instead of a job to poll. It has 45 endpoints, including search back to 2006, follower lists and campaign checks, where Bright Data's X catalog has two scrapers. It passes all ten checks on this page.

How much does Bright Data's X Scraper API cost?

On November 3, 2026, Bright Data listed $1.50 per 1,000 records on pay as you go, and $499 a month on Scale with 384K records included and $1.30 per 1,000 after that. A record is one post or one profile. The free tier gives 5K records a month that don't roll over, and X datasets cost up to $0.0025 per record with a $250 minimum order.

What do 1 million tweets cost on Bright Data and on Sorsa API?

On Bright Data, 1M post records cost $1,500 at the pay-as-you-go rate, or $1,299.80 on the Scale plan, collected as jobs and downloaded as snapshots. On Sorsa API, 1M tweets by ID take 10K requests, from $14, and about 8 minutes at 20 requests per second, with each tweet's author included. A search returns about 20 tweets per request, from $0.07 per 1,000 results.

Can Bright Data get the followers of an X account?

Not as a list. Bright Data's X catalog has two scrapers, Posts and Profiles, and a profile record carries follower and following counts, not the accounts behind them. Sorsa API returns followers 200 per page with GET /followers, each with a full profile, so 1M followers take 5,000 requests, from $7, and about 4 minutes.

Does Bright Data's X Scraper API return data in the response?

Only for one input that finishes within a minute. Its live endpoint is built for a single input, and when collection runs past 1 minute it answers HTTP 202 with a snapshot ID. Bulk and discovery requests run as jobs you trigger, poll and download, and the snapshots are kept for 30 days. Every Sorsa API request returns its data, up to 100 tweets, in the response.

Can I search X by keyword with Bright Data?

Not with its X scrapers, which take post URLs, profile URLs and usernames. Bright Data's own keyword listener tutorial finds X posts through Google results first, the top 10 links per query from its SERP API, then collects each post as a record. Sorsa API's POST /search-tweets takes X's own operators, goes back to 2006 and returns about 20 tweets per request, from $0.07 per 1,000 results.

How do I move a Bright Data X job to Sorsa API?

Map each input to its endpoint: post URLs to POST /tweet-info-bulk with 100 per request, profile URLs to GET /info-batch, and an account's posts by date to POST /search-tweets with from: and date operators. Replace the trigger, poll and download steps with one request per page, loop on next_cursor, and rename fields such as description to full_text.

Does Sorsa API need my X account?

No. Sorsa API never asks for your X login and is read-only by design: no posting, likes, follows or DMs, so nothing it does can touch your X account. You call it with one API key in the ApiKey header. To post, pair it with the official X API.

Disclaimers

Bright Data is a trademark of its owner. Sorsa API is not affiliated with Bright Data.

X and the X logo are trademarks of X Corp. Sorsa API is not affiliated with, endorsed by, or sponsored by X Corp.

Published by the Sorsa API team. Bright Data's figures come from its own pages, linked above, as we saw them on November 3, 2026.

By the Sorsa API team. We build and run Sorsa API, the read-only Twitter/X API and scraper, in production since 2022 (formerly TweetScout API) with 6B+ requests served. About Sorsa API

Sorsa API vs Bright Data

Sorsa API is the better choice over Bright Data for X data: tweets cost from $0.014 per 1,000 instead of $1.50, and one request returns the data instead of starting a collection job.

Sorsa API

$0.014per 1,000 tweets

45 endpointsfor X data

10 of 10scorecard checks passed

Bright Data

$1.50per 1,000 tweets

2 scrapersfor X data

2 of 10scorecard checks passed

Short answer: Bright Data sells X data through two scrapers, posts and profiles, at $1.50 per 1,000 records, and delivers bulk results as jobs you trigger, poll and download. Sorsa API is a REST API built for X data: 45 endpoints, 100 tweets or profiles per request, 200 followers per page, and the JSON in the response at 20 requests per second on every plan. For X data in your code, choose Sorsa API, with search back to 2006 and campaign checks on the same key, and run your own job on 100 free requests first.

Updated , 13 min read

Published by the Sorsa API team. Bright Data's figures come from its own pages, linked below.

Seven numbers behind the verdict

  1. Over 100x less per tweet.

    Sorsa API returns 100 tweets per request, so 1,000 tweets cost from $0.014, against $1.50 per 1,000 post records on Bright Data's pay-as-you-go plan.

  2. 45 endpoints against two scrapers.

    Bright Data's X catalog lists Posts and Profiles; Sorsa API adds search back to 2006, followers, replies, quotes, retweeters, Lists, Communities, Spaces, trends and checks.

  3. The data comes back in the response.

    One Sorsa API request returns up to 100 tweets as JSON, while Bright Data's live endpoint takes one input and hands back a snapshot ID after 1 minute.

  4. Nothing to poll.

    Sorsa API needs no job table, status loop or download step, and it answers 20 requests per second on every plan, up to 2,000 tweets a second.

  5. Failed requests cost nothing.

    Sorsa API never charges a failed request, while Bright Data's own FAQ bills records that fail because the input was incorrect, at $1.50 per 1,000.

  6. Your results stay yours.

    Sorsa API deletes full responses after 30 days; Bright Data's agreement lets it keep the data it collects for you and use it for its own purposes.

  7. A price that stays put.

    All eight Sorsa API plans, from 10K to 10M requests a month, keep their price while you stay subscribed; Bright Data's agreement can change with or without notice.

Two scrapers, or 45 endpoints

Bright Data's catalog of X scrapers, the machine-readable list its docs refresh every day, has two entries: Posts and Profiles. Posts take a post URL, or a profile URL with a date range and a number of posts. Profiles take a profile URL or a username. The records carry counts of replies, reposts, quotes and followers, but not the accounts or posts behind those counts.

Sorsa API covers those three jobs and fourteen more, each with its own endpoint and one documented schema. A tweet arrives with its author's full profile, its language, its conversation ID and the full quoted tweet, so one response feeds a dataset without a second pass.

Sorsa API: 17 of 17 Bright Data: 3 of 17 Tweets by ID or link POST /tweet-info-bulk Posts scraper An account's posts, by date POST /user-tweets Posts scraper Profiles by handle or ID GET /info-batch Profiles scraper Search with X operators, back to 2006 POST /search-tweets not in its catalog Mentions of an account POST /mentions not in its catalog Followers of an account GET /followers a count only Accounts it follows GET /follows a count only Replies to a post POST /comments a count only Quotes of a post POST /quotes a count only Retweeters of a post POST /retweeters a count only X Lists: members and tweets GET /list-tweets not in its catalog Communities POST /community-tweets not in its catalog Spaces GET /spaces not in its catalog Trends by location GET /trends not in its catalog X Articles POST /article not in its catalog Account details: country, past usernames GET /about not in its catalog Follow, retweet, quote and comment checks POST /check-follow + 4 not in its catalog Sorsa API covers all 17. Bright Data covers 3; for 5 more its records carry only a count.
Sorsa API has an endpoint for all 17 jobs; Bright Data's two X scrapers cover 3 of them.

Keywords show the gap best. Bright Data's own tutorial for a keyword listener finds X posts through Google results first, the top 10 links per query from its SERP API, and only then sends those links to its Posts scraper. On Sorsa API, POST /search-tweets takes X's own search operators, reaches back to 2006 and returns about 20 tweets per request, each with its author.

The five jobs below are the ones teams buy X data for. Sorsa API is priced at its best plan rate, $1.40 per 1,000 requests, with the time at 20 requests per second. Bright Data is priced at the pay-as-you-go rates on its own pages, $1.50 per 1,000 records and $1.50 per 1,000 SERP API requests, as we saw them on November 3, 2026.

The same five jobs on both bills

Rehydrate 1M tweet IDs

A research team holds 1M tweet IDs from a published dataset and needs every full tweet back.

Sorsa API

Total: from $14

  • 10K requests100 tweets each, POST /tweet-info-bulk
  • Time at 20 requests per secondabout 8 minutes
  • Author profile in every tweetincluded

The data comes back in the responseyes

Bright Data

Total: $1,500

  • 1M post records at $1.50 per 1,000$1,500
  • Inputone post URL per record, up to 5,000 per call
  • Resultsa snapshot to download, kept 30 days

The data comes back in the responseno, a collection job

Export 1M followers of an account

A growth team needs every follower of a competitor's account, each with a full profile.

Sorsa API

Total: from $7

  • 5,000 requests200 followers each, GET /followers
  • Time at 20 requests per secondabout 4 minutes

Returns the list of followersyes

Bright Data

Total: not offered

  • Follower lists in its X catalognone
  • What a profile record holdsfollower and following counts

Returns the list of followersno

Watch a keyword every 5 minutes for a month

A brand team wants every new post that mentions its product, checked 12 times an hour for 30 days.

Sorsa API

Total: from $12.10

  • 8,640 requestsabout 20 latest tweets each, POST /search-tweets
  • Search operatorsX's own, back to 2006

Searches X itselfyes

Bright Data

Total: up to $142.56

  • Keyword input on its X scrapersnone
  • Its tutorial's routeGoogle results first, top 10 per query
  • 8,640 SERP API searches at $1.50 per 1,000$12.96
  • Up to 86.4K post records at $1.50 per 1,000$129.60

Searches X itselfno

Build a research set of 100K posts

A lab needs 100K public posts on one topic for a study, from a query it can publish with the paper.

Sorsa API

Total: from $7

  • 5,000 requestsabout 20 tweets each, POST /search-tweets
  • Time at 20 requests per secondabout 4 minutes

The set matches your exact X queryyes

Bright Data

Total: $250

  • X posts dataset, minimum order$250
  • Price per recordup to $0.0025

The set matches your exact X queryno, dataset filters

Check 10K giveaway entries for a follow

A campaign team must confirm that each of 10K entrants follows its account before it draws the winners.

Sorsa API

Total: from $14

  • 10K requestsone check each, POST /check-follow
  • Time at 20 requests per secondabout 8 minutes

One request answers "does this user follow you?"yes

Bright Data

Total: not offered

  • Follow, retweet or quote checksnone
  • Follower lists to check againstnone

One request answers "does this user follow you?"no

The answer in the response, not a snapshot to fetch

Bright Data's Scraper API has two ways in. The live endpoint, POST /datasets/v3/scrape, is "built for a single input", in Bright Data's words: when collection runs past 1 minute, it answers HTTP 202 with a snapshot ID, and your code polls for the result. Anything larger is a job. You trigger it with up to 5,000 URLs, poll its progress until the status reads ready, then download the snapshot, which Bright Data keeps for 30 days. Its docs call the workflow "trigger, poll, download", and discovery requests, such as an account's posts by date, always run that way.

Sorsa API answers every request with the data. One call to POST /tweet-info-bulk takes up to 100 tweet IDs or links and returns all 100 tweets with their authors in the same response, so there is no job table to keep and no snapshot that expires. At 20 requests per second on every plan, that is up to 2,000 tweets a second.

Sorsa API: one request POST /tweet-info-bulk {"tweet_links": [100 IDs or links]} 200 OK {"tweets": [100 tweets, authors in]} 1 call, data in it Bright Data: a collection job POST /datasets/v3/trigger [up to 5,000 post URLs] 200 {"snapshot_id": "sd_..."} GET /datasets/v3/progress/sd_... {"status": "running"}, repeat {"status": "ready"} GET /datasets/v3/snapshot/sd_... 200 [records] 3+ calls, kept 30 days Its live endpoint, POST /datasets/v3/scrape, is built for one input: past 1 minute it answers 202 with a snapshot ID.
One Sorsa API call returns 100 tweets; a Bright Data collection job takes three or more calls and leaves a snapshot to download.

A ten-point scorecard for X data

Ten checks decide whether a source of X data holds up in production code: what a result costs, what one request returns, how far the coverage goes and what the terms promise. They build on our guide on how to choose a Twitter API.

10 of 10 Sorsa API2 of 10 Bright Data

Sorsa API passes all ten checks; Bright Data passes two.

  • Price per 1,000 results

    Sorsa API
    from $0.014 per 1,000 tweets
    Bright Data
    $1.50 per 1,000 records
  • Batch lookups

    Sorsa API
    100 tweets or profiles per request
    Bright Data
    jobs of up to 5,000 URLs, each record billed
  • The data in the response

    Sorsa API
    every request returns JSON
    Bright Data
    one input; past 1 minute, a snapshot ID
  • A free test with no deadline

    Sorsa API
    100 requests that never expire
    Bright Data
    5K records a month, no rollover
  • What it needs from your X account

    Sorsa API
    nothing: read-only
    Bright Data
    nothing for posts and profiles
The other 5 checks
  • A schema built for X

    Sorsa API
    lang and thread IDs on every tweet
    Bright Data
    text in description, no lang field
  • An endpoint for every step

    Sorsa API
    45 endpoints, checks included
    Bright Data
    two scrapers: posts and profiles
  • A predictable bill

    Sorsa API
    one price per request, failed ones free
    Bright Data
    per record; input errors billed
  • Search with X operators

    Sorsa API
    back to 2006
    Bright Data
    no keyword input for X
  • A price lock in the terms

    Sorsa API
    price never goes up while subscribed
    Bright Data
    terms change with or without notice

Bright Data X Scraper API pricing, explained

Bright Data prices its X (Twitter) Scraper API per record, and a record is one post or one profile. Its Web Scraper API pricing (opens in a new tab) lists four plans, the same for every site it collects from:

  • Free tier

    Price
    $0
    Records
    5K a month, no rollover
    Per 1,000 records
    free
  • Pay as you go

    Price
    per record
    Records
    as many as you buy
    Per 1,000 records
    $1.50
  • Scale

    Price
    $499 a month
    Records
    384K included
    Per 1,000 records
    $1.30 after 384K
  • Enterprise

    Price
    custom
    Records
    custom
    Per 1,000 records
    volume discounts

The free credits reset on the 1st of each month and are shared with Bright Data's other APIs. A promo code on the page takes 60% off the Scraper API for three months; the jobs on this page use the list price. Failed deliveries cost nothing, but records that fail because the input was incorrect are billed. Bright Data's X datasets are a separate purchase: up to $0.0025 per record with a $250 minimum order, which is $2.50 per 1,000.

Sorsa API prices the request instead, the same on every endpoint. A request carries 100 tweets or profiles, 200 followers or about 20 search results, so the price per 1,000 follows from your plan's rate:

  • Tweets by ID or link

    Sorsa API
    from $0.014
    Bright Data, seen November 3, 2026
    $1.50 (post records)
  • Tweets from a search

    Sorsa API
    from $0.07
    Bright Data, seen November 3, 2026
    no X search
  • Profiles

    Sorsa API
    from $0.014
    Bright Data, seen November 3, 2026
    $1.50 (profile records)
  • Followers of an account

    Sorsa API
    from $0.007
    Bright Data, seen November 3, 2026
    not offered
  • A ready set of posts

    Sorsa API
    from $0.07 through search
    Bright Data, seen November 3, 2026
    $2.50, with a $250 minimum

A follow, retweet or quote check costs from $0.0014 on Sorsa API, one request each, and Bright Data has no checks for X.

Tweets to read

Sorsa API

from$14

for 1M tweets

from $0.014 per 1,000 tweets

Bright Data

$1,500

for 1M tweets

$1.50 per 1,000 records

Over 100x less on Sorsa API

Bright Data's agreement and docs, quoted

We read Bright Data's Master Service Agreement and its Scraper API docs. Every quote below is Bright Data's own, as we saw it on November 3, 2026, with a screenshot.

  • Failed records (Scraper API FAQs)

    Bright Data

    “Records that fail because the input was incorrect are still billed”

    Bright Data, docs.brightdata.com/products/scrapers/scrapers-library/faqs, seen Nov 3, 2026: Full capture
    Seen Nov 3, 2026 on docs.brightdata.com/products/scrapers/scrapers-library/faqs (opens in a new tab)Evidence 2026-11-03/docs_brightdata_com_products_scrapers_scrapers_library_faqs

    Sorsa API

    Failed requests are never charged on Sorsa API.

  • Data collected for you (Master Service Agreement 10.2)

    Bright Data

    “data it has collected or delivered to its Clients and may use it for its own purposes”

    Bright Data, brightdata.com/license, seen Nov 3, 2026: Full capture
    Seen Nov 3, 2026 on brightdata.com/license (opens in a new tab)Evidence 2026-11-03/brightdata_com_license

    Sorsa API

    Full responses are kept for 30 days, then deleted, and X never learns who is asking.

  • Liability cap (Master Service Agreement 7)

    Bright Data

    “during the one month period prior to the Event”

    Bright Data, brightdata.com/license#toc_1_7, seen Nov 3, 2026: Full capture
    Seen Nov 3, 2026 on brightdata.com/license#toc_1_7 (opens in a new tab)Evidence 2026-11-03/brightdata_com_license_toc_1_7

    Sorsa API

    The greater of three months of fees or $100 (Terms of Service 15.2).

  • Changes to the agreement (Master Service Agreement 11.7)

    Bright Data

    “with or without notice to the Client”

    Bright Data, brightdata.com/license#toc_1_11, seen Nov 3, 2026: Full capture
    Seen Nov 3, 2026 on brightdata.com/license#toc_1_11 (opens in a new tab)Evidence 2026-11-03/brightdata_com_license_toc_1_11

    Sorsa API

    Material changes are announced in advance, and your price never goes up while you stay subscribed (Terms 20.1 and 8.10).

  • Too many 429s (Scraper API limits)

    Bright Data

    “Bright Data blocks the IP on every API request until support clears it”

    Bright Data, docs.brightdata.com/products/scrapers/limits, seen Nov 3, 2026: Full capture
    Seen Nov 3, 2026 on docs.brightdata.com/products/scrapers/limits (opens in a new tab)Evidence 2026-11-03/docs_brightdata_com_products_scrapers_limits

    Sorsa API

    A 429 from Sorsa API covers only the excess requests of that second: no data is lost and your key is not penalized.

  • Live requests (Bright Data docs, sync and async)

    Bright Data

    “built for a single input”

    Bright Data, docs.brightdata.com/concepts/sync-vs-async, seen Nov 3, 2026: Full capture
    Seen Nov 3, 2026 on docs.brightdata.com/concepts/sync-vs-async (opens in a new tab)Evidence 2026-11-03/docs_brightdata_com_concepts_sync_vs_async

    Sorsa API

    One Sorsa API request takes up to 100 tweet IDs or links and returns them all in the response.

For AI agents: 40 X tools in one server

An agent that needs X data calls one Sorsa API tool and gets the data back. The Twitter MCP server runs with npx -y sorsa-mcp, is listed on npm and in the official MCP Registry, and carries 40 tools, every one of them for X data: search, timelines, followers, Lists, Communities, Spaces, trends and the campaign checks. It is read-only by design, so an agent can look things up and can never post.

Bright Data's MCP server reaches X data through the same two scrapers, which its README lists as "posts, posts by profile". There is no X scraper behind it for followers, replies, a keyword search or a follow check, and the posts it does return arrive through a scraper run. With Sorsa API every tool returns the same documented schema, so the agent's code and prompts stay the same from one task to the next.

Plans and contracts for serious volume

Sorsa API has been in production since 2022, first as TweetScout API. Its eight plans run from 10K to 10M requests a month at published prices, and from 1M requests a month you can get higher rate limits and an SLA we sign with you. Business adds a dedicated account manager, Hyperscale runs on dedicated infrastructure, and above 10M requests, or for custom terms and invoices, you can talk to sales.

The response schema stays the same, so integrations keep working, and your price never goes up while your subscription stays active (Terms of Service, Section 8.10). How Sorsa API protects your key and your data is on uptime and security.

Move a Bright Data X job to Sorsa API

Every Bright Data X input has a Sorsa API endpoint, and the fields keep their meaning under new names. Run your first job on the free requests, then follow the docs quickstart (opens in a new tab).

  • Posts, by post URL

    Sorsa API endpoint
    POST /tweet-info-bulk (opens in a new tab) with tweet_links (IDs or links)
    Per request
    100 tweets
  • Posts, by profile URL with start_date and end_date

    Sorsa API endpoint
    POST /search-tweets (opens in a new tab) with from: and since: / until:, or POST /user-tweets
    Per request
    about 20 tweets
  • Profiles, by profile URL

    Sorsa API endpoint
    GET /info-batch (opens in a new tab) with usernames or user_ids
    Per request
    100 profiles
  • Profiles, by user name

    Sorsa API endpoint
    GET /info with username
    Per request
    1 profile
  • No X input: follower lists

    Sorsa API endpoint
    GET /followers (opens in a new tab), GET /follows
    Per request
    200 profiles
  • No X input: replies, quotes, retweeters

    Sorsa API endpoint
    POST /comments, POST /quotes, POST /retweeters
    Per request
    a page each
  • No X input: campaign checks

    Sorsa API endpoint
    POST /check-follow, POST /check-retweet, POST /check-quoted
    Per request
    1 check

A Bright Data post record names its fields after social posts in general; a Sorsa API tweet uses X's own terms:

  • id

    In Sorsa API's response
    id (a string)
  • description

    In Sorsa API's response
    full_text
  • date_posted

    In Sorsa API's response
    created_at (ISO 8601)
  • user_posted, name

    In Sorsa API's response
    user.username, user.display_name
  • likes, reposts, replies, quotes, views, bookmarks

    In Sorsa API's response
    likes_count, retweet_count, reply_count, quote_count, view_count, bookmark_count
  • quoted_post

    In Sorsa API's response
    quoted_status (the full quoted tweet)
  • parent_post_details

    In Sorsa API's response
    in_reply_to_tweet_id, in_reply_to_username
  • followers, biography, is_verified

    In Sorsa API's response
    user.followers_count, user.description, user.verified
  • no field

    In Sorsa API's response
    lang, conversation_id_str

In a Bright Data profile record the handle sits in id and the numeric ID in x_id; Sorsa API returns them as username and id, with display_name, description, followers_count, followings_count, tweets_count and created_at beside them.

100 tweets by ID in one request
curl -X POST "https://api.sorsa.io/v3/tweet-info-bulk" \
  -H "ApiKey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"tweet_links": ["20", "1683559267524136962"]}'

The response holds the tweets, so the trigger, the status loop and the download step all go away. For a first export without code, the API playground runs the same requests in your browser and saves the results as CSV, Excel or JSON.

For X data, Sorsa API

For X data in your code, Sorsa API is the better pick than Bright Data on every job priced here. A million tweet IDs cost from $14 instead of $1,500, follower lists and campaign checks come with the same key, and every request returns its data in the response instead of a snapshot to collect later. More comparisons are on our Twitter API comparison page, including Sorsa vs Apify, the other platform that buyers often weigh against Bright Data.

How we checked

The pages behind this comparison, all read on November 3, 2026: Bright Data's X Scraper API page, its Web Scraper API and SERP API pricing, its X datasets page, its Scraper API docs (the X introduction, the catalog of X scrapers, limits, async requests, sync and async, the FAQ and the free tier), its keyword listener tutorial, its Master Service Agreement and its MCP server's README. We saved a screenshot and an archive of every page we quote; on brightdata.com we hid the cookie banner before the screenshot, without answering it. Sorsa API's numbers come from our pricing page and the live API reference, and prices "from" use our best plan rate. Bright Data's figures are the ones its own pages publish; we did not run its collection jobs.

FAQ

Is Sorsa API better than Bright Data for Twitter data?

Yes. Sorsa API returns tweets from $0.014 per 1,000, against $1.50 per 1,000 records on Bright Data, and one request returns up to 100 tweets as JSON instead of a job to poll. It has 45 endpoints, including search back to 2006, follower lists and campaign checks, where Bright Data's X catalog has two scrapers. It passes all ten checks on this page.

How much does Bright Data's X Scraper API cost?

On November 3, 2026, Bright Data listed $1.50 per 1,000 records on pay as you go, and $499 a month on Scale with 384K records included and $1.30 per 1,000 after that. A record is one post or one profile. The free tier gives 5K records a month that don't roll over, and X datasets cost up to $0.0025 per record with a $250 minimum order.

What do 1 million tweets cost on Bright Data and on Sorsa API?

On Bright Data, 1M post records cost $1,500 at the pay-as-you-go rate, or $1,299.80 on the Scale plan, collected as jobs and downloaded as snapshots. On Sorsa API, 1M tweets by ID take 10K requests, from $14, and about 8 minutes at 20 requests per second, with each tweet's author included. A search returns about 20 tweets per request, from $0.07 per 1,000 results.

Can Bright Data get the followers of an X account?

Not as a list. Bright Data's X catalog has two scrapers, Posts and Profiles, and a profile record carries follower and following counts, not the accounts behind them. Sorsa API returns followers 200 per page with GET /followers, each with a full profile, so 1M followers take 5,000 requests, from $7, and about 4 minutes.

Does Bright Data's X Scraper API return data in the response?

Only for one input that finishes within a minute. Its live endpoint is built for a single input, and when collection runs past 1 minute it answers HTTP 202 with a snapshot ID. Bulk and discovery requests run as jobs you trigger, poll and download, and the snapshots are kept for 30 days. Every Sorsa API request returns its data, up to 100 tweets, in the response.

Can I search X by keyword with Bright Data?

Not with its X scrapers, which take post URLs, profile URLs and usernames. Bright Data's own keyword listener tutorial finds X posts through Google results first, the top 10 links per query from its SERP API, then collects each post as a record. Sorsa API's POST /search-tweets takes X's own operators, goes back to 2006 and returns about 20 tweets per request, from $0.07 per 1,000 results.

How do I move a Bright Data X job to Sorsa API?

Map each input to its endpoint: post URLs to POST /tweet-info-bulk with 100 per request, profile URLs to GET /info-batch, and an account's posts by date to POST /search-tweets with from: and date operators. Replace the trigger, poll and download steps with one request per page, loop on next_cursor, and rename fields such as description to full_text.

Does Sorsa API need my X account?

No. Sorsa API never asks for your X login and is read-only by design: no posting, likes, follows or DMs, so nothing it does can touch your X account. You call it with one API key in the ApiKey header. To post, pair it with the official X API.

Disclaimers

Bright Data is a trademark of its owner. Sorsa API is not affiliated with Bright Data.

X and the X logo are trademarks of X Corp. Sorsa API is not affiliated with, endorsed by, or sponsored by X Corp.

Published by the Sorsa API team. Bright Data's figures come from its own pages, linked above, as we saw them on November 3, 2026.

By the Sorsa API team. We build and run Sorsa API, the read-only Twitter/X API and scraper, in production since 2022 (formerly TweetScout API) with 6B+ requests served. About Sorsa API

Read 10K tweets by ID free

Every new Sorsa API account gets 100 free requests: no credit card, and they never expire.

Get 100 free requestsSee pricing

More comparisons

All comparisons