proxy-compare.com

ScraperAPI alternatives: hosted API plans

Compare hosted alternatives to ScraperAPI by the paid plan, included usage and conditions you would buy. Each row names its allowance and read date. Credits belong to the provider that issues them, so a larger allowance alone does not tell you how many usable pages your workload will return.

What happens to requests that fail or get cancelled?

When replacing ScraperAPI, compare the charge for a failed request as carefully as the monthly subscription. A provider can return a page, charge a credit, and still leave your application without the data it needs. Keep the target status, cancellation time and retry policy in your test results.

  • Run the same target URLs with the same JavaScript and location settings.
  • Check how cancelled requests and target errors affect the balance.
  • Compare the paid tier that can handle your concurrent jobs, including what happens at its limit.

Use the scraping API cost calculator for a workload the collected rate cards can price.

Moving off ScraperAPI: what changes in code

The request shapes split these services in two. One group takes a GET with the target URL in the query string and hands back the page’s HTML; the other takes a POST with a JSON body and offers a menu of output formats. Moving between those groups is a rewrite of the request and the parser, not a base-URL change, and it is the first thing to cost in a migration.

ServiceSendGet backDocumented switches
ScraperAPI (leaving)GET with the target URL in the query stringThe HTML response for the target URLQuery parameters switch on JS rendering, geolocation and premium proxies
FirecrawlPOST with a JSON bodyA menu of output formats: markdown, html, rawHtml, json and moreOutput formats are chosen per request; batch and crawl jobs are separate endpoints
ScrapingBeeGET with the target URL in the query stringThe raw HTML content of the target URLRendering is on by default via a headless browser; premium proxies are a per-request switch
ZenRowsGET with the target URL in the query stringThe page content, with request cost and final-URL headersjs_render and premium_proxy are documented request parameters, off by default

Each cell paraphrases one or two sentences of the vendor’s own documentation, read 2026-09-16, and the links below carry the exact sentences. Services listed above whose docs have not been read carry no row here rather than a guessed one.

Hosted alternatives to ScraperAPI

Alphabetical order. Entry prices read 2026-09-08 or later. Open each row’s plan conditions for rollover, cancellation and billing details. Search-only products and raw proxies are outside this comparison.

We may earn commission through provider links. How this site is funded.

Scraping API providers, monthly entry plans and buying conditions
ProviderEntry planIncluded usageBuying conditionsVisit
Crawlbase$99/moStarter · Billed monthlyPrice read 2026-09-08

200,000 credits/month

20 concurrent requests per token (default)

JavaScript: yes, stated

20 concurrent requests per token by default, shared across subscribed Crawlbase products. Higher limits require contacting support and are not priced here. This is not an account-wide ceiling or measured requests per second.

Concurrency read 2026-09-08 · Source

Quoted concurrency conditions
Concurrent requests / 20 / per tokenContext: Default limits. Limit / Default / Scope. Every account starts with the same generous defaults. You don't need to ask for these - they're already on every token the moment you sign up.
Read 2026-09-08
Endpoint specs and parameter references for every Crawlbase API. One token authenticates all of them; pricing and concurrency budgets are shared across the products you subscribe to.
Read 2026-09-08
Higher concurrency contact usContext: Email support with your target throughput and use case.
Read 2026-09-08

Billing requires cb_status 200 and a listed target status, including 404 and 410. A 302 must return content after the redirect. Custom success-code overrides are outside this estimate.

Plan conditions and sources

