Firecrawl deep research ends Dec 10, 2026
Where each field goes.
Firecrawl removes /v1/deep-research on Thursday, December 10, 2026, at 15:00 UTC. After that every request fails with HTTP 410 Gone. Firecrawl's replacement is /v2/agent, where the report and the sources are fields you add to a schema.
SpecStream is the live web data engine for teams and agents. POST /v1/research takes the same question and returns a written report with the page behind each cited sentence, at $0.10, $0.30 or $1.00 a report.
New accounts get $10 of credit, no card. It covers 100 quick reports or 33 standard reports.
Every deep research field, on SpecStream and on /v2/agent
| SpecStream | Firecrawl v1 deep research | Firecrawl /v2/agent | |
|---|---|---|---|
| After Dec 10, 2026 | POST /v1/research answers, on the same key as the Search API and the Extract API | Removed at 15:00 UTC. Every request fails with HTTP 410 Gone | The replacement Firecrawl names. Needs the latest SDK and a rewrite of each call |
| The call | POST https://api.specstream.ai/v1/research, then GET /v1/research/{id} | POST /v1/deep-research, then GET /v1/deep-research/{id} | POST /v2/agent, then GET /v2/agent/{id} |
| The question | input, up to 15,000 characters. Put your systemPrompt and analysisPrompt text in it | query, with systemPrompt and analysisPrompt beside it | prompt. Firecrawl's guide says to merge query, systemPrompt and analysisPrompt into one prompt |
| How far it reads | depth: quick, standard (the default) or deep. About one minute, four minutes and five minutes | maxDepth 1 to 10 (default 7), timeLimit 30 to 300 seconds (default 270), maxUrls 1 to 1,000 (default 20) | maxDepth and timeLimit have no equivalent. maxUrls becomes maxCredits, a spend cap that defaults to 2,500. There is no page limit |
| The report | report.content, on every report, with [1] markers. length is short, standard or long | data.finalAnalysis | data.report, after you add a report string to schema |
| The sources | report.sources lists every page read. report.citations gives each cited sentence its page, read time and passage | data.sources: url, title, description and icon for each | data.sources, after you add a sources array to schema |
| Progress | GET /v1/research/{id}/events, server-sent events that resume with Last-Event-ID, or a webhook | data.activities and the onActivity callback | GET /v2/agent/{id}/trace, or a webhook |
| JSON in place of text | "output": {"type": "json", "schema": {...}} | jsonOptions.schema | schema |
| Price | $0.10 quick, $0.30 standard, $1.00 deep, shown as price_usd in the reply to the POST. Taken once, when the report is delivered. A cancelled report is not charged | 1 credit for each URL analyzed | 5 daily runs free, then usage-based pricing. AI credits are billed at 2× in a zero data retention run |
| When a run stops early | POST /v1/research/{id}/cancel stops it at no charge. 402 before the start when the balance does not hold the price | status is processing, completed or failed | A run that reaches maxCredits reports failed with stopReason credit_limit_reached. data is set on completed runs only |
Why deep research users move to SpecStream
What ends on December 10
Firecrawl's docs mark the v1 deep research API as deprecated and give one date for its removal: Thursday, December 10, 2026, 15:00 UTC. From that minute POST /v1/deep-research and GET /v1/deep-research/{id} return 410 Gone. The SDK methods deepResearch, asyncDeepResearch and checkDeepResearchStatus (in Python deep_research, async_deep_research and check_deep_research_status) call those two paths, so they stop at the same time. Firecrawl tells no-code users on n8n, Zapier and Make to update the Firecrawl node or app.
The report and its sources come back without a schema
Deep research returned finalAnalysis and sources on every run. On /v2/agent both are fields you write into schema yourself: a required report string and a required sources array of { url, title } objects. A SpecStream research report holds both on every run. report.content is the text, report.sources lists every page read, and report.citations ties each cited sentence to its page, the time it was read and the passage that supports it. Your reader can check a sentence against the passage without opening the whole page.
You know the price before the report starts
Deep research charged 1 credit for each URL analyzed, so maxUrls set the most a run could cost. /v2/agent replaces it with maxCredits, default 2,500, and a run that reaches the cap reports failed. A SpecStream report has three prices: $0.10 for quick, $0.30 for standard and $1.00 for deep. The reply to the POST shows the price as price_usd, the balance pays it once when the report is delivered, and a cancelled report costs nothing. See pricing.
The rest of your Firecrawl code moves on the same key
SpecStream also answers Firecrawl's own /v1/scrape, /v1/search, /v1/map and /v1/crawl at https://api.specstream.ai/firecrawl, in v1's JSON. A search costs $0.001 for up to 10 results and a page $0.0008, from the same balance as the reports. The Firecrawl v1 migration page lists each field.
Other Firecrawl deep research alternatives
Firecrawl /v2/agent
SpecStream returns a cited report for $0.10, $0.30 or $1.00, and the other three options price as follows. /v2/agent is the path Firecrawl names: one prompt, an optional schema and a maxCredits cap that defaults to 2,500. Five runs a day are free, and usage-based pricing applies after that. The report and the sources exist when your schema asks for them. On SpecStream they are part of every report, at a price shown before the run.
Your own loop on Firecrawl search
Firecrawl's second suggestion is to build the research loop yourself on its Search API, at 2 credits per 10 results plus the scrape cost of each page you read. You write the planning, the reading, the synthesis and the citations, and you pay for the model that writes the report. SpecStream does that work inside one call and bills one price for the finished report.
Exa deep search
Exa answers a research question through /search with type: "deep" at $12 per 1,000 requests, or the older deep-reasoning type at $15 per 1,000 requests. The result is a search response. SpecStream returns a written report of the length you choose, with the passage behind each cited sentence.
Parallel Task API
Parallel prices a task run by processor, per 1,000 runs: 5 for lite, 300 for ultra and 2,400 for ultra8x, which is $0.005, $0.30 and $2.40 a run. You pick the processor for each task. SpecStream has three depths, and the deepest report costs $1.00.
How SpecStream scores
The same numbers as the benchmarks page, from the official tasks and scorers.
How to migrate, step by step
1. Find every deep research call: deepResearch, asyncDeepResearch and checkDeepResearchStatus in Node, deep_research, async_deep_research and check_deep_research_status in Python, and raw calls to /v1/deep-research.
2. Create a key under Agents & API in the workspace. New accounts get $10 of credit, no card.
3. Start the report. query becomes input, and maxDepth, timeLimit and maxUrls become one depth. The reply is 202 with the report's id and its price_usd.
curl -X POST https://api.specstream.ai/v1/research \
-H "Authorization: Bearer $SPECSTREAM_API_KEY" \
-H "Content-Type: application/json" \
-d '{"input": "What are the latest developments in quantum computing?", "depth": "standard"}'4. Read it until status is completed, as you did with GET /v1/deep-research/{id}. report.content takes the place of data.finalAnalysis, and report.sources the place of data.sources.
curl https://api.specstream.ai/v1/research/REPORT_ID \
-H "Authorization: Bearer $SPECSTREAM_API_KEY"5. If you used onActivity, follow GET /v1/research/{id}/events or pass "webhook": {"url": "https://..."}. If you used jsonOptions.schema, send the same JSON Schema as "output": {"type": "json", "schema": {...}}.
6. Send an Idempotency-Key header on the POST so a retry returns the same report and is charged once. The research report docs list every field and error.
An agent can run the same report over MCP at https://api.specstream.ai/mcp: research_price shows the price of each depth, start_research starts the report once the person who pays approves that price, and get_research reads it. The MCP guide has the setup for each client.
Frequently asked questions
Something we didn't answer? Talk to a human
When does Firecrawl deep research shut down?
/v1/deep-research request fails with HTTP 410 Gone, including the SDK methods deepResearch and deep_research.What replaces Firecrawl's /v1/deep-research?
/v2/agent, or your own research loop on its Search API. On /v2/agent you add a report string and a sources array to schema to get back what finalAnalysis and sources held. SpecStream's POST /v1/research returns both on every report.What is the best Firecrawl deep research alternative?
quick, four at standard and five at deep.How much did Firecrawl deep research cost, and what does SpecStream cost?
maxUrls you set, 20 by default. SpecStream bills $0.10 for a quick report, $0.30 for a standard report and $1.00 for a deep report, once, when the report is delivered.Do maxDepth, timeLimit and maxUrls have an equivalent?
depth, with the values quick, standard and deep. On Firecrawl /v2/agent, maxDepth and timeLimit are removed with no equivalent and maxUrls becomes maxCredits.Can I get JSON in place of a text report?
"output": {"type": "json", "schema": {...}} with a JSON Schema, the same schema you passed as jsonOptions.schema. The price stays $0.10, $0.30 or $1.00 by depth.Can I limit the sites a report reads?
include_domains and exclude_domains choose the sites for a report, at the same $0.10, $0.30 or $1.00.Sources
SpecStream wrote this page. Each rival figure comes from that company's own page.
- Firecrawl: Migrating from Deep Researchdocs.firecrawl.dev/migrating-from-deep-research.md, read Nov 13, 2026
- Firecrawl: Deep Research (legacy v1)docs.firecrawl.dev/features/alpha/deep-research.md, read Nov 13, 2026
- Firecrawl: Agentdocs.firecrawl.dev/features/agent.md, read Nov 13, 2026
- Firecrawl: Billingdocs.firecrawl.dev/billing.md, read Nov 13, 2026
- Exa pricingexa.ai/docs/admin/pricing.md, read Nov 13, 2026
- Parallel pricingdocs.parallel.ai/getting-started/pricing.md, read Nov 13, 2026




