Point-in-time SEC data · API and hosted MCP server

The market as it stood, every quarter since 2009.

Built for AI agents and backtests. Companies re-present their own history. Distill serves every value as filed, keyed to the accession it was read from, and screens the whole universe as it stood at any quarter-end from 2009. No lookahead, no survivorship, no restatement substituted in.

US filers · 10-K / 10-Q · point-in-time from 2009
foreign 20-F filers not yet covered
text-parsed filings FY1995–2009 on the Pro tier

Use Distill MCP with Claude, Codex, or any other MCP client.

recreated from a real session · mcp.distillmarkets.com

>

Screen for profitable, low-leverage companies buying back stock. Then check whether any of them have re-presented their reported history.

screen_universe(net_margin > 0.20, debt_to_ebitda < 2, net_dilution < 0)Free

37 match. Top 5 by net margin:

TickerNet marginDebt/EBITDANet dilution
INVA65.9%1.57x−0.75%
APP60.8%0.81x−0.51%
NVDA55.6%0.06x−0.71%
BYD45.0%1.95x−9.86%
VAL41.5%1.74x−2.54%
get_revisions× 5Analyst

All five at once:

CallRestated factsLast change
INVA8 of 4512017-02-28
APP15 of 2142026-02-19
NVDA5 of 6392022-03-18
BYD21 of 5202025-02-21
VAL15 of 4642023-02-21

BYD has the most restated facts, but 20 of its 21 were changed between 2014 and 2019. APP’s 15 all landed in one filing this February, and revenue is among them.

get_fact_versions("APP", concept="Revenue")Analyst

Revenue, as each filing stated it:

FYAs reportedFiledAccession
2025$5,481M2026-02-19…26-000010
2024$4,709M2025-02-27…25-000018
2024$3,224M2026-02-19…26-000010

Revenue for a closed year moved 31.5% between filings. Either the numbers were wrong, or what counts as revenue changed. Net income across the same two filings settles it.

get_fact_versions("APP", concept="NetIncome")Analyst

FY2024 net income, as each filing stated it:

FiledAccessionFY2024 net income
2025-02-27…25-000018$1,579,776,000
2026-02-19…26-000010$1,579,776,000

Identical to the dollar. Revenue moved 31.5%; net income did not move at all. The basis changed, the results did not.

So FY2025 growth has one like-for-like answer: 70.0%, both years from the same filing on the same basis. Dividing FY2025 as filed by FY2024 as first filed gives 16.4%, a number no single filing supports.

like-for-like · one filing
+70.0%
$5,481M / $3,224M · both …26-000010
mixed basis · two filings
+16.4%
$5,481M / $4,709M · …26-000010 over …25-000018

Every value above carries the EDGAR accession of the filing it was read from. Factual information only, not advice.

Auditable

As-filed figures carry their accession number. Follow it into EDGAR and check our work yourself.

Point-in-time

Screen the whole universe as it stood at any quarter-end since 2009. As-filed values under the identities in force then. Broad universe coverage from 2012 onward, as the XBRL mandate phased in.

Accountable

Refreshed nightly from EDGAR. Corrections are published, not patched quietly. Each correction says what was wrong, how many values changed, and the precision measured after.

2009
Point-in-time record begins
72/72
Audited XBRL facts exact
2017
13F ownership history begins
150
Calls a day on a free key
No lookahead

See exactly what was knowable on any date.

The SEC already gives away every filed vintage of one company's facts, free, keyed to the accession that filed them. It won't resolve a delisted or renamed ticker to what was filed under it, and it won't say which of a filer's several tags for one line item is the one you want: GE's 2017 10-K carries three separate tags for net income, $436M apart. CELG resolves through its 2019 delisting to the numbers filed at the time, so you can reconstruct the fundamentals an investor could actually have used, as originally filed, with no survivorship or restatement bias.