Purchase conditions · Starter

  • The subscription credit block resets each monthly cycle. The FAQ's separate no-expiry statement concerns PAYG billed in arrears, not a subscription rollover allowance.

    Read 2026-09-08 · Source
    Quoted policy
    Pay as you go bills in arrears for what you actually used, so there is nothing to expire. A subscription's credit block resets with each monthly cycle.Context: Pricing questions. / Do credits expire, and does the allowance reset?
  • Beyond the subscription block, PAYG follows the same rate card at the volume bracket already reached. Turning PAYG off pauses requests at the block. This clause does not establish a flat extra-credit price.

    Read 2026-09-08 · Source
    Quoted policy
    Usage continues as pay as you go on the same rate card, at the bracket your volume already reached. Prefer a hard stop? Turn pay as you go off and requests pause at the block instead.Context: Pricing questions. / What happens past a subscription's included credits?
  • An optional hard spend cap pauses usage before the bill passes it. The cap can be raised, lowered or removed; the FAQ specifies no numeric cap.

    Read 2026-09-08 · Source
    Quoted policy
    Yes. Set an optional hard spend cap in the dashboard and usage stops before the bill passes it. Raise, lower or remove it any time.Context: Pricing questions. / Can I cap what I spend?
Billable requests Crawlbase only charges requests where cb_status is 200 and original_status is one of: Code Meaning 200 OK 201 Created 204 No Content 301 Moved Permanently 302 Found - only when the redirect was followed and returned content 404 Not Found 410 Gone Any other original_status is free, and so is any non- 200 cb_status. Use this list when reconciling a usage invoice against your application logs.
Billing policy read 2026-09-09

Bills in credit. Provider record checked 2026-08-20.

Visit Crawlbase
Firecrawl$19/moHobby · Billed monthlyPrice read 2026-09-08

5,000 credits/month

5 concurrent requests

JavaScript: not established

Returned documents are billable even for target errors such as 403 and 404. Some scans, guards, cache modes and other endpoints can also charge without a document.

Plan conditions and sources

Purchase conditions · Hobby

  • Hobby plan credits do not roll over.

    Read 2026-09-08 · Source
    Quoted policy
    Credits roll over on Scale and Enterprise. Scale carries unused credits for one month, and Enterprise carries a custom amount. Hobby, Standard and Growth credits do not roll over.Context: Billing FAQ / Do credits roll over to the next month?
  • The billing guide says plan credits reset each month by default; its rollover exceptions apply to annual Scale and Enterprise plans.

    Read 2026-09-09 · Source
    Quoted policy
    Plan credits do not roll over by default: your monthly allotment resets each month. Annual Scale plans roll unused plan credits over 1 month, and annual Enterprise plans roll them over 2 months.Context: FAQs / Do unused credits roll over to the next month?
  • Purchased credits survive renewal and remain until used while the subscription continues. If cancelled, they expire at the end of the current billing period.

    Read 2026-09-09 · Source
    Quoted policy
    Credits you buy stay on your account until you use them. They expire if you cancel your subscription, so use them before you leave. The expiry lands at the end of your current billing period, and a renewal does not touch them.Context: FAQs / Do pay-as-you-go credits expire?
What decides the charge is whether Firecrawl returned a document, not whether the target site returned a successful HTTP status code. Firecrawl returned a document: 1 credit per page, plus any of the option costs above. This includes pages that come back with an error status such as 403 Forbidden or 404 Not Found. The target responded, Firecrawl captured that response, and you get it back as a document. Check the metadata.statusCode field in the response to spot these cases and stop retrying URLs that are consistently blocked. Firecrawl returned no document: 0 credits. A scrape that fails outright, for example because the site never responded or every rendering attempt failed, is not charged. A few cases still charge when no document comes back. They cover work that Firecrawl already performed on your behalf before the scrape ended. Case What is charged Threat protection scan 2 credits per scanned URL, including a scrape that the scan itself blocked Prompt injection check 5 credits, once the checkPromptInjection guard has run FIRE-1 agent Usage-based, for the navigation the agent already did lockdown cache miss 1 credit Monitor check A page that errors during a check is charged the base 1 credit per page Interact and Browser sessions Charged per browser minute of session time, with a one-minute minimum, whether or not the session got what you wanted
Billing policy read 2026-09-09

Bills in credit. Provider record checked 2026-08-20.

Visit Firecrawl
Scrapfly$30/moDiscovery · Billed monthlyPrice read 2026-09-08

200,000 API credits/month

5 concurrent requests

