#Seven numbers behind the verdict
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.
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.
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.
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.
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.
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.
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.
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.
#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.
| Check | Sorsa API10 of 10 | Bright Data2 of 10 |
|---|---|---|
| Price per 1,000 results | from $0.014 per 1,000 tweets | $1.50 per 1,000 records |
| Batch lookups | 100 tweets or profiles per request | jobs of up to 5,000 URLs, each record billed |
| The data in the response | every request returns JSON | one input; past 1 minute, a snapshot ID |
| A free test with no deadline | 100 requests that never expire | 5K records a month, no rollover |
| What it needs from your X account | nothing: read-only | nothing for posts and profiles |
| A schema built for X | lang and thread IDs on every tweet | text in description, no lang field |
| An endpoint for every step | 45 endpoints, checks included | two scrapers: posts and profiles |
| A predictable bill | one price per request, failed ones free | per record; input errors billed |
| Search with X operators | back to 2006 | no keyword input for X |
| A price lock in the terms | price never goes up while subscribed | 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:
| Bright Data plan | Price | Records | Per 1,000 records |
|---|---|---|---|
| Free tier | $0 | 5K a month, no rollover | free |
| Pay as you go | per record | as many as you buy | $1.50 |
| Scale | $499 a month | 384K included | $1.30 after 384K |
| Enterprise | custom | custom | 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:
| Data, per 1,000 | Sorsa API | Bright Data, seen November 3, 2026 |
|---|---|---|
| Tweets by ID or link | from $0.014 | $1.50 (post records) |
| Tweets from a search | from $0.07 | no X search |
| Profiles | from $0.014 | $1.50 (profile records) |
| Followers of an account | from $0.007 | not offered |
| A ready set of posts | from $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.
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”
Full captureSeen 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”
Full captureSeen 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”
Full captureSeen 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”
Full captureSeen 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”
Full captureSeen 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”
Full captureSeen 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 input | Sorsa API endpoint | Per request |
|---|---|---|
| Posts, by post URL | POST /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_date | POST /search-tweets (opens in a new tab) with from: and since: / until:, or POST /user-tweets | about 20 tweets |
| Profiles, by profile URL | GET /info-batch (opens in a new tab) with usernames or user_ids | 100 profiles |
| Profiles, by user name | GET /info with username | 1 profile |
| No X input: follower lists | GET /followers (opens in a new tab), GET /follows | 200 profiles |
| No X input: replies, quotes, retweeters | POST /comments, POST /quotes, POST /retweeters | a page each |
| No X input: campaign checks | POST /check-follow, POST /check-retweet, POST /check-quoted | 1 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 record | In Sorsa API's response |
|---|---|
id | id (a string) |
description | full_text |
date_posted | created_at (ISO 8601) |
user_posted, name | user.username, user.display_name |
likes, reposts, replies, quotes, views, bookmarks | likes_count, retweet_count, reply_count, quote_count, view_count, bookmark_count |
quoted_post | quoted_status (the full quoted tweet) |
parent_post_details | in_reply_to_tweet_id, in_reply_to_username |
followers, biography, is_verified | user.followers_count, user.description, user.verified |
| no field | 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.
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.
#Sources
- Bright Data, seen November 3, 2026; screenshots and archives in
research/compare-pages/evidence/2026-11-03/: - Bright Data: Web Scraper API pricing (opens in a new tab)
- Bright Data: Twitter (X) Scraper API (opens in a new tab)
- Bright Data: SERP API pricing (opens in a new tab)
- Bright Data: Twitter datasets (opens in a new tab)
- Bright Data docs: X (Twitter) Scraper API (opens in a new tab)
- Bright Data docs: the catalog of X scrapers (opens in a new tab)
- Bright Data docs: Scraper API limits (opens in a new tab)
- Bright Data docs: bulk jobs with async requests (opens in a new tab)
- Bright Data docs: sync and async requests (opens in a new tab)
- Bright Data docs: Scraper API FAQs (opens in a new tab)
- Bright Data docs: free tier (opens in a new tab)
- Bright Data docs: build a keyword social listener (opens in a new tab)
- Bright Data Master Service Agreement (opens in a new tab)
- Bright Data MCP server on GitHub (opens in a new tab)
- Sorsa API:
- Sorsa API pricing
- Live API reference
- Docs: rate limits (opens in a new tab)
- Terms of Service: price lock
- Terms of Service: limitation of liability
- Terms of Service: changes to these terms
- Privacy Policy
- Related reading: how to choose a Twitter API, Twitter API alternatives, best Twitter scrapers, Twitter MCP server guide
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.