Best Firecrawl alternative for pay-per-page scraping (2026)

If you're crawling whole sites into markdown for a RAG pipeline or an agent, Firecrawl is the best tool for it and its free tier is generous. If you fetch pages one at a time, or you want structured data from sites like LinkedIn, Instagram, and Google rather than page text, paying per request costs less and there's no plan to size.
Firecrawl sells monthly credit bundles, and on every plan under $749 a month the credits you don't use are gone at renewal. Paying per request is $0.70 per 1,000 pages, billed only when a page comes back.
On the same eight pages, 48 calls each, Firecrawl delivered 26 pages and AnyAPI 42; the gap is Firecrawl's per-minute rate limit and a Cloudflare page only AnyAPI's second provider got through. Both got Amazon's bot wall and both charged for it.
Prices in this post were checked September 11, 2026. The tests ran September 13.
Built on AnyAPI
369 scraping and data APIs behind one key.
Every endpoint in this post is one call away. Pay per request in USD from a prepaid wallet, with automatic failover when a provider breaks. No subscription, no card to start.
Get ~150 free requests$0.10 of credit on signup.Firecrawl turns web pages into clean markdown for language models. You give it a URL and get back the page's text with the navigation and ads stripped out, or you point it at a site and it crawls the whole thing. It has a search endpoint, a schema-based extractor, an agent that browses for you, and an MCP server so Claude or Cursor can call it directly. It's open source, it has 179,000 GitHub stars, and it's one of the four providers behind AnyAPI's own page scraper, so this comparison comes from paying its bill rather than reading its pricing page once.
What Firecrawl is not is a data API. If your job is "get me this company's LinkedIn page as JSON" or "give me the top ten Google results for this query", Firecrawl gives you the page as markdown and leaves the parsing to you, and for anything behind a login it gives you the login wall. That's the case where one API with a fixed price per call does better.
Here's where Firecrawl is the right choice, where paying per request wins, and what each costs.
Where Firecrawl is strong
Firecrawl earns its place when the page text itself is the product.
- Crawling a whole site is one call. Give it a root URL and it maps the site, follows the links, and hands back every page as markdown. Doing that with a per-page API means writing the crawler yourself.
- The markdown is genuinely good. Firecrawl's pitch is 93% fewer input tokens than raw HTML, and in practice its output is what you'd want to feed a model: headings, links, and body text, nothing else.
- It does more than scrape. Search at 2 credits per ten results, JSON extraction against a schema you supply, an agent that browses on your behalf, and a site monitor. Every one of those bills against the same credit balance.
- The free tier is real. 1,000 credits every month, no card, refreshed monthly. That's a thousand pages a month for nothing, which covers a lot of side projects for good.
- You can run it yourself. The core scrape, crawl, map, and search routes are AGPL-licensed and self-hostable. The anti-bot engine, screenshots, browser interaction, and the agent stay cloud-only.
If that's your job, use Firecrawl. The rest of this post is about the other job.
Where AnyAPI wins
If you're fetching individual pages, or you want data from a platform rather than text from a page, most of Firecrawl's platform is something you're paying for and not using.
There's no plan to size, and nothing expires
Firecrawl's pricing is credit bundles. Hobby is $19 a month for 5,000 credits, Standard is $99 for 100,000, Growth is $399 for 500,000, and Scale is $749 for a million. The page shows the annual rate by default, which is 16.7% to 20% lower, so the $83 you see for Standard is the billed-yearly price.

One credit is one page, so the price per page depends entirely on which bundle you buy. On Hobby a page is $0.0038. On Scale it's $0.00075. Paying per request is $0.0007 per page on any day, whether you fetch ten pages or a hundred thousand.
The catch with bundles is the month you don't fill one. Firecrawl's own pricing page says Hobby, Standard, and Growth credits don't roll over, and Scale carries them for one month. So a Standard customer who scrapes 20,000 pages in a month has paid $99 for them, which is $4.95 per 1,000, not the $0.99 on the box.
You only pay when the page comes back
Firecrawl doesn't charge for a scrape that returns nothing, but a page that answers with a 403 or a 404 is delivered to you and costs a credit. That's fair on its terms, and it adds up on sites that block bots, because you're paying to receive the block page.
With a pay-per-request API a blocked or failed call costs nothing. And when the first provider behind an endpoint fails, AnyAPI tries another one for the same page before giving up. Four providers sit behind the page scraper, one of them Firecrawl, and the cheapest one takes the call first.