GET /api/v1/sec/fundamentals/CELG/as-of/2018-06-30
get_asof_fundamentals("CELG", "2018-06-30")
CELG · Celgene Corp · delisted 2019-12-02
Revenue  $13,003M  filed 2018-02-07
Net income  $2,940M  filed 2018-02-07
as-filed · no lookahead · every value accession-linked
Computed lenses

Forensic scores and the full-universe screen, from the same computed fields.

The Beneish and Sloan detectors run on every filer with their components exposed, so you see why a name flags. Financials and Real Estate return null, since the ratios these models rest on do not carry the same meaning on those balance sheets; so does any name whose prior year is not on file. The same fields drive the screener: margins, leverage, forensic scores, the Piotroski F-score, cash conversion, across the whole universe in one call.

Run the same screen as of a past quarter-end and every row carries its filed date, for US domestic filers, at any quarter-end back to 2009, with useful breadth from around 2012 as the XBRL mandate phased in. The FAQ below shows what the SEC’s own frames endpoint leaves out.

KHC · Beneish & Sloan detectorsFY2025
Beneish M-Score−2.87
Accruals ratio−0.13
Asset growth−7.4%
Net issuance−1.5%buyer
Gross profit / assets0.10
POST /api/v1/sec/screen · one company’s row
net_margin > 15% · debt/EBITDA < 2 · shrinking shares68 matches · top 5
TickerNet marginM-ScoreF
INVA65.9%5
APP60.8%−2.788
NVDA55.6%−2.084
BYD45.0%6
VAL41.5%−3.136
POST /api/v1/sec/screen · the whole universe
Institutional ownership

Which managers own it, and who just moved.

A 13F quarter fills in for about 45 days after quarter-end. Read it before that window closes and you catch a phantom collapse: an early read of 2026-06-30 showed Apple at $51.6 billion across 1,170 holders, against the prior quarter's completed $2,396.3 billion across 6,051. get_institutional_ownership returns the newest complete quarter by default, and says so. Every manager's several filing entities are rolled into one holder, Vanguard's among them. An unknown change is null, never zero, and new positions, adds and exits are tracked quarter by quarter.

GET /api/v1/sec/ownership/AAPL
AAPL · institutional holdersQ2 2026
ManagerSharesQoQ
Vanguard9 CIKs1,446.6M+0.7%
BlackRock1,163.0M+1.6%
State Street615.1M+2.1%
Geode Capital371.3M+0.7%
FMR325.3M+5.8%
6,085 holders · 200 new · 203 exited · filer-family grouped
One SEC layer

Seven datasets computed from SEC filings, joined across filers, filings and identities.

Revision forensics

GE: 132 changed of 532

Find out whether the number in your model is the one the company originally reported, both filings linked. Most flagged changes are not restatements, and the tool says so.

Fact version history

2009 → present

Follow one number across every filing that stated it, and cite the filing you actually used.

Financial health

~3,400 companies

Measure a company against its own past 20 quarters: margins, leverage, liquidity, coverage, returns.

Capital cycles

By sector

See which sectors are building capacity and which are starving it, from filed capital spend.

Insider activity

29 of 30 audited exact

See what officers and directors did with their own shares, parsed and attributed from the daily Form 4 stream.

Institutional ownership

AAPL: 6,085 holders

See who bought and who exited each quarter, with a manager’s many filing entities rolled into one holder.

Filings & events

Free tier

Catch a filing the day it lands, timestamped to the SEC accept.

Agent-native

Every capability is an MCP tool.

Point your agent at Distill and it reasons over point-in-time fundamentals, forensic scores, institutional ownership, and the universe screen directly. Fact history, as-of fundamentals and restatement detail return every value with the accession number of the filing it was read from, so an agent built on Distill can show its work. The tools also name the places this data misleads: a 13F quarter that has not finished filing, a share count that spans a split, a figure the filer tagged under a concept that means something narrower. An agent that reads them reports the artefact as an artefact.

# MCP config: Claude Code, Codex, Cursor,
# or any client. Hosted, nothing to install.
{ "mcpServers": { "distill": {
    "url": "https://mcp.distillmarkets.com",
    "headers": {"X-Api-Key": "dmk_…"} } } }