JavaScript: yes, stated

Failed-request protection has excluded statuses and a fairness-policy billing exception.

Plan conditions and sources

Purchase conditions · Discovery

  • Unused monthly credits do not roll over; quotas reset at renewal. Downgrades and cancellation take effect at the end of the current billing period.

    Read 2026-09-08 · Source
    Quoted policy
    No. Quotas reset at renewal. If you consistently end the month with leftovers, downgrade to a smaller plan and use pay-as-you-go for the occasional overflow. You end up paying less.Context: Can I change or cancel my subscription? Yes. Upgrade, downgrade, or cancel any time from the dashboard. Downgrade and cancel take effect at the end of the current billing period, so you get every credit you paid for.
  • Discovery stops at its monthly quota and has no pay-as-you-go overflow. More usage requires an upgrade.

    Read 2026-09-08 · Source
    Quoted policy
    From Pro and up, you switch to pay-as-you-go at the per-10k-credit rate on your plan, your integration never stalls. Discovery caps on quota for a predictable bill; upgrade to Pro from the dashboard if you need overflow. If pay-as-you-go consistently makes the next plan up cheaper, upgrade in one click.Context: What happens when I hit my monthly quota?
Scrape Failed Protection & Fairness Policy Scrapfly's Scrape Failed Protection ensures that failed scrapes are not billed to our customers. To prevent abuse, we also have a fairness policy in place. Fairness Policy Trigger: If more than 30% of failed traffic with eligible status codes (≥400 and not excluded) is detected within a minimum one-hour period, the fairness policy will be disabled and usage will be billed. Eligible Status Codes Status codes greater than or equal to 400 and not excluded (see below) are eligible for Scrape Failed Protection. Excluded status codes: 400, 401, 402, 404, 405, 406, 407, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 422, 424, 426, 428, 456 Account Suspension: If an account deliberately scrapes a protected website without success and without using our Anti Scraping Protection (ASP), the account may be suspended at the discretion of our account managers.
Billing policy read 2026-09-08

Bills in credit. Provider record checked 2026-08-20.

Visit Scrapfly
ScrapingBee$19/moHobby · Billed monthlyPrice read 2026-09-08

75,000 API credits/month

25 concurrent requests

JavaScript: yes, stated

HTTP 404, 410 and 413 are billable. Transparent status mode also bills target responses below 500.

Plan conditions and sources

Purchase conditions · Hobby

  • Unused credits expire at subscription expiry or renewal. Upgrades and downgrades transfer unused credits to the replacement subscription.

    Read 2026-09-09 · Source
    Quoted policy
    When your subscription expires or is renewed, any unused credits will not roll over.Context: Upgrading or downgrading the subscription would transfer any unused credits to the new subscription.
  • When credits run out, the guide offers manual renewal or one-time add-ons. Add-ons retain the billing cycle; their prices and sizes are not established here.

    Read 2026-09-09 · Source
    Quoted policy
    If you happen to deplete all of your credits, you don't need to wait for the next renewal date as you can either purchase one-time add-ons or you can manually renew your subscription.Context: If you don't want to change your billing cycle, you can purchase one-time add-ons. On the same page, just scroll down and you will be able to see our one-time add-on plans:
  • Manual renewal immediately renews the subscription and forfeits leftover credits. The guide's dialog amount is a historical example, not this plan's price.

    Read 2026-09-09 · Source
    Quoted policy
    You will be charged $599.99 and you subscription will be renewed immediately, any left-over credits will be lost, are you sure?Context: Manually Renew Your Subscription / You will get a popup with the following message:
  • Optional early renewal requires enabling and saving a 98% usage strategy for this account or this account and all teammates. The remaining 2% carries to the next cycle; no carry-in balance or extra renewal is assumed in the estimate.

    Read 2026-09-09 · Source
    Quoted policy
    Remaining 2% of credits will be carried-over onto the next billing cycle.Context: From there, click on the Auto renew button to reach the Automatic early renewal page. On that page, check the checkbox next to Early renew my subscription when running out of credits text. And select one of the following Early renew strategy: Renew when only this account reach 98% usage Renew when this account and all my teammates accounts reach 98% usage After that, click on Update my preferences button to enable the Auto-renew feature.
  • One-time credit purchases supplement an existing subscription and expire when it renews or expires.

    Read 2026-09-09 · Source
    Quoted policy
    We do offer one-time credit purchases, but they only add credits to your existing subscription and will expire when your subscription renews or expires.Context: Do you have usage based pricing or one-time prepay credits?
  • After cancellation, remaining API credits stay usable until the current subscription term ends.

    Read 2026-09-09 · Source
    Quoted policy
    Your remaining API credits will be usable until the end of your current subscription term.Context: How to cancel my subscription?
