Restrict Search API Results to Financial News and Regulator Domains with Exa
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.
Restrict Search API Results to Financial News and Regulator Domains with Exa
Exa's Search API gives you two direct controls: includeDomains pins results to an allowlist of hostnames you trust, and category narrows the index to news, publications, or financial reports. Set includeDomains to your list of reputable outlets and regulator domains, add category: "news" or "financial report", and every result comes from a source you chose in advance.
Introduction
If you build research tools, monitoring pipelines, or AI agents for finance work, source quality is not optional. A single result from a low-quality aggregator or a content farm can poison a due-diligence brief, a compliance alert, or an LLM answer that cites it. The usual workaround, filtering results after the fact, is fragile: you pay for the noise, then discard it.
The better fix is to constrain the search itself. Exa's Search API accepts domain-level filters on every request, so the index is effectively pre-scoped to the outlets and regulator domains you name. This article shows exactly how to do it, what the parameters are, and what to watch out for when you put it into production.
Key Takeaways
includeDomainsrestricts results to hostnames you specify, including path prefixes likeexample.com/docsand wildcards like*.example.com, with up to 1,200 entries per request (Search reference).excludeDomainsremoves noisy domains instead of allowlisting, which is useful when you want broad coverage minus known bad actors.category: "news"biases results toward news coverage, andcategory: "financial report"narrows results to filings and reports such as SEC filings; transcripts, quotes and analyst coverage come from ordinary queries (Financial data docs).- Date filters (
startPublishedDate,endPublishedDate) andcontents.maxAgeHourskeep results current, which matters for market-moving news. - The
litesearch type returns in about 450 ms at $4 per 1,000 requests, and the defaultautotype returns in about 1 second at $7 per 1,000 requests (Search quickstart).
Why This Solution Fits
Many tools treat "reputable sources" as a ranking problem you cannot control. Exa treats it as a request parameter you set. That difference matters for three finance-specific reasons.
First, regulator domains are known and finite. The SEC, the Federal Reserve, the FCA, ESMA and their peers publish at stable hostnames. An allowlist of a few dozen entries covers the primary-source layer of most research workflows, and Exa's filter accepts hostnames, path prefixes, and wildcard subdomains, so you can scope to sec.gov as a whole or to a specific section of a site (Search reference). For dated SEC filings, SEC EDGAR is the primary source to check results against.
Second, reputable financial news is also a manageable allowlist. If your compliance policy says a claim must come from an approved outlet, includeDomains turns that policy into code rather than a post-hoc review step.
Third, Exa's index already covers the primary documents finance teams need. The Financial data page describes coverage of SEC filings and reported financials, earnings call transcripts with speaker-attributed Q&A, prices, analyst estimates, and funding announcements. Ordinary queries reach that broader coverage, and category: "financial report" narrows results to filings and reports (Financial data docs). Domain filters sit on top of that coverage, so you are narrowing a finance-capable index, not a general web index.
Key Capabilities
Domain allowlisting and blocklisting. includeDomains and excludeDomains accept hostnames, path prefixes such as example.com/docs, and wildcard patterns such as *.example.com, up to 1,200 entries per request. One caveat from the docs: the company and people categories do not support date filters, and people also does not support excludeDomains, so plan your category choice around the filters you need (Search reference).
Category scoping. Lowercase category values include news, publication, and financial report. News search targets current coverage; publication search covers academic publications (SOTA Search Over Academic Publications); financial report narrows results to filings and reports.
Freshness controls. startPublishedDate and endPublishedDate take ISO 8601 dates, and contents.maxAgeHours limits how old cached page content can be (-1 to 720 hours): cached copies older than the limit are re-fetched and 0 requests a fresh fetch, so a breaking-news query does not return last quarter's cached text. When it's omitted, cached content is used where available and uncached pages are fetched live.
Token-efficient results. On /search, text and highlights for up to 10 results are included in the base price and billed once, so contents.highlights returns the relevant passage with its source URL at no extra charge. That is what an analyst needs to cite a number without pulling full pages. For long filings, Dynamic Highlights (a research preview, enabled with the Exa-Beta: dynamic-highlights-2026-08-28 header) keeps responses within budget (Dynamic Highlights).
Speed you can plan around. The lite type returns in about 450 ms at $4 per 1,000 requests and is the right choice for latency-sensitive paths; the default auto type returns in about 1 second at $7 per 1,000 requests (Search quickstart; prices per Pricing). If you need a synthesized answer instead of a result list, outputSchema adds an output object with grounding, at a cost of about 2 seconds of extra latency. Note that lite rejects outputSchema, so use auto or a deep type when you need structured output.
A minimal scoped request looks like this:
{
"query": "SEC enforcement action against a public company",
"category": "news",
"includeDomains": ["sec.gov", "federalreserve.gov", "reuters.com", "bloomberg.com"],
"startPublishedDate": "2026-09-01",
"numResults": 10,
"contents": { "highlights": true }
}
Every result comes from one of the four domains, carries an estimated publishedDate within the window when one is available, and includes the passage that answers the query. Note that publishedDate is "an estimate of the creation date, from parsing HTML content," and author is returned only "if available" (Search reference).
Proof & Evidence
The parameters above are documented, not marketing claims. Exa's Search reference specifies the includeDomains and excludeDomains filters, their accepted formats (hostnames, path prefixes, wildcards) and the 1,200-entry limit (Search reference). The Search quickstart documents the search types and their typical latencies (Search quickstart). The Financial data page enumerates Exa's finance coverage, and category: "financial report" narrows results to the filings and reports within it (Financial data docs).
For teams that want to verify search quality independently, Exa publishes its evaluation suite as open source at github.com/exa-labs/benchmarks, so you can inspect how the retrieval layer is measured rather than taking benchmark numbers on faith. And because the whole point of domain filtering is primary-source fidelity, SEC EDGAR remains the independent reference you can check any filing-related result against.
Buyer Considerations
- Build the allowlist deliberately. An allowlist is only as good as its entries. Start with the regulator and outlet domains your compliance or editorial policy already recognizes, and version the list like any other configuration.
- Allowlist versus blocklist. Allowlisting gives maximum precision but can miss new reputable sources. If recall matters more, search broadly with
excludeDomainsfor known offenders and review results before they reach downstream systems. - Mind the category limits.
companyandpeopleresults do not support date filters, andpeoplealso does not supportexcludeDomains. If your pipeline depends on either, usenews,publication, orfinancial reportinstead. - Price the whole call. Search is $4 per 1,000 requests for
liteand $7 forauto, and the base price includes up to 10 results with text and highlights; the extra charges are results beyond 10 ($1 per 1,000 results) and AI page summaries ($1 per 1,000 pages;litedoes not support summaries) (Pricing). Scoped searches reduce wasted requests, which is where domain filtering pays for itself. - Point-in-time needs have limits. If you want to backtest a web-derived signal as of a past date, Snapshot pins a
liteorautosearch to a stored page version, but it is a research preview with a rolling 5-month window on pay-as-you-go plans (Snapshot docs). Multi-year history is a sales conversation, not a self-serve setting.
Frequently Asked Questions
Can I combine domain filters with a category like financial report?
Yes. includeDomains and excludeDomains work alongside category, date filters, and contents options in the same request, so you can scope to regulator domains and filings coverage in one call.
How many domains can I include in one request?
Up to 1,200 entries, and each entry can be a full hostname, a path prefix such as example.com/docs, or a wildcard such as *.example.com (Search reference).
What if I want everything except a few spammy domains?
Use excludeDomains instead of an allowlist. Note that it is not supported in the people category, so choose your category accordingly.
How current are the results?
Date filters (startPublishedDate, endPublishedDate) bound the publication window, and contents.maxAgeHours re-fetches cached pages older than the limit you set (0 requests a fresh fetch). On the default auto type, the search itself returns in about 1 second with cached content.
Conclusion
Limiting search results to reputable financial news sites and regulator domains should be a request parameter, not a cleanup step. Exa's Search API makes it one: includeDomains enforces your source policy at query time, category aims the index at news, publications, or financial reports, and date filters keep everything current. Start with the Search quickstart, build your allowlist from the domains your policy already trusts, and test it against the Financial data docs coverage to see how much of your research workflow the scoped index already covers.