EdgarStack

Hosted MCP server giving Claude, ChatGPT and other AI clients SEC EDGAR financials, ratios, peer comps, filing diffs and Excel models.

Documentation

Documentation

Connect EdgarStack to the MCP-compatible AI client and model you choose. The MCP server supplies SEC data and filing evidence; your AI client interprets and explains it. A REST API is also available for scripts and dashboards.

View the EdgarStack MCP server profile →

MCP connector (your compatible AI client)

EdgarStack does not use a built-in model or require model-provider credentials. Your connected client uses its chosen model to interpret requests, call the right tools, and explain the SEC evidence. The setup steps below show claude.ai as one example; use your client's remote MCP setup if you use a different host.

Connect with OAuth (recommended)

Add https://edgarstack.com/mcp as a custom connector. When prompted, sign in by pasting your existing EdgarStack API key on the EdgarStack authorize page.

Alternative: key in the connector URL

Your API key can also be placed in the connector URL — no separate auth step. Lost your key? Request a replacement.

  • claude.ai → Settings → Connectors (or Organization Settings → Connectors for Team/Enterprise)

  • Click + Add custom connector

  • Name it "EdgarStack", paste https://edgarstack.com/mcp and sign in with your API key (or use the key URL alternative below)

  • Click Add — it should show a green "Connected" status

  • In any conversation: + → Connectors → toggle it on, then just ask

Your key arrives by email once your beta request is approved, in the form efm_live_xxxxxxxx…. Keep it private — it's tied to your account and works for OAuth sign-in, the key URL option, and your REST API header.

For the alternative key URL method, use https://edgarstack.com/mcp/.

REST API

Same underlying data, same auth backend, plain HTTP for anything that doesn't speak MCP — scripts, dashboards, notebooks.

curl https://edgarstack.com/api/v1/financials/AAPL \
  -H "X-API-Key: efm_live_yourkeyhere"

All requests need the X-API-Key header. There's no separate REST-only key — the same key from your signup email works everywhere.

Endpoints

| Method | Path | Notes

| GET | /api/v1/companies/:ticker | Ticker → CIK + registered name

| GET | /api/v1/financials/:ticker | ?period=annual|quarterly|ttm&metrics=revenue,netIncome&limit=8. The response includes filings, which maps each accessionNumber to its SEC filing page.

| GET | /api/v1/ratios/:ticker | ?period=annual|quarterly&limit=5

| POST | /api/v1/peer-compare | Body: { tickers: [...], metrics: [...], period } — compare up to 6 metrics, aligned by period end and ranked; the legacy single metric field is also accepted

| GET | /api/v1/filings/:ticker | ?formType=10-K|10-Q|8-K&limit=4

| POST | /api/v1/filing-section | Body: { ticker, accessionNumber, primaryDocument, formType, itemNumber }

| GET | /api/v1/diff/:ticker | ?item=1A&formType=10-K — server-side diff of the same Item across the latest two filings (or pass oldAccessionNumber / newAccessionNumber). Compares the full section text and returns modified, added and removed sentences.

| POST | /api/v1/diff | Body: { oldText, newText }

| GET | /api/v1/companies?q=apple | Search company names and tickers

| GET | /api/v1/search | ?q=...&forms=10-K,10-Q&dateFrom=2026-01-01&dateTo=2026-06-01&limit=10&offset=0; Boolean keyword search (unquoted terms are ANDed, double quotes request an exact phrase), with SEC excerpts, one result per filing, and nextOffset pagination

| GET/POST/DELETE | /api/v1/watchlist | Manage up to 10 companies for a database-backed customer

| GET | /api/v1/alerts?limit=20 | Recent alert delivery history for the current customer

| GET | /api/v1/screen | ?metric=rdExpense&year=2024&min=1000000000&sort=desc&limit=20 — screen all SEC filers by one metric, no tickers required

| GET | /api/v1/screen-ratio | ?ratio=rdIntensity&year=2024&min=0.1&sort=desc&limit=20 — screen all SEC filers by a computed ratio (or ?numerator=...&denominator=... for a custom pairing)

| GET | /api/v1/valuation/:ticker | ?period=annual|quarterly — P/E, P/S, P/B, EV/Revenue, EV/EBITDA, market cap, enterprise value

| GET | /api/v1/model/:ticker | ?limit=5&includeValuation=true|false — downloads a formula-driven .xlsx financial model. Annual periods only.

