API Changelog
Notable changes to the edgar.tools API (api.edgar.tools) and MCP server (app.edgar.tools/mcp). Newest first.
2026-07-19 — Full-text search: entity resolution in the query (MCP + web)#
Applies to the search_filings MCP tool and web /search (not yet the REST API).
- New behavior: a company named in the query is resolved to its CIK filter
when it's marked as filer-scoped — a cashtag (
$AAPL), a possessive (apple's buyback), or a name next to a form code (apple 10-K). Soapple 10-Know returns Apple's 10-K, not every 10-K that mentions the word "apple".apple's buybackresolves Apple and expands "buyback" to the repurchase phrasing. - Only unambiguous matches resolve; anything ambiguous stays a full-text search.
The resolved entity is echoed in
query_understanding.entities. Opt out withunderstand=0/understand: false.
2026-07-19 — Full-text search: query understanding (form/item extraction)#
Applies to GET /v1/search/full-text, the search_filings MCP tool, and web /search.
- New behavior: form codes and 8-K item codes are lifted out of the query
text into the matching filters —
apple 10-K risk factorssearchesq=apple risk factorswithforms=10-K, instead of requiring the literal string "10-K" in the document body (which usually returns nothing). The interpretation is echoed in aquery_understandingblock;query.qstill reflects your raw input. - Only form codes (
10-K,8-K,DEF 14A,S-1, …) and explicititem N.NNphrases are lifted — everything else stays full-text.
- Opt out with
understand=0(API) /understand: false(MCP), or bypassing an explicit
forms/ciks/itemsfilter.
2026-07-19 — Full-text search: colloquial query expansion#
Applies to GET /v1/search/full-text, the search_filings MCP tool, and web /search.
- New behavior: a plain query is now widened into the filing-language phrases
it maps to — searching
buybackalso matches "share repurchase program",layoffsalso matches "reduction in force" — so you don't miss a topic because the filer used formal wording. Your literal text is always kept; expansion only widens recall. When it fires, the response carries analso_matchedblock naming the phrases added. - Opt out with
expand=0(API) /expand: false(MCP) for a literal search.Quoted, boolean, and wildcard queries are never expanded — they pass through as written.
2026-07-19 — Full-text search: default date window and sort order#
Applies to GET /v1/search/full-text and the search_filings MCP tool.
- Behavior change: a query with no
date_from/date_tonow defaults tothe last 12 months instead of all EDGAR history, so results aren't 25 years of relevance-ranked hits with decade-old filings on top. The response reports
applied_default_windowwhen this happens. To search all history, pass `date_from=2001-01-01` (or any explicit bound). Supplying either bound on its own keeps the old open-ended behavior. - New `sort` parameter:
relevance(default — match score blended withrecency),
recent, oroldest.
2026-07-11 — Compare Plans page and wider MCP tool reference#
- New Compare Plans page lays out features and limits by plan, side by side.
- Documented five MCP tools that were already live but had no reference page.
2026-07-10 — Price and market data on MCP tools#
Several MCP tools now return current market pricing alongside filing data:
institutional_ownershipreports position values in dollars.material_eventsincludes the T+1 price reaction for each event.company_briefandaccount_dossiercarry a market-snapshot block.financial_snapshotadds valuation metrics.
2026-07-08 — Tier enforcement corrections#
Closed cases where tier gating could be bypassed or applied inconsistently — including advisor endpoints, role handling, and stale session tokens. Access now matches the published plan entitlements.
2026-07-07 — Institutional holdings (13F) coverage fix#
The institutions endpoint and the institutional_ownership MCP tool now serve complete 13F holdings for the largest filers. Previously some large managers returned incomplete holdings.
2026-07-02 — New MCP tool: filing_details#
- New
filing_detailsMCP tool opens a filing and folds analysis and section retrieval into one call. analyze_filingnow returns anavailable_partsmanifest for 10-K and 10-Q filings.- Bare accession numbers now resolve even after a filing has aged out of the live window.
2026-06-03 — disclosure_search and edgar_notes now on Professional#
Both MCP tools moved from Analyst down to Professional. Pro accounts can now call them directly.
2026-05-30 — search_filings gains trend mode#
The full-text filing-search MCP tool is now search_filings (formerly search_filings_full_text) and adds a trend mode for tracking how often a term appears over time.
2026-05-25 — New MCP tools: edgar_recipes and financial_trends concepts#
- New
edgar_recipestool browses and queries the prompt-recipe library. financial_trendsadds cash-flow and share-count concepts.
2026-05-23 — New MCP tool: filing_section#
- New
filing_sectiontool retrieves a single named section of a filing (six section keys). - Financial tools now cite the
source_accessionin their output. - Four tools accept
detail: "full"to opt into complete, untrimmed responses.
2026-05-21 — New MCP tool: search_entities#
New search_entities tool runs one unified search across companies, funds, and advisors.
2026-04-24 — API tier quotas now enforced#
Per-user API quotas are now live. Until today, the API worker tracked per-tier usage in emit-only mode; starting today, exceeding the daily or monthly cap for your tier returns 429 quota_exceeded instead of going through.
What changed#
429responses now carry a structured body:{error, window, limit, used, reset, upgrade_url, user_id}.- Every API response now includes
X-RateLimit-Limit,X-RateLimit-Remaining, andX-RateLimit-Resetheaders — use them to self-throttle. - Windows are UTC: daily resets at
00:00 UTC, monthly at00:00 UTCon the 1st.
Tier caps#
| Tier | Day | Month |
|---|---|---|
| Free | 100 | 1,000 |
| Professional | 10,000 | 100,000 |
| Analyst | 50,000 | 1,500,000 |
| Enterprise | 100,000 | 1,000,000 |
How to check your usage#
app.edgar.tools/settings shows live monthly usage and the next reset time. Machine-readable: every successful API call echoes your remaining quota in the X-RateLimit-* headers.
If you hit a 429#
Wait Retry-After seconds, or check the reset timestamp in the response body. For client code, see the retry pattern in Errors & Limits.
Questions → support@edgar.tools.