Skip to the page

Open source web scraping API in 2026

Keep the client, not the server.

Two open-source scraping APIs lead the 2026 lists: Firecrawl, under AGPL-3.0, and Crawl4AI, under Apache-2.0. The code is free. The servers, the browsers, the proxies and the pages that block them are yours to run.

SpecStream is the live web data engine for teams and agents. It answers the Firecrawl and Crawl4AI APIs at their own paths, so your client stays and the server goes: $0.80 per 1,000 pages, and a page with no text costs nothing.

New accounts get $10 of credit, no card. It covers 12,500 pages.

SpecStream next to self-hosted Firecrawl and Crawl4AI

SpecStreamFirecrawl, self-hostedCrawl4AI, your own server
LicenseA hosted API. Your code keeps the open-source client it already usesAGPL-3.0 for the project. The SDKs and some UI components are MITApache-2.0
What you runNothing. Calls go to https://api.specstream.aiDocker Compose with the Firecrawl API and workers, Playwright, Redis, RabbitMQ and PostgreSQL. You own security, availability, capacity, upgrades, data retention and complianceA Docker server on your machine that runs the browsers, or the library in your own Python process
The APIFirecrawl v2 and v1 /scrape, /search, /map and /crawl at /firecrawl. Crawl4AI /crawl, /crawl/stream and /md at /crawl4ai. Its own POST /v1/extract reads up to 20 URLs a callThe Firecrawl API on port 3002. The default API is unauthenticated/md, /html, /crawl, /crawl/stream, /screenshot, /pdf and /execute_js, each behind your CRAWL4AI_API_TOKEN
Pages that block a plain readTried again as a browser would ask, then in a real browser, then from the site's own feed, then from its newest public archive captureBundled Playwright with a basic fetch fallback. Fire-engine is a separate engine you connectYour settings, your proxies
What a page costs$0.80 per 1,000 pages from a balance, with no plan. A page with no text is not charged, and credit never expiresThe code is free. The servers it runs on are yours to pay forFree under Apache-2.0. You cover hosting
Structured dataDeep Search: describe the records and get rows that meet every condition, at 5¢, 15¢ or $1 a delivered row, with the source URL and read time on every valueAI features need a model provider you connect: OpenAI, an OpenAI-compatible endpoint or OllamaThe cloud's /extract needs no LLM key of your own. On your own server, the model key is yours
MCPhttps://api.specstream.ai/mcp, with search_web and read_pages on the same keyA local MCP server that you point at your own APIMCP on your own server, for Claude Code and other agents
To start$10 of credit on sign-up, no card, which covers 12,500 pagesClone the repository, pick a release tag and run Docker Composedocker run the server image, or install the library

Why developers move their open-source scraper to SpecStream

Other open-source scraping options

How SpecStream scores

The same numbers as the benchmarks page, from the official tasks and scorers.

How to move a self-hosted scraper 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. Self-hosted Firecrawl: set the address to https://api.specstream.ai/firecrawl where your code has http://localhost:3002, and send the SpecStream key as the Bearer token. In Python:

import os
import requests

BASE = "https://api.specstream.ai/firecrawl"  # was http://localhost:3002
HEADERS = {"Authorization": f"Bearer {os.environ['SPECSTREAM_API_KEY']}"}

page = requests.post(
    f"{BASE}/v2/scrape",
    json={"url": "https://en.wikipedia.org/wiki/Web_scraping"},
    headers=HEADERS,
).json()
print(page["data"]["metadata"].get("title"), page["data"]["markdown"][:500])

3. Crawl4AI server: set the address to https://api.specstream.ai/crawl4ai where your code has http://localhost:11235, and send the SpecStream key in place of the server's API token. In JavaScript:

const reply = await fetch("https://api.specstream.ai/crawl4ai/md", { // was http://localhost:11235/md
  method: "POST",
  headers: { Authorization: `Bearer ${process.env.SPECSTREAM_API_KEY}`, "Content-Type": "application/json" },
  body: JSON.stringify({ url: "https://en.wikipedia.org/wiki/Web_scraping", f: "raw" }),
});
const { markdown } = await reply.json();
console.log(markdown.slice(0, 500));

4. Read 429 as a call to send again after Retry-After. It is not charged. Each reply carries the price of the call, and every call is listed in your workspace.

Frequently asked questions

Something we didn't answer? Talk to a human

What is the best open source web scraping API?
Firecrawl and Crawl4AI lead the 2026 lists of open-source scraping APIs: Firecrawl under AGPL-3.0, Crawl4AI under Apache-2.0. SpecStream answers both APIs at their own paths for $0.80 per 1,000 pages with nothing to host, so the client you chose keeps working.
Is Firecrawl open source?
Yes. Firecrawl is open source under the AGPL-3.0 license, and its SDKs and some UI components are MIT. The hosted version adds features, and the self-hosted stack runs the API and workers, Playwright, Redis, RabbitMQ and PostgreSQL on your servers.
Can I use the Firecrawl SDK without running Firecrawl?
Yes. Set the SDK's API address to https://api.specstream.ai/firecrawl and use a SpecStream key. Scrape, search, map and crawl answer in Firecrawl's v2 and v1 JSON, at $0.80 per 1,000 pages and $1 per 1,000 searches.
Is Crawl4AI free?
Yes, the Crawl4AI library and server are free under Apache-2.0, and you cover hosting. Its hosted cloud gives 1,000 free credits a month, with plans from $10. SpecStream answers the Crawl4AI server's /crawl and /md at $0.80 per 1,000 pages.
How much does SpecStream cost per page?
$0.80 per 1,000 pages, or $0.0008 a page, up to 20 pages a call. A page that gives no text is not charged, there is no monthly plan, and a new account gets $10 of credit, no card.
Does SpecStream have an MCP server?
Yes, at https://api.specstream.ai/mcp over Streamable HTTP, with OAuth or an API key. An agent gets search_web and read_pages on the same balance, inside the limits you set on its key.

Sources

SpecStream wrote this page. Each figure about another project comes from that project's own page or repository.

  1. SpecStream pricingspecstream.ai/pricing, read Nov 12, 2026
  2. SpecStream for agentsspecstream.ai/agents.md, read Nov 12, 2026
  3. SpecStream benchmarksspecstream.ai/benchmarks, read Nov 12, 2026
  4. Firecrawl READMEgithub.com/firecrawl/firecrawl, read Nov 12, 2026
  5. Firecrawl SELF_HOST.mdgithub.com/firecrawl/firecrawl/blob/main/SELF_HOST.md, read Nov 12, 2026
  6. Firecrawl pricingfirecrawl.dev/pricing, read Nov 12, 2026
  7. Crawl4AI READMEgithub.com/unclecode/crawl4ai, read Nov 12, 2026
  8. Crawl4AI pricingcrawl4ai.com/pricing, read Nov 12, 2026
  9. Scrapygithub.com/scrapy/scrapy, read Nov 12, 2026
  10. Crawleegithub.com/apify/crawlee, read Nov 12, 2026
  11. Apify pricingapify.com/pricing, read Nov 12, 2026