| GET | /api/v1/insider-activity/:ticker | ?limit=20 — recent Form 3/4/5 transactions: who traded, when, how much, and at what price

| GET | /api/v1/off-balance-sheet/:ticker | ?sectionId=&offset= — latest 10-K only: off-balance-sheet figures the company tags in XBRL, with prior year and accession; the matching notes and MD&A liquidity section with key quotes; and an 18-category checklist. Pass a returned sectionId (and offset) to read that section's full text.

financials, ratios, and peer-compare support 39 metrics in total: revenue, grossProfit, operatingIncome, netIncome, epsBasic, epsDiluted, totalAssets, currentAssets, totalLiabilities, currentLiabilities, longTermDebt, totalEquity, cashAndEquivalents, operatingCashFlow, capex, rdExpense, sharesOutstanding, dividendsPerShare, dividendsPaid, stockBasedCompensation, deferredRevenue, goodwill, intangibleAssets, depreciationAmortization, costOfGoodsSold, sellingGeneralAndAdministrative, interestExpense, otherNonoperatingIncomeExpense, pretaxIncome, incomeTaxExpense, shortTermInvestments, weightedAverageDilutedShares, shareRepurchases, accountsReceivable, inventory, accountsPayable, propertyPlantAndEquipment, investingCashFlow, and financingCashFlow.

ratios also computes working-capital metrics from the balance sheet fields above: days sales outstanding, days inventory outstanding, days payable outstanding, and the cash conversion cycle (DSO + DIO - DPO).

/api/v1/screen uses SEC's XBRL Frames API, which indexes by one exact tag per period — a filer reporting the same concept under a different synonym tag for that period won't show up in results. Not every metric above is screenable this way; the ones that are: revenue, grossProfit, operatingIncome, netIncome, epsBasic, epsDiluted, totalAssets, currentAssets, totalLiabilities, currentLiabilities, longTermDebt, totalEquity, cashAndEquivalents, operatingCashFlow, capex, rdExpense.

/api/v1/valuation combines a live spot price (via Finnhub — not SEC data) with the most recently reported period's fundamentals. It's a point-in-time multiple, not a trailing-twelve-month calculation. Market quotes run about 20 minutes delayed — treat the price as indicative, not execution-grade.

/api/v1/model generates Readme, Source Data, Standardized Data, Assumptions, Historical Model, Forecast, Dashboard, and Audit Flags tabs (plus Valuation if requested) from live SEC data — annual periods only, since quarterly data has a structural Q4 gap (see the note under build_financial_model below).

/api/v1/insider-activity covers Forms 3, 4, and 5 only — officer/director/10%-owner trades in their own company's stock. It does not cover institutional 13F holdings or >5% beneficial ownership filings (13D/13G).

/api/v1/off-balance-sheet covers US 10-K filers and reads the latest 10-K only. It reports what the company discloses — XBRL-tagged figures and note text — and does not compute adjusted net debt or present values. Categories a company neither tags nor describes are marked not found.

/api/v1/screen-ratio presets: grossMargin, operatingMargin, netMargin, rdIntensity, capexIntensity, fcfMargin, currentRatio, debtToEquity, returnOnAssets, returnOnEquity, cashToAssets, assetTurnover — the same ratio definitions compute_ratios uses per-company, just ranked market-wide. Joins two (or three) separate XBRL frame queries by CIK, so a filer must report every underlying tag the ratio needs for the same period to show up at all.

Tools & sample prompts

The 29 MCP tools expose SEC financial data and filing research through your connected AI client. Some tools are MCP-only; see each tool's scope and limitations below. Sample prompts show the kind of request to try.

lookup_company

Resolve a ticker to its SEC CIK number and registered name — the starting point everything else builds on.

"What's Nvidia's SEC CIK number?"

get_financials

Standardized line items across periods, with source XBRL tags and accession numbers.

"Pull Costco's last 5 years of revenue, gross margin, and R&D spend."

compute_ratios

Margins, liquidity, leverage, returns, and working-capital ratios — computed from the data, not eyeballed off a PDF.

"What's Target's current ratio, debt-to-equity, and cash conversion cycle over the last 5 years?"

peer_compare

Compare 1–6 metrics across 2–15 tickers. Period ends align within 183 days for annual or 45 days for quarterly data. Results show each actual period end and descending competition ranks; missing values are left unranked.

"Compare revenue, netIncome, and operatingIncome across AAPL, MSFT, GOOGL, and META."

