Bright Data vs Apify in 2026
Pages, Actors and rows compared.
On Nov 12, 2026, Bright Data's Web Unlocker takes one credit a request, valued at about $1.50 per 1,000, and Apify's Unblocker costs $1.5 per 1,000. Apify plans start at $19 a month plus usage.
SpecStream is the live web data engine. Its Extract API reads any page for $0.80 per 1,000, its Search API answers from $1 per 1,000, and Deep Search returns every match for a request as rows at 5¢ to $1 a row.
New accounts get $10 of credit, no card. It covers 12,500 pages.
SpecStream, Bright Data and Apify side by side
| SpecStream | Bright Data | Apify | |
|---|---|---|---|
| What you buy | Search, page reading and rows on one key and one balance | Separate products: Web Unlocker, SERP API, Scraper API, Browser API and proxies. 1,200+ scrapers, as Apify counts them | Actors: 80,000+ ready made tools, billed per event or per usage |
| Read one page | $0.80 per 1,000 pages, the same for every page ($0.0008) | Web Unlocker: one credit per successful request, which Bright Data values at about $1.50 per 1,000 | Unblocker: $1.5 per 1,000 requests on Free and Starter |
| Search results | GET /v1/web-search on the same key: from $1 per 1,000 searches of up to 10 results, 97.9 F-score on all 1,000 SimpleQA Verified questions | SERP API at one credit per request | Google SERP proxies at $2.5 per 1,000 SERPs on Free and Starter |
| Structured records | Deep Search: a request in plain words returns every match on the live web as rows, at 5¢, 15¢ or $1 a row, with the most a run can cost quoted before it starts | Scraper API: $1.50 per 1,000 records pay as you go, $1.30 on the Scale plan beyond its included volume | Set by each Actor. Apify's Instagram Scraper example costs $2.30 for 1,000 results on Starter |
| Plans | No plan needed. Plans of $19, $99 or $499 a month turn their whole price into credit | A prepaid wallet for pay as you go. A committed plan bills a minimum each month; the docs' example is $500 | Free, then $19, $199 or $999 a month plus pay as you go |
| Compute and proxies | Included in the page price | Browser API at 5 credits per MB of traffic | $0.2 per compute unit on Starter, $0.13 on Business. Residential proxies $8 per GB |
| Free to start | $10 of credit, no card: 12,500 pages | 5,000 free credits a month, no credit card | Free plan with $5 a month to spend, no credit card |
| What a failed job costs | Nothing for a page with no text or a busy call, and a Deep Search run that finds nothing costs nothing | Nothing for a failed Web Unlocker request. Scraper API records that fail on incorrect input are billed | On pay per usage Actors, the platform resources the run consumed |
| Long jobs | A Deep Search run keeps working until it reaches the count, up to four hours on the largest lists | Scraper API jobs take thousands of URLs and are retrieved later | A synchronous API call holds the connection for up to 5 minutes. Longer runs are started, then read back |
| Agents and MCP | MCP server at https://api.specstream.ai/mcp, REST API, Python and TypeScript SDKs and a CLI | MCP server for search, extraction and browser automation | MCP server for discovering and running Actors |
Why Bright Data and Apify users move to SpecStream
One key for pages, search and rows
With Bright Data, reading a page, searching and collecting records are three products with three prices. With Apify, each job is an Actor with the price its maker set. SpecStream reads any page for $0.0008, searches from $0.001 a call and returns records as rows from 5¢, all from one balance, with the most a Deep Search run can cost quoted before it starts.
The same jobs, called on SpecStream
A Web Unlocker call becomes an Extract API call, with up to 20 URLs a call. An Apify Google Search Scraper run becomes a Search API call that answers in a few seconds.
# Bright Data Web Unlocker: before
curl https://api.brightdata.com/request \
-H "Authorization: Bearer $BRIGHTDATA_KEY" -H "Content-Type: application/json" \
-d '{"zone": "YOUR_ZONE", "url": "https://example.com", "format": "raw"}'
# SpecStream Extract API: after, up to 20 pages a call
curl -X POST https://api.specstream.ai/v1/extract \
-H "Authorization: Bearer $SPECSTREAM_API_KEY" -H "Content-Type: application/json" \
-d '{"urls": ["https://example.com"], "format": "markdown"}'
# Apify Google Search Scraper: before
curl -X POST "https://api.apify.com/v2/actors/apify~google-search-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" -d '{"queries": "web scraping api pricing"}'
# SpecStream Search API: after, $0.001 for up to 10 results
curl "https://api.specstream.ai/v1/web-search?q=web+scraping+api+pricing&speed=fast" \
-H "Authorization: Bearer $SPECSTREAM_API_KEY"A search reply holds data.sources, the results in rank order with url, title, site and snippet, and price_usd, what the call cost.
Records from a request, not from an Actor
An Actor collects what its maker built it to collect, from the sites it was built for. Deep Search takes the records you want in plain words and returns every match on the live web as rows. Duplicates and rows a page contradicts are not charged, and a saved request reruns hourly to yearly. Source URL and read time on every value.
Scores published on the official sets
The Extract API scores 0.908 F1 on WCXB. The Search API on the same key scores 97.9 F-score on all 1,000 official SimpleQA Verified questions, 978 of them correct, and 64.0 item F1 and 43.4 row F1 on all 200 official WideSearch tasks. Every score and its method is on the benchmarks page.
Zero retention on any key
Set zero_retention when you create a key. A call made with that key keeps no request text and no answer after the reply.
curl -X POST https://api.specstream.ai/v1/account/keys \
-H "Authorization: Bearer $SPECSTREAM_API_KEY" -H "Content-Type: application/json" \
-d '{"name": "production", "scopes": ["account:read", "finds:spend"], "spend_cap_cents": 500000, "zero_retention": true}'Other Bright Data and Apify alternatives
ZenRows
A page API sold by monthly plan. The $19 plan holds 45,000 credits, a JavaScript page takes 5 and a protected page 25, and unused plan credits expire at every renewal. SpecStream answers ZenRows' call at https://api.specstream.ai/zenrows/v1/ at $0.80 per 1,000 pages.
AlterLab
A scrape API billed per request in five tiers, from $0.0002 for a direct fetch to $0.02 for an extended browser session, with a $10 minimum deposit. SpecStream charges $0.80 per 1,000 pages for every page, and its credit never expires.
Firecrawl
Scrape, crawl and search endpoints billed in credits: 1 credit a page and 2 credits per 10 search results, with Hobby at $19 a month for 5,000 credits. SpecStream answers Firecrawl's v2 calls at https://api.specstream.ai/firecrawl, with search at $1 per 1,000 and pages at $0.80 per 1,000.
How SpecStream scores
The same numbers as the benchmarks page, from the official tasks and scorers.
How to move Bright Data and Apify jobs to SpecStream
1. Create a key under Agents & API in the workspace. A new account gets $10 of credit, no card, which covers 12,500 pages.
2. Replace each Web Unlocker call with POST https://api.specstream.ai/v1/extract, with up to 20 URLs in urls and the key as the Bearer token.
import os, requests
reply = requests.post(
"https://api.specstream.ai/v1/extract", # was https://api.brightdata.com/request
headers={"Authorization": f"Bearer {os.environ['SPECSTREAM_API_KEY']}"},
json={"urls": ["https://en.wikipedia.org/wiki/Web_scraping"], "format": "markdown"},
timeout=60,
)
for page in reply.json()["data"]["results"]:
print(page["status"], page["url"], (page.get("text") or "")[:300])3. Replace a search Actor or a SERP API call with GET https://api.specstream.ai/v1/web-search?q=<the query>&speed=fast at $0.001 for up to 10 results. Drop speed=fast for the default search at $0.005, which also answers the question.
4. Replace a data Actor with a request in plain words in Deep Search: it shows the most the run can cost before it starts, and the rows land in a sheet, a CRM or the API.
5. To test it on your own pages, send the same 100 URLs to your current API and to SpecStream, then compare each page's text and the price_usd of each call. 100 pages cost $0.08 on SpecStream.
Frequently asked questions
Something we didn't answer? Talk to a human
Is Bright Data better than Apify?
Bright Data vs Apify pricing: what does each cost?
Which is cheaper for structured records?
Do Bright Data and Apify have free plans?
Does SpecStream have an MCP server?
https://api.specstream.ai/mcp. Web search, page reading and Deep Search are its tools, on the same balance as the API.Does SpecStream replace Apify Actors?
Sources
SpecStream wrote this page. Each rival figure comes from that company's own page.
- Bright Data free tierdocs.brightdata.com/general/account/billing-and-pricing/free-tier.md, read Nov 12, 2026
- Bright Data Web Unlocker API overviewdocs.brightdata.com/products/web-unlocker/introduction.md, read Nov 12, 2026
- Bright Data billingdocs.brightdata.com/general/account/billing-and-pricing.md, read Nov 12, 2026
- Bright Data Scraper API FAQsdocs.brightdata.com/products/scrapers/scrapers-library/faqs.md, read Nov 12, 2026
- Bright Data Web Scraper API overviewdocs.brightdata.com/scraping-automation/web-data-apis/web-scraper-api/overview, read Nov 12, 2026
- Apify pricingapify.com/pricing, read Nov 12, 2026
- Bright Data vs. Apify, Apify blogblog.apify.com/brightdata-vs-apify/, read Nov 12, 2026
- Apify: run an Actor through the APIdocs.apify.com/academy/api/run-actor-and-retrieve-data-via-api.md, read Nov 12, 2026
- Apify: Actors in Storedocs.apify.com/platform/actors/running/actors-in-store.md, read Nov 12, 2026
- ZenRows pricingzenrows.com/pricing.md, read Nov 12, 2026
- ZenRows pricing documentationdocs.zenrows.com/first-steps/pricing.md, read Nov 12, 2026
- AlterLab pricingalterlab.io/pricing, read Nov 12, 2026
- Firecrawl pricingfirecrawl.dev/pricing, read Nov 12, 2026
- SpecStream benchmarksspecstream.ai/benchmarks, read Nov 12, 2026
- SpecStream pricingspecstream.ai/pricing, read Nov 12, 2026
- SpecStream for agentsspecstream.ai/agents.md, read Nov 12, 2026