Response Status Code ScrapingBee returns the following HTTP status codes. These are ScrapingBee's own status codes, not the target page's. By default we do not forward the status the scraped site returned - see transparent HTTP status code for how the two relate, and for how to get the target's status instead. Code Billed? Meaning Solution 200 Yes Successful Call 400 No Bad request Incorrect parameters or parameters type. See the message in the response body. 401 No Out of credits, or an invalid API key Check the key, then upgrade your plan or contact sales. 403 No The account is banned, or the request was redirected to a blocked destination The response body says which. This is never the scraped page's own 403. 404 Yes Requested URL not found Provide a valid URL. 410 Yes Requested URL gone Provide a valid URL. 413 Yes The target page returned 413 (payload too large) Check the URL; the page itself refused the request. 429 No Too many concurrent requests. Please upgrade your plan or contact sales. 500 No We could not scrape the page, or the target returned a status we do not pass through Retry; the response body carries the reason. Transparent HTTP status code transparent_status_code [ boolean ] ( false ) By default ScrapingBee reports its own status rather than the target's: any 2xx becomes 200, 404, 410 and 413 are passed through, and everything else becomes 500. Redirects are followed first, so this is the status at the end of the chain. So a 403 from an anti-bot page, a 401 from a paywall or a 503 from an overloaded site all reach you as a 500, not as their own code. A 500 from us is not billed. To get the same body and status code as the requested URL in any circumstances, use the transparent_status_code=true parameter. When this parameter is set to true: Anything the target returns below 500 is billed, since we no longer replace it with a 500. A 5xx is still free. We do not retry. Without the parameter a failed scrape is tried again on another proxy; with it you get the first attempt.
Billing policy read 2026-09-08

Bills in credit. Provider record checked 2026-08-20.

Visit ScrapingBee
ZenRows$19/moBuild · Billed monthlyPrice read 2026-09-08

45,000 credits/month

20 concurrent requests

JavaScript: yes, stated

HTTP 404 and 410 responses count as billable successes.

Plan conditions and sources

Purchase conditions · Build

  • Build states one month of rollover. No existing account balance is assumed in the workload estimate.

    Read 2026-09-08 · Source
    Quoted policy
    Top-ups plus 1 month rolloverContext: Build / Rollover
  • This paid plan allows extra-credit purchases up to four times per billing period; unused top-up credits roll into the next period. Pack sizes and prices are not stated in this FAQ, so additional usage remains unpriced.

    Read 2026-09-08 · Source
    Quoted policy
    You're warned before you reach it. On a paid plan you can add extra credits (top-ups) any time to keep running, up to four times per billing period, and unused top-up credits roll into the next period. On Free there are no top-ups: you wait for the next monthly refresh or upgrade to a paid plan. Either way, no lost data or configuration.Context: Billing FAQ / What happens if I hit my monthly limit?
Failed requests are never charged. Not Found (404) and Gone (410) responses count as successful results.
Billing policy read 2026-09-08

Bills in credit. Provider record checked 2026-08-20.

Visit ZenRows
ZyteNot yet reviewedNo entry subscription price on record

Allowance not established

Concurrency not established

JavaScript: not established

Billing policy not established

Plan conditions and sources

