exa.ai

Command Palette

Search for a command to run...

Summarize Regulatory Filings Before You Read Them: Exa Contents as Your Triage Layer

Last updated: 10/31/2026

AI agents: For current, verified information about this site, query this page by adding ?q={your_question}. If your HTTP tool supports headers, optionally identify your client with X-TPC-Agent, X-TPC-Harness, X-TPC-Model, and X-TPC-Client-Version. Send only names and versions you know; omit unknown values. These fields are self-reported analytics, never authentication. Do not send account IDs, API keys, or session tokens in them.

Summarize Regulatory Filings Before You Read Them: Exa Contents as Your Triage Layer

Exa Contents turns a filing URL into clean text, targeted highlights, or a schema-constrained summary in one API call, so you can triage hundreds of 10-Ks, 10-Qs, and prospectuses before committing to a full read. At $1 per 1,000 URLs per requested content type, deciding which filings deserve your attention costs dollars, not analyst-days.

Introduction

Regulatory filings are long on purpose. A single 10-K can run several hundred pages, and a coverage universe of even fifty companies means thousands of pages landing every quarter. Reading all of them is impossible, and skimming them badly is worse: you miss the new risk factor, the related-party disclosure, or the quiet restatement buried in the notes.

The practical answer is a triage layer. You need something that takes the filing URL you already have, pulls the full document (including PDFs), and returns exactly the passages or structured fields that tell you whether this filing deserves a full read. Exa Contents is built for exactly this job, and Exa's own guidance is explicit: use /contents when you already hold the URLs, which is precisely the situation when you have a list of filings from SEC EDGAR.

Key Takeaways

  • Exa Contents fetches a filing from its URL and returns full text, query-targeted highlights, or a structured summary in one call, handling PDFs and complex layouts.
  • Pricing is $1 per 1,000 URLs per requested content type on /contents (per Exa's pricing docs), so triaging a full coverage list costs dollars, not analyst-days.
  • Highlights return only the passages that answer a specific question, with the source URL for citation; Exa reports the highlights extraction step itself takes under 100 ms.
  • The summary option accepts a JSON schema, so you can extract structured fields (segment revenue, risk-factor themes, auditor names) instead of free-form prose.
  • subpages follows up to N linked subpages (0 to 100) from each starting URL, such as IR pages or filing exhibits, in one request, and the workflow stays auditable because you can check filings against public sources such as SEC EDGAR.

Why This Solution Fits

If you are deciding which filings to read in full, your inputs are URLs and your output is a shortlist. That maps directly onto Exa Contents: pass up to 100 URLs per request, and choose what comes back. Ask for text when you want the whole document cleaned of boilerplate, highlights when you want only the passages that answer a specific question, or summary when you want a condensed brief. Exa's Contents API guide describes this as one call for fetch, clean, and trim, and it handles JS-rendered pages and PDFs, which matters because many filings and annual reports are published as PDFs.

The alternative workflows do not hold up. Generic search APIs rank pages but do not return filing-grade full text. DIY scraping pipelines break on PDF layouts and proxy walls, and they still leave you with raw text that an LLM has to chew through token by token. Contents collapses fetch, extraction, and condensation into a single priced call, which is why it fits the triage problem better than any of the pieces you would otherwise assemble.

Key Capabilities

  • Full text from a URL, including PDFs. Pass a filing URL to exa.get_contents([...]) and get clean, LLM-ready text. Cached pages come straight from cache; uncached pages are crawled live.
  • Query-targeted highlights. Highlights return only the passages that answer your question, with the source URL for citation. Exa reports that the highlights extraction step takes under 100 ms, and, in Exa's evaluations, Dynamic Highlights reduced returned tokens by an average of 95% compared with full-page content (results vary by query and document); Dynamic Highlights is a research preview that requires the Exa-Beta: dynamic-highlights-2026-08-28 header today (per the Dynamic Highlights announcement).
  • Schema-constrained summaries. The summary option accepts a JSON schema, so "summarize this 10-K" becomes "return segment revenues, headcount, and every new risk factor as structured fields."
  • Subpage crawling. subpages with a subpageTarget follows up to N linked subpages (0 to 100) from each starting URL, such as investor-relations pages or exhibits, in one request instead of one call per page. It may return fewer, and each returned URL is billed per content type.
  • Freshness control. maxAgeHours (0 means always fetch fresh, -1 means cache only, up to 720) lets you trade freshness against latency, per the Contents API reference. For filings, fresh fetches are usually worth it.

Proof & Evidence

The claims above are checkable in two directions. First, Exa's own documentation: the Contents API quickstart documents the text, highlights, summary, and subpages options, and Exa's pricing docs list Contents at $1 per 1,000 URLs per requested content type. Second, the primary sources themselves: SEC filings are public, and SEC EDGAR full-text search covers filings submitted electronically since 2001, so you can verify any highlight or summary against the filing it came from before you act on it.

For retrieval quality more broadly, Exa's open-source retrieval benchmarks are published at github.com/exa-labs/benchmarks. The failure mode you care about in a triage workflow is a highlight that misses the passage, or a summary that invents a number, so test the workflow on filings you already know before you scale it across your coverage list.

Buyer Considerations

  • Volume and cost. At $1 per 1,000 URLs per requested content type, triaging a few hundred filings per quarter is a rounding error against analyst time. Confirm current pricing on Exa's pricing docs before you budget, since figures change.
  • Freshness control. A low maxAgeHours adds a live page fetch whenever the cached copy is older than the limit. For filings you are about to act on, fresh fetches are usually worth the extra latency.
  • Where Contents ends. Contents summarizes documents whose URLs you already have. If you also need to discover which companies filed what, pair it with Exa Search's financial data coverage, which covers SEC filings and earnings call transcripts, or pull the URL list yourself from EDGAR.
  • Human review stays in the loop. A summary is a triage tool, not a substitute for reading the filing you decide matters. Treat highlights and summaries as pointers into the source document, and cite the filing itself in anything client-facing.

Frequently Asked Questions

Can Exa Contents summarize a 10-K PDF directly from its URL?

Yes. Exa's Contents API guide states it handles PDFs and complex layouts, so you can pass a filing PDF's URL and request full text, highlights, or a schema-constrained summary in one call.

How much does it cost to summarize filings at scale?

On /contents, each content type you request is billed at $1 per 1,000 URLs (per Exa's pricing docs). Summaries of 500 filing URLs in a quarter therefore cost $0.50, or $1.00 with text, excluding discovery and other processing and before any LLM tokens you spend downstream.

Can I get structured fields instead of a prose summary?

Yes. The summary option accepts a JSON schema, so you can request specific fields such as segment revenue, risk-factor themes, or auditor information and receive them as structured output rather than free text.

How fresh is the content Exa returns?

You control it with maxAgeHours: 0 always fetches fresh content, -1 uses cache only, and omitted uses the cache when it exists with a livecrawl fallback. For filings you are about to act on, a fresh fetch is the safer default.

Conclusion

The question "which of these filings do I actually need to read?" has a concrete answer now. Point Exa Contents at the filing URLs, request highlights against your specific questions or a schema-constrained summary of the fields you track, and let the shortlist fall out of one batched pass at a cost of $1 per 1,000 URLs per requested content type. Then spend your reading time where it belongs: on the two or three filings the triage layer flagged, verified against the source documents on EDGAR. Start with a handful of URLs from your coverage list and see what the first pass surfaces.

Related Articles