Exa /research is retired
A cited report from $0.10 a call.
Exa's changelog of April 1, 2026 lists the /research endpoint as retired, replaced by /search with type: "deep-reasoning". Since October 19 that type is legacy at $15 per 1,000 requests. For new requests Exa names deep, or Exa Agent for long-running research.
SpecStream is the live web data engine for teams and agents. POST /v1/research takes the question you sent to /research 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.
A research job on SpecStream, on Exa Deep and on Exa Agent
| SpecStream | Exa /search, type deep | Exa Agent | |
|---|---|---|---|
| Where a /research job goes | POST /v1/research, on the same key as the Search API and the Extract API | The replacement in Exa's April 1, 2026 notice is type: "deep-reasoning", a legacy type since Oct 19, 2026. Exa names deep for new requests | Exa's choice for long-running research, list building and multi-hop enrichment. Released on June 16, 2026 |
| The call | POST https://api.specstream.ai/v1/research, then GET /v1/research/{id} until status is completed | POST https://api.exa.ai/search with type: "deep". The reply comes in 4 to 15 seconds | POST https://api.exa.ai/agent/runs, then GET /agent/runs/{id} until status is completed, failed or cancelled |
| The question | input, up to 15,000 characters | query, with a systemPrompt that guides the research and up to 10 additionalQueries | query, with an effort mode and input.data to build on an existing dataset |
| How far it reads | depth: quick, standard (the default) or deep. About one minute, four minutes and five minutes | deep-lite in about 4 seconds, deep in 4 to 15 seconds, the legacy deep-reasoning in 12 to 40 seconds | effort: minimal, low, medium, high or xhigh at a fixed price, or the metered auto and ultra. An Ultra run takes a time budget of 5 minutes to 3 hours |
| The written answer | report.content, on every report, with [1] markers. length is short, standard or long | The selected search results under results. A synthesized answer comes back as output.content when you add an outputSchema | output.text, a natural-language answer |
| The sources | report.citations gives each cited sentence its page, read time and passage. report.sources lists every page read | Field-level citations in output.grounding | output.grounding: citations for text or structured fields, when emitted |
| JSON in place of text | "output": {"type": "json", "schema": {...}} with your JSON Schema | outputSchema, with at most 10 properties in total and at most 2 levels of nested objects | outputSchema, returned as validated JSON in output.structured |
| 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 | $12 per 1,000 requests on deep and deep-lite, and $15 on the legacy deep-reasoning, for up to 10 results | $0.012, $0.025, $0.10, $0.50 or $1.00 a request at a fixed effort. auto, the default, is metered: $0.10 per Agent Compute Unit and $0.005 per search, up to a $5 cap. ultra is metered up to $20 |
| The most a run can cost | The price of its depth: $0.10, $0.30 or $1.00. Over MCP, start_research runs only after that price is approved as confirm_max_cents | The price of one request: $0.012 on deep | The cap of a metered run, $5 on auto and $20 on ultra by default. budget.maxCostDollars accepts $1 to $100 |
| Progress and stopping | GET /v1/research/{id}/events, server-sent events that resume with Last-Event-ID, or a webhook. POST /v1/research/{id}/cancel stops the report at no charge | One reply, in seconds | Server-sent events with Accept: text/event-stream. POST /agent/runs/{id}/stop ends a run and keeps the results gathered so far |
Why /research users move to SpecStream
What Exa changed, by date
April 1, 2026: Exa's changelog lists the /research endpoint among the legacy items it retired, replaced by /search with type: "deep-reasoning". June 16: Exa released Exa Agent. October 19: deep-reasoning became a legacy type that keeps working at $15 per 1,000 requests, and Exa named two paths for new requests: deep, or Exa Agent for long-running research, list building and multi-hop enrichment.
So a team that moved its /research calls in April now runs on a legacy type, and its next move is a second rewrite: to a search type that answers in 4 to 15 seconds, or to an asynchronous agent with its own prices.
One question in, a written report out
A deep request is a search. It returns the selected results, and a synthesized answer only when you add an outputSchema of at most 10 properties. Exa Agent returns output.text, and its citations are in output.grounding when emitted. A SpecStream research report has the same shape on every call: report.content is the text with [1] markers, report.citations gives each cited sentence its page, the time it was read and the passage that supports it, and report.sources lists every page read in the run. Your reader checks a sentence against its passage without opening the whole page.
Three prices, shown when the report starts
Exa Agent has five fixed efforts from $0.012 to $1.00 a request. Its default mode, auto, bills what the run used, at $0.10 per Agent Compute Unit and $0.005 per search, up to a $5 cap. A SpecStream report costs $0.10 at quick, $0.30 at standard and $1.00 at 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 and Exa Agent pricing.
A question gets a report, a list gets rows
Exa Agent takes both kinds of job in one product: deep research and list building with enrichment. On SpecStream each has its own call and its own price. A question that needs a written answer with its sources goes to POST /v1/research. A list, such as every company that matches your conditions with the same facts on each, goes to Deep Search at 5¢, 15¢ or $1 a delivered row, with the most the run can cost approved before it starts. The Exa Research API alternative page covers the list job.
Your Exa /search code moves on the same key
SpecStream answers Exa's own POST /search at https://api.specstream.ai/exa, in Exa's JSON, for $1 per 1,000 searches of up to 10 results, against $4 on Exa's lite and $7 on auto. The same key runs the Search API, which scores 97.9 F-score on all 1,000 SimpleQA Verified questions (benchmarks), and the Extract API at $0.80 per 1,000 pages. The Exa migration page lists each parameter.
Other Exa /research alternatives
Linkup Research
SpecStream writes a cited report for $0.10, $0.30 or $1.00 in about one to five minutes, and the other three options price as follows. Linkup Research costs $0.25, $0.50, $1.50 or $2.50 a request by depth. A SpecStream standard report costs $0.30, under Linkup's M depth at $0.50, and a deep report costs $1.00, under Linkup's L at $1.50.
Parallel Task API
Parallel prices a Task run by processor, from $5 to $2,400 per 1,000 runs. Its pro processor costs $100 per 1,000 runs and takes 2 to 10 minutes, and ultra costs $300 and takes 5 to 25 minutes. A SpecStream quick report costs the same $0.10 as a pro run and takes about a minute.
Tavily Research
Tavily Research bills 4 to 110 credits a request on mini and 15 to 250 on pro, at $0.008 a credit pay as you go. That is $0.032 to $0.88 on mini and $0.12 to $2.00 on pro, known after the run. A SpecStream report has one price per depth, shown as price_usd when the report starts.
How SpecStream scores
The same numbers as the benchmarks page, from the official tasks and scorers.
How to move a /research call, step by step
1. Find the calls. Search your code for /research, and for /search requests that send "type": "deep-reasoning", the type Exa's April notice moved them to.
2. Create a key under Agents & API in the workspace. New accounts get $10 of credit, no card.
3. Start the report. The research question goes in input, and depth sets how far it reads. 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": "Which US states passed a data privacy law in 2026, and when does each one take effect?", "depth": "standard"}'4. Read it until status is completed. report.content is the text, report.citations holds the cited sentences and report.sources every page read.
curl https://api.specstream.ai/v1/research/REPORT_ID \
-H "Authorization: Bearer $SPECSTREAM_API_KEY"5. If your request has an outputSchema, send the same JSON Schema as "output": {"type": "json", "schema": {...}}. To follow a long report, read GET /v1/research/{id}/events or pass "webhook": {"url": "https://..."}. include_domains and exclude_domains choose the sites.
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.
7. For the plain search calls beside it, keep the Exa SDK and change one argument:
from exa_py import Exa
exa = Exa(api_key=SPECSTREAM_KEY, base_url="https://api.specstream.ai/exa")
result = exa.search("state data privacy laws 2026", num_results=10)An agent runs 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
Is the Exa /research endpoint still available?
/research endpoint among the legacy items it retired, replaced by /search with type: "deep-reasoning".What replaces Exa's /research endpoint?
/search with type: "deep-reasoning", at $15 per 1,000 requests. Since October 19 that type is legacy, and Exa names deep at $12 per 1,000 requests, or Exa Agent at $0.012 to $1.00 a request. SpecStream's POST /v1/research returns a written report with its sources for $0.10, $0.30 or $1.00.Is Exa deep-reasoning deprecated?
deep for new requests, or Exa Agent for long-running research, list building and multi-hop enrichment.Where does a research job fit beside Exa Agent?
POST /v1/research returns the written report with the page, read time and passage behind each cited sentence. Exa Agent is an asynchronous agent for list building, enrichment and deep research, at $0.012 to $1.00 a request by effort, or metered up to a $5 cap on auto. For lists, SpecStream Deep Search delivers rows at 5¢, 15¢ or $1 each.How much does a SpecStream research report cost?
How long does a research report take?
POST answers 202 at once, and GET /v1/research/{id}/events streams the progress.Can I get JSON in place of a text report?
"output": {"type": "json", "schema": {...}} with a JSON Schema. Exa's deep type takes an outputSchema of at most 10 properties in total.Does SpecStream answer Exa's /search call?
https://api.specstream.ai/exa, and POST /exa/search answers in Exa's JSON with the key in x-api-key or as a Bearer token.Sources
SpecStream wrote this page. Each rival figure comes from that company's own page.
- Exa changelogexa.ai/docs/changelog.md, read Nov 13, 2026
- Exa pricingexa.ai/docs/admin/pricing.md, read Nov 13, 2026
- Exa Deep Searchexa.ai/docs/search/deep-search.md, read Nov 13, 2026
- Exa Agentexa.ai/docs/agent/quickstart.md, read Nov 13, 2026
- Linkup pricing docsdocs.linkup.so/pages/documentation/development/pricing.md, read Nov 13, 2026
- Parallel pricingdocs.parallel.ai/getting-started/pricing.md, read Nov 13, 2026
- Tavily API creditsdocs.tavily.com/documentation/api-credits.md, read Nov 13, 2026
- SpecStream research reportsspecstream.ai/docs/research, read Nov 13, 2026
- SpecStream pricingspecstream.ai/pricing, read Nov 13, 2026
- SpecStream benchmarksspecstream.ai/benchmarks, read Nov 13, 2026
- SpecStream for agentsspecstream.ai/agents.md, read Nov 13, 2026