In claude.ai or Claude Desktop, add a connector at mcp.distillmarkets.com and sign in. Nothing to paste. Connectors →

Measured accuracy

Every data layer is audited against the filings it came from.

A cross-sectional join is only as good as the facts underneath it: one wrong value and the whole quarter’s answer is wrong. Independent readers re-derived each sampled value from the filing itself, with our parser output withheld. Each result below carries the sample it was measured on. The 2009-onward audits found zero value errors; the pre-XBRL layer states its measured rate, with the error catalogue published.

XBRL fundamentals

FY2010–2025 · 72 facts against the rendered statements

72 / 72 exact

Insider Form 4

30 transactions re-read from the filed XML, field by field; the one difference is ambiguous by design

29 / 30 exact, 0 errors

Pre-XBRL fundamentals

FY1995–2009 · 196 verified-tier facts re-derived from the filings

98.0% · 95% CI 94.9–99.2

Protocols and the error catalogue are on the methodology page. The per-cell comparison against EDGAR reruns at least weekly on the benchmark.

Pricing

What each tier adds.

Free reaches most datasets at limited depth, including as-of fundamentals for one name up to 10 lookups a day. Analyst adds per-number verification and removes that daily cap. Pro adds the universe as of any quarter-end since 2009, the panel export, and deep history to FY1995, for $69 a month.

Free
$0

150 requests a day

 

The screener, verified fundamentals, insider filings, and the five largest 13F holders per ticker.

Data

  • Universe screener: clean equity universe, raw and ratio metrics (margins, leverage, R&D, capex, buybacks)
  • SEC fundamentals, EDGAR-verified
  • Insider transactions (Form 4)
  • Institutional ownership (13F): the 5 largest holders per ticker
  • Blockholders (Schedule 13D/G): the 5 largest 5%+ filers per ticker
  • Manager portfolios (13F): whole-book totals plus the 5 largest positions
  • Valuation from your own price (BYO)
  • Restatement counts per ticker
  • 16 government-sourced macro indicators
  • Material events from SEC filings
  • Accuracy benchmark & MCP access
  • As-of fundamentals for one ticker: no lookahead, as then reported, any date from 2009, annual or quarterly basis — 10 point-in-time lookups a day

Limits

  • 20 requests a minute
  • Single-ticker briefing 15 calls a day; change feed 20; as-of fundamentals 10
Analyst
$29/mo

2,000 requests a day

$19/mo for your first 6 months with code WELCOME10, through September 30.

Per-company depth: fiscal-year history, fact versions and restatements, 13F to the top 20, and as-of fundamentals for one name.

Data

  • Everything in Free
  • Screener forensic scores: Piotroski F-score, Altman Z″, Beneish M-Score (5-variable), accruals ratio, filterable in the screener
  • Financial health and quality lenses, per company

Depth

  • Fundamentals history: up to 20 fiscal years, plus raw XBRL facts
  • Restatement detail & filing version timeline, annual or quarterly basis
  • 13F ownership depth: top 20 holders, position changes & quarterly history
  • Blockholders in full: every 5%+ filer, activist 13D or passive 13G, as filed
  • Manager portfolios in full: stored book, position weights, and which managers opened or cut a ticker
  • Unlimited single-name point-in-time: as-of fundamentals for one ticker with no daily cap (Free is capped at 10 lookups a day)

Limits

  • 30 requests a minute
ProFor backtests
$69/mo

15,000 requests a day

 

The universe as of any quarter-end since 2009, at full breadth from 2012, the panel export, and text-parsed history to FY1995.

Data

  • Everything in Analyst
  • Delisted issuers in the universe, CIK-keyed, with Form 25/15 dates

Depth

  • Deep history: text-parsed fundamentals to FY1995, verified tier, provenance on every row
  • Point-in-time screening at every quarter-end from 2009-06-30, survivorship-free, equity-only; the universe scales from a handful of filers in 2009 to full coverage by 2012
  • Bulk panel export: the full point-in-time universe as one CSV, for backtesting

