/search endpoint, but the retrieval process can issue multiple searches, inspect the evidence, refine its approach, and synthesize a grounded result.
Use standard Search when you need ranked pages for a well-formed query. Use Deep when finding the answer requires research.
How Deep Search works
Deep Search adds a research loop before the final response:1
Plan the search
Exa starts with your
query and may expand it into searches that cover different parts of the
request. You can supply starting variations with additionalQueries.2
Search and inspect
Deep searches for evidence, compares the findings with the request, and determines what is
supported or still missing.
3
Refine
When the evidence is incomplete or contradictory, Deep can issue a more targeted search instead
of returning the first plausible pages.
4
Select and synthesize
Deep selects the useful results and then uses the same synthesis path as other search types.
When you provide
outputSchema, the response includes structured output.content and
field-level citations in output.grounding.Choose a Deep mode
Start with
deep for research workflows. Move to deep-lite when the task is simpler and latency matters.
See Pricing for current cost and latency guidance.
Make a Deep request
Settype on a normal Search API request:
results. Add outputSchema when you also want a synthesized answer or structured dataset.
Provide starting queries
Deep normally decides which searches to run. UseadditionalQueries when you already know distinct terminology, perspectives, or subproblems that the research should cover:
query is always included. You can provide up to 10 additional queries, and the list is available only to Deep search types.
Do not provide minor rephrasings just to increase search volume. Add queries when each one contributes a meaningfully different search direction.
Guide behavior and output separately
systemPrompt and outputSchema affect different parts of the request:
systemPromptguides source preferences, novelty, deduplication, and Deep’s research behavior.outputSchemadefines the final shape and triggers synthesis.
Read the grounded response
Structured responses separate generated values from their evidence:output.content as the generated result and output.grounding to show or verify the sources supporting each field. Do not add citation or confidence fields to your own schema; Exa returns them automatically.
numResults controls how many selected pages are returned in results. It does not set the number of searches Deep may perform.
Stream the synthesis
Setstream: true with outputSchema to receive the synthesized output over server-sent events:
done. The final event contains the completed output and search time, with cost information when available.
When to stay with standard Search
Deep is unnecessary when one retrieval pass can satisfy the request:- You need relevant pages, not a researched conclusion.
- The query already identifies a specific source or narrow topic.
- Your application performs its own reasoning and only needs retrieval.
- The request is on an interactive, autocomplete, or voice path.
auto for the default quality and speed balance, or fast and instant for measured latency requirements.
Search API guide
Build requests, choose result content, and apply filters.
Search best practices
Improve quality, context, latency, and agent integrations.
Search API reference
See every request parameter and response field.
Pricing
Review current Deep Search costs and latency.