list_recent_filings

Recent 10-K / 10-Q / 8-K filings with accession numbers, ready to feed into the section and diff tools below.

"Show me Tesla's last 4 10-Q filings with their accession numbers."

get_filing_section

Extract one Item section's text — Risk Factors, MD&A, and more — straight out of a real filing.

"Pull the Risk Factors section from Amazon's most recent 10-K."

diff_filing_sections

Sentence-level diff between the same section in two filings — see exactly what management added or quietly dropped.

"What changed in Meta's Risk Factors between their last two 10-Ks?"

full_text_search

Search SEC filing text with Boolean keywords (unquoted terms are ANDed; double quotes request an exact phrase). Results include a source excerpt where available, deduplicate document hits to one matched document per filing, enforce exact date/form filters, and include pagination details.

"Which companies mentioned 'material weakness' in a 10-K filed in the last 6 months?"

screen_by_metric

Find companies across ALL SEC filers matching a threshold on one metric for a period — screen the market, don't just check tickers you already know.

"Find all SEC filers with R&D expense over $1 billion in fiscal year 2024."

get_valuation

P/E, P/S, P/B, EV/Revenue, EV/EBITDA — combines a live price with the latest SEC fundamentals.

"What's Microsoft's P/E, EV/EBITDA, and market cap right now?"

build_financial_model