Limits

  • 60 requests a minute
Questions

Sources, checks, limits, and what you may do with it.

Where does the data come from?

Filings we ingest from SEC EDGAR ourselves: XBRL financial facts, Form 13F holdings, and Form 4 insider transactions. Fact history, as-of fundamentals and restatement detail carry the accession number of the filing each value was read from.

How do you know the numbers are right?

Two checks, both published. A benchmark run compares the fundamentals we report against EDGAR’s companyfacts API cell by cell, matching on the same XBRL concept we picked; it refreshes at least weekly and publishes its methodology version and every cell that differs. Separately, independent readers re-derive sampled values from the filings themselves with our output withheld: 72 of 72 XBRL facts exact (n=72), 29 of 30 insider transactions exact (n=30). See the benchmark →

What does a free key include?

The universe screener, EDGAR-verified SEC fundamentals, Form 4 insider transactions, the five largest 13F holders and the five largest 5%+ blockholders per ticker, manager portfolios with whole-book totals and their five largest positions, valuation from your own price, restatement counts per ticker, 16 government-sourced macro indicators, material events from SEC filings, and the accuracy benchmark. All of it over MCP as well as HTTP. 150 requests a day, no card.

What do the ten free point-in-time lookups actually let me do?

Check one company at a time: its SEC fundamentals as they stood on a past date, set beside what is on file today, so you can see what later got restated and what the market actually saw. Any date since 2009, annual or quarterly basis, ten lookups a day per account. Analyst removes the daily cap but it is still one name at a time. What it does not do is a study across many companies, or a screen of the whole universe as of a past date. That is the Pro point-in-time grid: the full equity universe at every quarter-end since 2009, survivorship-free, exportable as one CSV. Try a lookup →

Can an agent use this directly?

Every capability is an MCP tool on the hosted server at mcp.distillmarkets.com. Point an agent at the URL with your key and it calls screen_universe, get_revisions and the rest by name. In claude.ai or Claude Desktop, add it as a connector and sign in; no key to paste. Read the docs →

Why not just use EDGAR directly?

You can, and every value here is derived from those same filings. EDGAR gives a lot away for free: its companyconcept endpoint returns every filed vintage of one company’s facts, keyed to its accession. What it does not give you is the cross-sectional version of that question. Its frames endpoint, the only free way to ask something across the whole market for a period, returns one value per company with no filed date attached: asked for CY2017 net income, it hands back GE’s number from a filing made in 2020, and nothing in the response says so. screen_universe answers the same kind of question for US domestic filers, as of a quarter-end, with the filed date on every row. Concept mapping across a filer’s own several tags for one line item, identity across a rename or delisting, and 13F and Form 4 parsed and attributed, are also work EDGAR leaves to you. Our benchmark compares our output back against EDGAR’s own companyfacts API cell by cell, so you can inspect that reconciliation yourself.

What happens when I hit the limit?

A 429 with a Retry-After header and a code naming which limit you reached: rate_limit_per_minute, rate_limit_daily, or subquota_exceeded for a per-endpoint budget (the briefing composite is 15/day on Free, the delta feed is 20/day). Authenticated responses carry X-RateLimit-Limit, Remaining and Reset for the request-level budgets, so an agent can pace itself against those before it gets there. The per-endpoint budgets carry no pacing header: the 429 itself is the first signal, and its Retry-After can run to the next UTC midnight. Quotas count per account rather than per key: holding more keys does not add budget.

Can I use this commercially?

The personal tiers cover your own research. Managing client capital, or putting outputs into a product you ship to your own users, runs under a commercial grant at $249 a month: one legal entity and its wholly-owned subsidiaries, up to five named users. Redistributing the data itself is a negotiated agreement rather than a plan. See the grants →

Free key

Check the source yourself.

A free key gets you SEC fundamentals, the full-universe screener, the largest 13F holders, and the MCP server, every value keyed to the filing it came from. No card.