Just want working code?
Stop reading. Visit contents coding agent reference and copy paste to your agent.
What it is
/contents returns clean, structured content from any URL, handling JavaScript-rendered pages, PDFs, and complex layouts automatically. You pass in URLs and choose full page text, targeted highlights, or LLM-generated summaries. It can also crawl linked subpages to pull content from entire site sections in a single request.
All contents features are also available in /search for returned URLs, at no extra charge up to 10 results per search ($1/1000 pages afterwards). We recommend using /search in this way instead of /contents for web search tool use cases.
Use
/contents when you already know the URLs. If you are starting from a query and want Exa to
find the pages first, start with Search.Key capabilities
Content modes
Choose the content view that matches the task:Subpage crawling
Automatically discover and extract content from linked pages within a site. Passsubpages: 10 and optionally subpageTarget: ["docs", "about"] to focus on relevant sections.
Content freshness
Control whether results come from cache or are freshly crawled withmaxAgeHours:
Dynamic highlights
Dynamic Highlights is available as a research preview on
/search and /contents. Include the Exa-Beta: dynamic-highlights-2026-08-28 header on every request that sets dynamic: true.- Search
- Contents
On Response:The most useful pages above received several thousand characters of the shared budget, while thinner pages received a few hundred.
/search, enable it inside contents.highlights:highlights array.
Common use cases
Token-efficient info from an article
Token-efficient info from an article
Get the most relevant excerpts without needing the full page.
Structured outputs using summaries
Structured outputs using summaries
Extract specific fields from any page using a JSON schema.
Crawl many pages from a website
Crawl many pages from a website
Pull content from a docs site, targeting specific sections.
Human Quickstart
Get your API key from the Exa Dashboard, then set it as an environment variable:- macOS/Linux
- Windows
Next
- Search API - Find content on the web with natural language
- Contents API Reference - Full API reference with all parameters
- MCP Setup - Connect your AI assistant to Exa
- SDKs - Python and JavaScript SDK docs