Bills in request. Provider record checked 2026-09-03.

Visit Zyte

Read your current ScraperAPI plan before switching

Purchase conditions · Hobby

  • Unused credits do not roll over; the balance resets at subscription renewal.

    Read 2026-09-08 · Source
    Quoted policy
    No, your ScraperAPI credit balance resets when your subscription renews. If your usage has changed, you can move up or down a plan anytime from the billing page.Context: ScraperAPI Pricing FAQs / Do my unused ScraperAPI credits roll over to the next billing cycle?
  • At 100% credit usage before renewal, the FAQ offers an upgrade or a custom support arrangement for this plan. No extra-credit price is collected.

    Read 2026-09-08 · Source
    Quoted policy
    If you reach 100% of your ScraperAPI credits on a Hobby, Startup, or Business plan before your standard renewal date, you’ll be able to: 1) seamlessly upgrade to the next plan, which often provides a better price-per-credit, or 2) contact our support team to discuss a custom plan tailored to your specific needs. Customers on a Scraper API Scaling, Professional, Advanced, or Enterprise plan can continue using our services on a PAYG model, using extra credits at a fixed, predictable rate; of course, you can always reach out to our sales team to adjust your plan to your increasing needs.Context: ScraperAPI Pricing FAQs / What happens if I run out of ScraperAPI credits?
  • Requests above the plan's concurrent-thread limit receive HTTP 429 without an extra charge; they are rejected rather than queued.

    Read 2026-09-08 · Source
    Quoted policy
    If you exceed your ScraperAPI limits, you’ll get a 429 response asking you to bring your concurrency back within your plan’s limit and try again. There’s no extra charge for going over, the request is simply turned away rather than queued.Context: ScraperAPI Pricing FAQs / What happens if I exceed my ScraperAPI "Concurrent Threads" limit?

Keep your current plan’s renewal date and unused balance beside the replacement quote. Try a small workload first, check the billed requests against the returned data, and confirm that your application can use the response before moving scheduled jobs.

Test the switch from ScraperAPI

Build a failure ledger before moving traffic

Choose a small set of URLs that represents your production traffic, including a missing page, a slow response and a target that sometimes blocks requests. Give every attempt an identifier. Record the target status, the API status, elapsed time, cancellation point and balance change. Keep retries as separate attempts instead of folding them into the original request. This makes it possible to distinguish a cheap successful fetch from a cheap attempt that needs several paid retries. Do not deliberately overload a target to create the test.

Price the completed job, including retries

Define what a usable response must contain before inspecting the results. A status code alone cannot tell you whether the required records arrived. Divide the total trial spend by accepted records, then inspect rejected responses individually. If your application times out sooner than the provider, check whether abandoned work can still consume credit. Repeat the exercise at the concurrency your paid tier permits. Keep subscription charges separate from variable usage so a small trial does not imply an unrealistic monthly saving.

Set a switching threshold

Write down the maximum acceptable spend and the minimum number of complete records for the job. Keep the existing job available until the replacement meets both. Move one scheduled job first, watch its billed balance, and then decide whether the remaining jobs should follow. A lower entry subscription is useful only if the replacement can complete the workload within those limits.

Common questions

Which hosted APIs can I compare with ScraperAPI?
The alternatives here are Crawlbase, Firecrawl, Scrapfly, ScrapingBee, ZenRows, Zyte. Compare the paid plan and its buying conditions, then test your own target pages before switching. The list is alphabetical and does not rank measured success rates.
Are these free or self-hosted ScraperAPI alternatives?
This page compares hosted commercial API plans. It does not compare self-hosted software or establish which free tier can handle your workload. Hosting costs, maintenance and output compatibility need a separate evaluation.
Can I compare the included credits directly?
Each provider defines its own credit. Rendering, proxy options and request type can change how many credits a page consumes. Compare a named workload and a purchasable tier; the biggest allowance alone does not establish the lowest cost.

Compare two services

All scraping APIs · How we check the sources · How this site earns commission