
SEC EDGAR API vs MCP for AI Investment Research Products
The SEC EDGAR API is strong for XBRL numbers and filing lists. It does not return filing narrative. For qualitative analysis you can parse 10-K HTML yourself — or use hosted MCP that already cites passages.
SEC EDGAR API vs MCP for AI Investment Research Products
Table of contents
- Short answer
- What the SEC EDGAR API actually returns
- What an AI investment-research product needs that the API does not give you
- You can parse SEC filings yourself
- SEC EDGAR API vs DIY parse vs hosted MCP
- Worked example: one research question, three retrieval paths
- Common mistakes when you wire the SEC EDGAR API into an LLM
- How AlphaCreek uses MCP on top of EDGAR
- Questions product teams ask
- Methodology and update context
- Next step
Short answer
The SEC EDGAR API is the SEC’s documented JSON surface on data.sec.gov. It is strong for quantitative work: filing lists, company metadata, and XBRL facts such as tagged revenue. It does not return MD&A, Risk Factors, or other filing narrative. For qualitative analysis you still need the original 10-K / 10-Q text. After CompanyFacts, you have two ways to get that text: download and parse the filing yourself, or call a hosted MCP that already ingested it and can return a citation URL.
Why it matters: Founders building equity-research copilots still search “SEC EDGAR API” because that is how EDGAR access is named. The official APIs were designed for submissions history and tagged financials — numbers, not prose. If you treat CompanyFacts as a substitute for MD&A or Risk Factors, the model invents narrative around a number. Jumping straight from that gap to “buy MCP” skips a real option: you can fetch the .htm from the archive and parse it. That path is free. It is also a product of its own — ingestion, HTML drift, section trees, and citation mapping.
Practical takeaway: Keep the official API for numbers. For cited prose, either build the parse-and-cite pipeline or use hosted MCP so you do not operate it. Serious research products need both numbers and narrative. Connect a product at Build with AlphaCreek if you want the narrative layer hosted.
What the SEC EDGAR API actually returns
There is no single “EDGAR API” binary. The SEC documents read-only JSON APIs on data.sec.gov. The canonical reference is EDGAR Application Programming Interfaces. Access rules (descriptive User-Agent, fair-access rate limits) are in Accessing EDGAR Data. This article does not replace that documentation.
The APIs identify each filer with a CIK, the SEC’s company identifier. They do not accept a stock ticker such as NVDA in the URL. The SEC publishes company_tickers.json as a lookup file that maps each ticker to a company name and CIK. For example, its NVIDIA record contains ticker: NVDA, title: NVIDIA CORP, and cik_str: 1045810. An API client pads that CIK to ten digits (0001045810) before it requests NVIDIA’s submissions or CompanyFacts data.
company_tickers.json is only a public lookup table. It does not contain filings, financial facts, or filing text.
For a product team, three jobs matter:
| Job | Official surface | Good for | Not good for |
|---|---|---|---|
| Ticker → CIK | company_tickers.json | Finding the SEC id required by the APIs | Reading the 10-K |
| What did they file? | data.sec.gov/submissions/CIK##########.json | Form types, dates, accession numbers | The Business / MD&A prose |
| What number did they tag? | data.sec.gov/api/xbrl/companyfacts/CIK##########.json | Revenue, assets, EPS time series (quantitative) | Qualitative analysis, MD&A, risk-factor language |
Replace ########## with the filer’s 10-digit CIK (for NVIDIA, 0001045810). There is no browsable index at /submissions/ alone — each company has its own JSON file.
The official APIs are free and do not require an API key. You still must identify your client and stay inside the SEC’s fair-access policy — currently 10 requests per second, with a descriptive User-Agent header (company name and contact email). Do not copy a scraper’s User-Agent from a random blog.
In practice that stack is: CIK lookup, submissions JSON, then CompanyFacts. That path is correct for the quantitative layer of a research stack. It is not enough on its own when the product must answer qualitative questions from filing text.
What an AI investment-research product needs that the API does not give you
A serious investment-research product needs both: tagged numbers for screens, models, and statement extraction, and filing narrative for qualitative analysis. The SEC EDGAR API delivers the first. It does not deliver the second.
XBRL CompanyFacts is a quantitative feed. It does not contain management’s discussion, risk-factor language, strategy shifts, or the prose behind a number. When the UI asks a qualitative question but the backend only has tags, the model fills the gap with invention.
| User question (typical in a research copilot) | What CompanyFacts / submissions give you | The gap |
|---|---|---|
| “What did NVIDIA disclose about export controls in the latest 10-K?” | Maybe a tagged expense or a filing date | The risk-factor language, headings, and nearby context |
| “How did Tesla describe Robotaxi across the last five 10-Ks?” | Five accession numbers if you look them up | Period-aware narrative comparison, not five JSON blobs |
| “What are Apple’s reportable segments in the latest 10-K, in the company’s words?” | Tagged totals if the company tagged them | Segment table + MD&A commentary, kept together |
| “Cite the passage so a PM can open it.” | Accession + form, sometimes a .htm URL | A stable link to the node (section/table), not only the filing index |
AlphaCreek’s homepage states the same split: traditional financial APIs return normalized numbers; AlphaCreek returns original filing context and source-linked disclosure language. We do not claim to replace CompanyFacts, prices, or ownership feeds — those stay on the quantitative side.
Scope for this product: AlphaCreek’s SEC coverage is 10-K, 10-Q, 20-F, 6-K, and 8-K (plus FCA NSM on the same MCP). If your agent needs Form 4 insider XML, 13F holdings, or live quotes, use a data API built for those forms. Mixing those jobs into one “EDGAR API” paragraph is how comparisons go wrong.
For why dumping HTML into a vector index still fails on 10-Ks, see SEC filing AI: naive RAG vs structured RAG vs navigation. For the parse job itself, see How to parse SEC 10-K filings into sections.
You can parse SEC filings yourself
The archive still gives you the document. Submissions JSON tells you the latest 10-K accession and the primary .htm name. You can download that file from www.sec.gov/Archives/edgar/data/... and parse Item 1A, MD&A, and segment tables in your own stack. Many teams start here. It is a valid path.
What you then own — and what CompanyFacts will not do for you:
- Fair access. A descriptive
User-Agent, the 10 requests/second cap, retries, and 403s. - Ingestion. Detect new 10-Q / 8-K filings, store the artifact, and keep history when a filing is amended.
- HTML that is not a tree. EDGAR 10-K HTML is often a flat stream of styled tags, not clean
<h2>sections. Token chunking splits tables and Item boundaries. - A citation mechanism. An accession URL proves which filing. A product PM still needs a stable link to which paragraph or table. That means node ids, a reader URL, and a check that the model’s quote actually appears in the node.
A Python library such as EdgarTools shortens the HTTP and object layer. It does not remove ingestion ops, parse quality, or citation UX. If you ship this in-house, treat it as a filing-retrieval product sitting next to your facts warehouse — the same split FlexReport uses, except you run both sides.
DIY is the right call when you already have a parse team, you need forms AlphaCreek does not cover, or you must keep every byte on your own infra. Hosted MCP is the right call when the user-visible job is cited 10-K / 10-Q answers and you do not want to operate that pipeline.
SEC EDGAR API vs DIY parse vs hosted MCP
Teams rarely choose “API or nothing.” They choose who operates the narrative pipeline after the facts API.
| Dimension | Official SEC EDGAR API | DIY parse (library or custom) | Paid REST EDGAR API | Hosted MCP (AlphaCreek) |
|---|---|---|---|---|
| What it is | SEC-operated JSON | Your code over archive HTML | Vendor JSON/search/stream | Remote tools an agent can call |
| Cost to start | Free | Free library; you pay compute and ops | Subscription | Hosted plan (pricing) |
| Best output | Facts, filing lists | Sections you extract yourself | Queryable filings, extracts, streams | Queryable filings; Tools designed to save token costs |
| Who handles User-Agent and rate limits | You | You | Vendor | Vendor |
| Ingestion of new filings | You poll submissions | You | Vendor | Vendor |
| Passage-level citation | You build it | You build it | Filing or section URL, product-dependent | Every claim is citeable to the exact passage in the filing |
| Agent interface | You wrap HTTP | You wrap the library or its MCP | You wrap REST or their MCP | MCP tools (list_filings, get_filing_toc, read_node_content) |
| Time-to-ship for 10-K Q&A | Not a Q&A layer | Weeks if parse and cite are new | Days for search/extract; citation UX still yours | Days for the retrieval layer |
When the free API is the right tool
Use the official SEC EDGAR API when the product question is quantitative — a number, a tag, or a filing event:
- You need us-gaap (or IFRS) tags over time.
- You only need “latest 10-K accession for this CIK.”
- You will store facts in your own warehouse for screens and models.
That is a legitimate architecture — and only the quantitative half of a research copilot. You still need a narrative path (DIY parse or hosted MCP) for qualitative questions.
When DIY parse is enough
Parse in-house when your engineers will own HTML breakage, section maps, and citation URLs. FlexReport shows the split even when you outsource the narrative side: it keeps financial statements in its own system (numbers) and calls AlphaCreek for passage-level filing context — see how FlexReport traces equity research to SEC passages. You can invert that and keep parsing in-house too.
If the buyer question is “which MCP should I attach to Claude or Cursor,” start with Best SEC EDGAR MCP servers rather than this API article.
When hosted MCP is the right tool
Use hosted MCP when:
- The user-visible answer must quote original 10-K / 10-Q language.
- A human (or compliance review) must open the exact passage, not a 200-page HTML file.
- You do not want to operate EDGAR ingestion, section trees, and citation URLs as a product feature.
AlphaCreek is that retrieval layer. It is not a substitute for CompanyFacts. It is what you add after you already know the official API cannot cite Item 1A, and after you decide not to build the parse-and-cite product yourself.
Worked example: one research question, three retrieval paths
Use the same class of question we used in the July 2026 SEC EDGAR MCP benchmark (NVIDIA risk factors; Tesla strategy across 10-Ks; Apple segments). Here the contrast is facts vs DIY parse vs MCP, not vendor vs vendor.
Question: “What are NVIDIA’s material risks in the latest 10-K, in the company’s words, with a source for each claim?”
Path A — SEC EDGAR API (facts and metadata)
- Look up
NVDAin company_tickers.json. It returns CIK1045810; pad it to0001045810. - Call
data.sec.gov/submissions/CIK0001045810.json. Read the latest10-Kaccession and primary document name. - Optionally GET
data.sec.gov/api/xbrl/companyfacts/CIK0001045810.json. You may see tagged line items. You will not get Item 1A as a titled tree of risks.
What the agent can honestly say after step 3: “A 10-K exists; here is the accession.” What it cannot honestly say: “Here is the export-controls risk paragraph, and here is the URL that scrolls to it.”
Path B — Download the HTML and parse it yourself
- Take the accession and document name from Path A.
- GET the primary
.htmfrom the EDGAR archive (same fair-access rules). - Parse it into titled sections (not token chunks). Keep table structure.
- Store node ids and mint citation URLs your UI can open.
- Have the model quote only from those nodes; verify the quote is in the node text.
This answers the qualitative question. The cost is that steps 2–5 are a standing service: ingest, parse, cite. There is no runnable scraper in this article.
Path C — MCP filing map
This is the AlphaCreek tool sequence. If you are choosing which MCP to attach to Claude or Cursor, use Best SEC EDGAR MCP servers instead of this comparison.
list_filings(ticker +10-K) → pick the artifact / period.get_filing_toc→ the filing-specific table of contents with stable node ids.read_node_contenton the Risk Factors nodes the TOC points to (not the entire 10-K).- Each node includes a citation URL (
doc_id+node_id) into the AlphaCreek reader.
In the July 2026 hosted MCP run, that difference showed up as citations: AlphaCreek linked to the exact reader passage (example: NVIDIA export-controls risk node). Other MCPs in that test linked to a filing index or a raw .txt — correct document, not a passage. Full script and logs: GitHub.
Path A belongs in every research product that needs numbers. Path B or Path C supplies the narrative. FlexReport keeps Path A-style statements in-house and uses Path C for passages. You can keep Path B in-house instead if you will operate parse and cite.
Common mistakes when you wire the SEC EDGAR API into an LLM
- Dumping the 10-K HTML into the prompt. Token cost explodes. Tables split. The model still cannot point to a node.
- Treating CompanyFacts as MD&A or Risk Factors. Tags are numbers with taxonomy labels, not management’s discussion. They cannot support qualitative analysis on their own. The tag set also varies by issuer.
- Chunking by token window. Fixed chunks break Item boundaries and table headers. That failure mode is the subject of how to build an SEC filing agent without naive RAG.
- Citing the archive index as if it were the paragraph. An accession URL proves which filing you meant. It does not prove which sentence supported the claim.
- Skipping the middle option. The API does not cite Item 1A. That does not mean the only next step is a vendor. You can parse the
.htmyourself. If you do, budget for ingestion and citations — not only a one-off download.
None of these mistakes mean the official API is “bad.” They mean it covers the quantitative layer, not the qualitative one. Narrative still requires Path B (DIY) or Path C (hosted).
How AlphaCreek uses MCP on top of EDGAR
Teams that already use the SEC EDGAR API for numbers still need a narrative layer for qualitative questions. AlphaCreek’s hosted MCP is that layer for 10-K / 10-Q / 20-F / 6-K / 8-K text and tables, with a filing map generated at ingest.
Four read-only tools. The research path is three calls after you know the ticker:
- List or latest —
list_filings(orget_latest_filing) by ticker and form. Keep theartifact_document_id. - Navigate —
get_filing_tocfor that filing’s table of contents. - Read —
read_node_contentfor one node (node_id) or several (node_ids). Each block carriesNODE_IDandCITATION_URL.
Coverage (product facts, not a ranking claim): 6,000+ US tickers; freshness target under five minutes after SEC submission; same MCP also serves UK FCA NSM filings if you need that later.
FlexReport is the existence proof: an AI equity-research product that detects 8-K/10-Q filings, keeps statements in-house, calls AlphaCreek for nodes, verifies that the model’s quote appears in the node, then attaches citation URLs from a map — the model never invents the URL. Details: AlphaCreek powers citation-backed SEC research in FlexReport.
AlphaCreek is not an equity-research terminal. It is the filing-context backend those terminals call.
Wire it from Build with AlphaCreek MCP. Tool schemas: MCP docs.
Questions product teams ask
Is the SEC EDGAR API free?
Yes. The SEC’s data APIs on data.sec.gov do not require an API key. You must send a descriptive User-Agent and follow fair-access rules. “Free” does not mean “free to ignore rate limits or to republish the archive as your product.”
Does MCP replace CompanyFacts?
Partly, for agents. An MCP that returns filing nodes (including tables) can answer “what was revenue?” from the 10-K text, with a citation. It does not replace CompanyFacts as a time-series store. If you need numbers in a chart or data table in your own UI — screens, models, period-over-period series — use the official CompanyFacts API (or your warehouse). Use MCP when the number must sit next to the original passage.
Can I use the official API and hosted MCP together?
Yes. That is the FlexReport pattern: your warehouse or statement extractor for charts and models; MCP for the paragraph (and in-filing figures) the user will audit.
Can I skip MCP and parse filings myself?
Yes. Download the primary HTML after you have the accession from submissions JSON, parse it into sections, and attach your own citation URLs. You then own fair-access, ingestion, HTML drift, and the cite layer. Use that path if those jobs are already a product you want to run.
How do citations work?
AlphaCreek returns a citation URL paired with each node id. The client should place that URL next to the claim. Do not ask the model to invent EDGAR links.
What filings does AlphaCreek cover?
SEC: 10-K, 10-Q, 20-F, 6-K, 8-K. Not Form 4, 13F, or market prices. UK FCA NSM annuals, half-year reports, and selected announcements are on the same connection.
Methodology and update context
This article describes how the official SEC EDGAR APIs relate to DIY parsing and hosted MCP filing retrieval as of 21 August 2026. SEC endpoint behavior is defined by SEC.gov API documentation, not by AlphaCreek. MCP citation behavior cited here comes from AlphaCreek’s product and from the 9 July 2026 hosted MCP benchmark (run 084202 on GitHub). FlexReport implementation details come from that customer’s published workflow.
We will update this post if AlphaCreek’s form coverage, tool names, or the SEC’s public API surface change in a way that would mislead a buyer.
Next step
If you already know you need cited 10-K/10-Q answers and you do not want to operate parse, ingest, and citation URLs, connect MCP:
- Connect AlphaCreek (Claude, ChatGPT, and other clients)
- Build with MCP (API key, Python / JavaScript)
- Best SEC EDGAR MCP servers if you are still choosing a server
- SEC EDGAR MCP benchmark if you need the citation evidence
If you will parse filings in-house, start with How to parse SEC 10-K filings into sections.
If you only need XBRL time series, stay on the official SEC EDGAR API. Do not pay a retrieval vendor to duplicate CompanyFacts.
If you are shipping an AI investment-research product and want the filing-context layer handled, get an API key or talk to us about production rollout.