A branded, formula-driven Excel model generated straight from SEC data — no manual assembly. Annual periods only (EdgarStack's quarterly data has a structural gap: Q4 is only ever embedded inside the 10-K, never filed as a standalone 10-Q). Your AI client will ask whether you want a Valuation tab before building, since that tab pulls a live price and is a point-in-time snapshot rather than pure historical data.

"Build me a financial model for AAPL using EdgarStack."

get_insider_activity

Recent Form 3/4/5 transactions — decoded transaction codes, a buy/sell summary, and who's behind each trade (officer, director, or 10%+ owner). Covers open-market trades, grants, and RSU/option exercises; doesn't cover 13F institutional holdings or 13D/13G beneficial-ownership filings.

"Has Apple's CEO or any other insider bought or sold shares recently?"

manage_watchlist

Follow up to 10 companies. Every weekday morning EdgarStack checks for new 10-K, 10-Q and 8-K filings and emails a digest: a link to each filing, what an 8-K is about, and which Risk Factors / MD&A sentences changed since the previous filing. Ask it to check now for an immediate digest. Needs a subscriber key.

"Add NVDA and AMD to my watchlist, then check it now."

screen_by_ratio

Rank ALL SEC filers by a computed ratio for a period — margins, returns, leverage, capital intensity — not just a single raw metric. Use a named preset or any custom numerator/denominator pairing from the screenable metric list.

"Which SEC filers have the highest R&D spend as a percentage of revenue, among companies with at least $1B in revenue?"

off_balance_sheet

Commitments and contingencies that sit outside the balance sheet, from the latest 10-K. Returns the figures the company tags in XBRL — purchase obligations, guarantees, supplier finance, letters of credit, loss contingencies, credit lines, remaining performance obligations and more — with the prior year and filing accession. It also finds the commitments, contingencies, leases and debt notes and the MD&A liquidity section, quotes the key sentences, and checks 18 categories, marking each as tagged, found in text, or not found. Input: ticker. To read a section's full text, pass the sectionId it returned, plus offset to page through a long section. US 10-K filers only; every figure cites its filing.

"What is Caterpillar committed to that isn't on its balance sheet?"

Some commitments appear only in the note text. Microsoft's FY2026 10-K discloses $329.1 billion of leases signed but not yet commenced in its leases note, not in its XBRL tags. Data from SEC EDGAR. Not financial advice.

analyze_financial_trends

Summarize annual or reported-quarterly SEC XBRL history with changes, guarded growth rates, filing provenance, and annual endpoint CAGR. Missing periods are not imputed; this is historical analysis, not a forecast.

"Show Apple's annual revenue and operating-income trends over the last 8 periods."

track_historical_fact_changes

Compare SEC observations for the same XBRL tag and exact reporting period. Changed values include filing dates and accessions. A change may reflect an amendment or reclassification; it does not establish a formal restatement.

"Show changed reported revenue and net income facts for Microsoft."

analyze_financial_anomalies

Flag unusually large latest growth changes against the company's own history when enough comparable observations exist. These are prompts to review filings, not findings or financial advice.

"Check NVIDIA's annual revenue and operating-income growth for unusual changes."

analyze_capital_allocation

Summarize reported operating cash flow, capex, dividends, repurchases, and shares by annual or TTM period. Missing inputs remain unavailable; the tool does not judge management decisions.

"Summarize Apple's capital allocation over the last five annual periods."

analyze_earnings_quality

Calculate SEC-based accrual, cash-conversion, working-capital-days, and revenue-versus-receivables indicators. Industry, seasonality, acquisitions, and reporting changes can affect the signals.

"Review Microsoft's earnings-quality indicators and explain their methodology."

assess_financial_data_quality

Review SEC XBRL coverage, stale line flags, accession provenance, and period alignment. Missing facts remain unavailable rather than zero; the output does not determine accounting correctness.

"Audit the coverage and source provenance of Tesla's latest annual financial metrics."

reconcile_financial_statements

Compare mapped total assets with liabilities plus equity for matching periods. The arithmetic residual and missing components are review signals, not proof of an accounting error.

"Show Apple's balance-sheet reconciliation for its last eight annual periods."

company_snapshot

Build a compact, source-aware view of TTM financials, ratios, earnings-quality indicators, valuation, filings, and insider transactions. Sections can be unavailable independently; valuation may need quote configuration.

"Build a sourced company snapshot for Costco and identify any unavailable sections."

filing_change_brief

Compare selected sections in recent 10-K or 10-Q filings and prioritize changed passages with deterministic heuristics. The ordering does not determine financial or legal materiality.

"Summarize the most relevant review passages changed in Microsoft's last two 10-Ks."

risk_factor_intelligence

Group changed Item 1A passages using a fixed keyword taxonomy. Passages can appear in several groups or remain unclassified; categories are search aids, not risk determinations.

"Compare the latest two 10-K Risk Factors sections for Boeing and group the changed passages."

mda_intelligence

Group changed MD&A passages by reported financial and operating themes. The keyword taxonomy can miss context and does not establish causality, forecast outcomes, or measure materiality.

"Compare Amazon's latest two 10-K MD&A sections and group the changed passages."

management_guidance_tracker

Find verbatim sentences in the latest 10-K or 10-Q MD&A that may contain guidance. Keyword candidates can be false positives and are not confirmed guidance.

"Find possible management guidance in Microsoft's latest 10-K MD&A."

compare_guidance_to_actuals

Compare explicit annual dollar revenue targets or ranges in 10-K MD&A with later SEC-reported annual revenue. The English-text heuristic excludes ambiguous, quarterly, and non-revenue guidance; verify every match in the source filing.

"Check whether Apple's explicit annual revenue guidance in its 10-K matched reported revenue for that year."

draft_company_results_article

Create an unpublished SEC-sourced research draft using reported financials, comparable periods, specified peers, and changed filing passages. It is a review packet, not a publishing workflow; verify the sources and analysis before use.

"Draft a review packet for Costco's latest 10-K and compare it with Walmart and Target."

Rate limits

Each API key can make up to 120 requests per minute across REST and MCP combined. The limit refills evenly, so short bursts are fine. When you go over it, the API returns 429 with a Retry-After header giving the seconds to wait, and the error message states the limit.

All customers share one queue to SEC EDGAR, which EdgarStack throttles to stay within the SEC's fair-access limits. Requests that need several filings, such as models and diffs, can take longer when the queue is busy. During the closed beta there is no availability promise; see the beta terms.

Status codes

Errors return JSON with an error message. Authentication errors also include a reason code, such as not_found or beta_ended.

| Code | Meaning

| 400 | Invalid request: a required parameter is missing, a metric or ratio name is unknown, or a value is out of range. The message names the problem and, where useful, the allowed values.

| 401 | Key not recognized: missing, unknown, or malformed

| 402 | Key recognized, but access has ended (beta ended, trial ended, cancelled, expired)

| 403 | Key is valid, but this feature is not included in its access, such as the research workspace for a lapsed key

| 404 | Not found: the ticker is not an SEC-reporting company, or the data the request needs (such as revenue history or a price quote) is not available

| 409 | Conflict, for example adding a ticker that is already on your watchlist

| 422 | The request is well formed but cannot be applied, for example a watchlist that is already full

| 429 | Rate limit exceeded. Wait for the number of seconds in the Retry-After header.

| 500 | Unexpected error, often a temporary problem reaching SEC EDGAR. Retry after a short wait; if it persists, contact us with the request.