How the request picks a source
"It tries another provider" is easy to say and easy to do badly, so here is the actual order of operations for one web.scrape call.
First, the sources that can't serve your exact request drop out. Four sit behind the page scraper, but one of them only returns main-article markdown, so a plain {"url": "...", "formats": ["markdown"]} request has three to work with, not four. Second, the survivors sort by what they charge you, cheapest first, not by what they cost us. That sort is the price you're quoted: $0.0007 at the cheap end, $0.0015 at the dear end. Third, two kinds of recent memory reorder that list without removing anything from it: whether a source is failing right now, and whether it has been refused by this particular site before. A source that got walled by one domain last week goes last on that domain and stays first everywhere else.
Then the call runs down the list. A timeout, a 429, a 500, or a bot wall detected in the body moves to the next one, and the whole thing is still one request to you with one bill. Here's the G2 page from the test below, which is the case where this pays for itself.
Sources that can serve this request, cheapest first
- 1
BisonTried first. Cloudflare refused it, all six times.$0.0007 - 2
SalamanderReturned the review page, all six times.$0.0010 - 3
KoalaNever needed, so never charged.$0.0015
You pay $0.0010, once, for the source that returned the page.
The failed first attempt is free, and the successful second one is $0.0003 dearer than the price on the catalog page. That's the whole trade: the cheapest source serves the ordinary pages, and the dearer ones exist to rescue the hard ones.
The data endpoints Firecrawl doesn't have
Firecrawl gives you the text of a public page. It doesn't give you a LinkedIn profile as fields, an Instagram account's follower count, or a page of Google results as a ranked list. For those you're either parsing markdown yourself or the page never rendered because it wanted a login.
AnyAPI's catalog has 366 endpoints and most of them are exactly that kind of thing: Google search at $0.90 per 1,000, an Instagram profile at $1.20, a LinkedIn company at $1.43, a Reddit search at $0.45, a YouTube transcript at $1.25. Same key, same request shape, same JSON envelope, and the response tells you what the call cost.
One call, and what it cost
Here's a page scrape and what came back: Firecrawl's own docs introduction, 18,072 characters of markdown, for $0.0007 in 2.9 seconds on September 11, 2026.
curl https://api.getanyapi.com/v1/run/web.scrape \
-H "Authorization: Bearer $ANYAPI_KEY" \
-d '{"url": "https://docs.firecrawl.dev/introduction", "formats": ["markdown"]}'import os, requests
r = requests.post(
"https://api.getanyapi.com/v1/run/web.scrape",
headers={"Authorization": f"Bearer {os.environ['ANYAPI_KEY']}"},
json={"url": "https://docs.firecrawl.dev/introduction", "formats": ["markdown"]},
)
body = r.json()
print(body["costUsd"], len(body["output"]["data"]["markdown"]))
# 0.0007 18072const r = await fetch("https://api.getanyapi.com/v1/run/web.scrape", {
method: "POST",
headers: { Authorization: `Bearer ${process.env.ANYAPI_KEY}` },
body: JSON.stringify({ url: "https://docs.firecrawl.dev/introduction", formats: ["markdown"] }),
});
const { costUsd, output } = await r.json();
console.log(costUsd, output.data.markdown.length); // 0.0007 18072Firecrawl publishes a P95 of 3.4 seconds on its homepage, and on the eight-page test below the two are in the same place on speed. What separates them is which pages come back and what you're charged for.
The same eight pages through both
Eight pages, three rounds each, run twice on September 13, 2026: a static page, two scraping sandboxes, the Hacker News front page, an e-commerce sandbox, an Amazon product page, a G2 review page behind Cloudflare, and a Best Buy search. A call counted only when the page's own text came back, so an HTTP 200 carrying a bot wall was a miss.
| Page | Firecrawl | AnyAPI web.scrape |
|---|---|---|
| Static page, two sandboxes, Hacker News, e-commerce sandbox | Every call that wasn't rate-limited came back, 0.4 s from cache | 6 of 6 each, 1.3 to 2.5 s |
| G2 review page behind Cloudflare | 3 of 6 answered, the other 3 rate-limited | 6 of 6, 1.2 s, $0.001 each |
| Best Buy search | 5 of 6, 0.6 s from cache, 2.3 to 9.3 s fresh | 6 of 6, 8.7 s |
| Amazon product page | 0 of 6: a "Continue shopping" wall, 1 credit each | 0 of 6: the same wall, $0.0007 each |
| All 48 calls | 26 delivered the page, 19 rate-limited, 3 hit a wall | 42 delivered, 6 hit a wall |
| What the 48 calls cost | 29 credits, about $0.03 on Standard | $0.035 |
| Median on delivered pages | 0.4 s from cache, 1.6 s fetched fresh | 1.5 s |
Three things in that table are worth knowing before you pick.
Both got Amazon's wall, and both charged for it. Amazon answered every call from both services with a 200 and a page that said "Continue shopping". Firecrawl delivered it for one credit; AnyAPI delivered it for $0.0007. That is the failure mode to plan for with any scraper: a bot wall served as a success looks like a page, and fallback only fires on an error.
The Cloudflare page is where fallback earns its price. AnyAPI's first provider missed the G2 page every time and the second answered every time, which is why those six calls cost $0.001 instead of $0.0007 and why the page came back at all. Firecrawl answered it on the three calls its rate limit let through.
Back-to-back calls hit Firecrawl's rate limit. Nineteen of 48 requests got a 429 in a tenth of a second. Firecrawl's published ceilings are 10 scrapes a minute on the free plan, 100 on Hobby, and 500 on Standard, so a batch job needs pacing or the plan that fits its burst. AnyAPI didn't rate-limit any of the 48 calls.
On speed the two are level, with one thing to know: Firecrawl's 0.4 second answers are its cache, which by default returns a stored copy up to two days old and still charges a credit. Set maxAge to zero and its fresh fetches sat at 1.6 seconds, beside AnyAPI's 1.5.
Other Firecrawl alternatives worth a look
Firecrawl and pay-per-request aren't the only two shapes. If the job is page text for a model, these are the other services people end up comparing, with prices read from their pricing pages on September 13, 2026.
| Service | How you pay | Entry price | Per 1,000 pages | Free tier |
|---|---|---|---|---|
| Jina Reader | Per output token, top up | Not shown in dollars on the page | Not published per page | 10 million tokens per key; no key needed at 20 requests a minute |
| Crawl4AI | Open source, Apache-2.0 | $0 plus your own servers | Your compute | n/a |
| Spider | Bandwidth and CPU, top up | $5 top-up | $0.08 to $0.15 by its own calculator | None shown |
| ScrapeGraphAI | Monthly credits | $20 for 10,000 | $2.00; $0.67 on the $500 plan | 500 credits, once |
| Apify Website Content Crawler | Platform compute | $19 plan, or the $5 free plan | $0.20 raw HTTP, $0.50 to $5 headless, by Apify's estimate | $5 of usage a month |
| Exa contents | Prepaid balance | Any amount | $1.00 | $20 once, then $10 a month |
| Tavily extract | Monthly credits or pay as you go | $30 for 4,000 credits | $1.50; $1.60 pay as you go | 1,000 credits a month |
AnyAPI web.scrape | Per call | None | $0.70 | A small starter balance |
Jina Reader is the one to try first if you want zero setup: put r.jina.ai/ in front of any URL and the page comes back as markdown, no key, up to 20 requests a minute. It bills by output token rather than by page, and the dollar rate only appears inside its top-up widget, so you can't budget it per page from the pricing page. There's no crawl. It's also one of the four providers behind AnyAPI's page scraper.
Crawl4AI is the self-hosted answer. It's an Apache-licensed Python library with 83,000 GitHub stars that does what Firecrawl's open-source core does, and the bill is whatever your servers and proxies cost. Its hosted cloud is in a closed beta with no published price, so today it's a library, not a service.
Spider meters bandwidth and CPU instead of pages, at $1 per gigabyte and a tenth of a cent per CPU minute, with a balance that never resets. Its own calculator puts that at $0.08 to $0.15 per 1,000 pages, the lowest number in this table, though the same page also prints $0.03, so treat the figure as a range and test on your pages. There's an unlimited-pages plan priced on concurrency from $40 a month.
ScrapeGraphAI sells the same idea as Firecrawl with a prompt-based extractor, at $20 a month for 10,000 credits where a markdown page is one credit. That's $2.00 per 1,000 at entry, and its top-up packs never expire, which Firecrawl's don't offer. Free is 500 credits once, not monthly.
Apify's Website Content Crawler has no actor fee; you pay Apify's compute. Apify's own estimate is $0.20 per 1,000 pages with the raw HTTP crawler and $0.50 to $5 with a headless browser, on a $19 plan whose unused usage expires at the end of the cycle. It's the right pick if you already run other Apify actors and want the scheduling and storage around them. The best Apify alternative covers the platform bill in detail.
Exa and Tavily are search APIs for agents that happen to return page contents. Exa charges $1 per 1,000 pages on a prepaid balance with no minimum, and its search is $7 per 1,000. Tavily's extract endpoint is five URLs per credit, which works out to $1.50 per 1,000 on its $30 plan, with 1,000 free credits a month. Pick either if your agent already searches through them; neither is a crawler.
The short version: whole sites into markdown, Firecrawl or Crawl4AI if you'll host it. Cheapest metered pages, Spider, if its byte-based bill suits your pages. One page or one platform record at a time, at a price you can read before you call, pay per request.
Firecrawl vs paying per request, at a glance
| What you deal with | Firecrawl | Paying per request |
|---|---|---|
| What you're billed for | Monthly credit bundle, 1 credit a page | One price per successful call, in USD |
| Subscription | $19 to $749 a month, prepaid | None |
| Unused credits | Expire, except one month's carry on Scale | Nothing to carry |
| Price per 1,000 pages | $3.80 on Hobby down to $0.75 on Scale | $0.70, on any volume |
| A page that returns a 403 | Delivered, 1 credit | Not charged |
| Crawl a whole site | One call | Fetch pages yourself, or web.crawl at $34.70 per 1,000 pages |
| LinkedIn, Instagram, Google results as JSON | Page text or a login wall | Dedicated endpoints, one shape |
| If a provider fails | Retries with its own engine | Falls back to another provider |
| Free tier | 1,000 credits every month | A small starter balance |
| Open source | Yes, AGPL | No |
Limitations and tradeoffs
Crawling sites into markdown? Use Firecrawl. Its crawler, extractor, and agent are the best in the category, and the free tier covers real work. AnyAPI's own crawl endpoint costs $34.70 per 1,000 results, which is no contest for a whole-site job.
Fetching pages or platform data one call at a time? Pay per request. You don't want to size a bundle, you don't want credits expiring in a quiet month, and you'd rather have LinkedIn or Google results as fields than as text to parse.
Two limits on AnyAPI's side. The page scraper returns markdown and page metadata, not Firecrawl's JSON extraction against your own schema. And the endpoint page above shows 93.9% uptime for the last 30 days, which is the number after fallback and lower than Google search's 99.7% on the same site. Pages that block every provider still fail.
If Apify's Actor marketplace is the other thing you're weighing, see the best Apify alternative. For raw HTML fetching at volume there's the best ScrapingBee alternative, and for the whole field priced on one job, 7 Apify alternatives on real per-request cost.
Frequently asked questions
- How much does Firecrawl cost in 2026?
- Firecrawl's free plan includes 1,000 credits a month. Paid plans month to month are Hobby at $19 for 5,000 credits, Standard at $99 for 100,000, Growth at $399 for 500,000, and Scale at $749 for 1,000,000. Annual billing is 16.7% to 20% cheaper and is what the pricing page shows by default. One credit is one page scraped, crawled, or mapped. Checked September 11, 2026.
- Do Firecrawl credits roll over?
- Not on Hobby, Standard, or Growth. Scale carries unused credits for one month, and Enterprise is custom. The free tier resets to 1,000 credits each month. Paid plans can also buy extra credits in $5 packs, from 1,000 credits per pack on Hobby to 5,000 on Scale.
- Does Firecrawl charge for failed requests?
- A scrape that returns no result isn't charged. A page that responds with an error status such as 403 or 404 is still delivered and costs one credit. JSON, question, and highlight formats add 4 credits per page, and PDFs cost one credit per page.
- Is Firecrawl open source?
- Yes. The core scrape, crawl, map, and search routes are on GitHub under the AGPL-3.0 license and can be self-hosted. The anti-bot Fire-engine, screenshots, browser interaction, and the agent are only available on Firecrawl's cloud.
- Is paying per request cheaper than Firecrawl?
- For single pages, yes. AnyAPI's web.scrape is $0.70 per 1,000 pages at any volume, against $3.80 per 1,000 on Firecrawl's Hobby plan and $0.99 on Standard month to month. Firecrawl's Scale plan gets to $0.75 per 1,000 if you use all million credits. For crawling whole sites, Firecrawl is cheaper and simpler.
Use data responsibly and follow AnyAPI's Acceptable Use Policy.