results[].highlights.
Why highlights instead of full text
Highlights come from Exa’s in-house extraction model. The model reads each result against your query on every request and returns only the passages that answer it. You keep a fraction of the tokens of full page text with equal or better downstream answer quality.
The savings matter most in agent loops, where every round of search results competes with reasoning traces for context.
Add highlights to Search
Usehighlights: true inside contents for the recommended default. Exa uses the search query to select an appropriate amount of content from each result.
Dynamic Highlights
Dynamic Highlights adjusts how much text it selects from each result based on what is most useful for your query. It can take more from strong sources and less from repetitive or irrelevant ones, reducing the total tokens returned. Use it when several pages will feed the same agent or context window. Keep regular highlights when every page needs its own excerpt or a predictable per-page limit. In Exa’s evaluations, Dynamic Highlights cut tokens by an average of 95% compared to full page content. At a 12,000-character budget it beat regular highlights with a 40% average token-efficiency gain and a 3.8% quality increase. Inside Exa Agent, it cut total agent token usage by 30% with a 2.1% average quality gain on benchmarks including BrowseComp and WideSearch. Enable it withdynamic: true:
Dynamic Highlights is a research preview and requires the
Exa-Beta: dynamic-highlights-2026-08-28 request header. The SDKs send it when you pass
betas=[DYNAMIC_HIGHLIGHTS_BETA] (Python) or betas: [DYNAMIC_HIGHLIGHTS_BETA] (JavaScript).The response uses the same
results[].highlights shape as regular highlights.Next steps
Search API guide
Build a Search request and choose the right output shape.
Search best practices
Tune retrieval quality, latency, freshness, and context size.