Filings Desk

SEC filings, read properly

Every SEC filing, and what changed since the last one.

Pull a company’s filing history, its financials with the tag that actually answered, and a paragraph-by-paragraph comparison of this year’s risk factors against last year’s — what was added, what was removed, and where the language moved. Both source filings linked, every time.

No subscription — pay in Ounie creditsData from EDGAR. Nothing else.

FY 2024ITEM 1AFY 2025ITEM 1A1 added1 reworded1 removed3 CHANGES · ITEM 1A · YEAR OVER YEAR

Filings Desk reports what a company filed and how the language changed. It is not investment advice and it is not a recommendation.

It is a reading tool. It tells you what a company put in writing and how the writing changed — and it returns that line as a field in every response, so an agent passing the result along carries it too.

One · the index

Everything a company has ever filed.

Ticker or CIK in, filings out, newest first — form type, filing date, period, the 8-K item numbers, and a direct link to the document itself. Filter by form or by date window.

EDGAR’s recent block stops at about a thousand filings, and older ones live in separate overflow documents. When those were not fetched the response says so, in a field of its own — so “nothing before 2015” is never mistaken for a fact about the company.

3 credits · a filter that matches nothing refunds in full

AAPL · Apple Inc.CIK 0000320193
  • 10-K2025-10-31FY ending 2025-09-27
  • 8-K2025-10-30Items 2.02, 9.01
  • 10-Q2025-08-01Q3 2025
  • DEF 14A2025-01-10Proxy statement

Filter by any EDGAR form type. Common ones: 10-K · 10-Q · 8-K · 20-F · 40-F · S-1

METRIC: REVENUERevenueFromContract…117 points · through FY2025Revenues11 points · stops at FY2018SalesRevenueNet404 · not taggedtag: RevenueFromContract… — named in the response

Two · the figures

Financials, and the tag they came from.

Annual figures read straight out of a company’s own XBRL: revenue, net income, operating income, total assets, operating cash flow, and more. Each point carries the fiscal year, the period end, and the accession number of the filing it was taken from.

There is no universal tag for revenue. JPMorgan does not carry the one Apple uses; Apple carries the one JPMorgan uses, but stopped populating it in 2018. So every candidate is queried, the one with the most recent annual coverage wins, and the response names it. A metric a company does not tag comes back by name under notTagged — never as a zero.

5 credits · nothing tagged means nothing charged

Three · the comparison

What did they start worrying about this year?

A 10-K’s risk factors run to a hundred thousand characters and almost all of it is last year’s text. The comparison finds the part that is not.

LAST YEARTHIS YEARmatched by similarity — one pair crosses, because filings get re-ordered
Added

A paragraph with no counterpart in last year's filing. New risk language, in full, as filed.

Removed

A paragraph that was there last year and is not there now. Companies drop risks quietly; this is where you see it.

Reworded

The same paragraph, rewritten. You get both versions side by side, plus how far apart they are.

“Softened” is a measurement, not a verdict.

When a paragraph is reworded we count hedging words — may, could, generally — against severity words — material, adverse, significant — per hundred words, and report which way the density moved. That is all it means. Whether a company meant something less seriously this year is a judgement no function can make, and this one does not pretend to.

12 credits · a section we cannot extract is refunded, never guessed at

For developers & AI agents

Three ways in. The same filings behind all of them.

An index costs 3 credits, a fact bundle 5, a comparison 12. A key can never overdraw — a call that cannot be covered is refused with a 402 that names the shortfall, before anything runs.

REST

One key, every endpoint the dashboard uses. A bad key returns 401 — never a redirect an agent cannot follow.

curl -X POST https://filings.ounie.com/api/diff \
  -H "Authorization: Bearer flg_live_…" \
  -H "Content-Type: application/json" \
  -d '{"ticker":"AAPL","section":"risk_factors"}'

MCP

Streamable HTTP at /api/mcp (legacy SSE at /api/sse). Works with Claude, Cursor, ChatGPT and the Ounie AI Team — which cannot set headers, so the key rides the URL.

Endpoint  https://filings.ounie.com/api/mcp   (legacy SSE: /api/sse)
Auth      Authorization: Bearer flg_live_…
          …or https://filings.ounie.com/api/mcp?api_key=flg_live_…

Tools     list_filings · get_financial_facts · diff_filing_section
          get_run · list_runs · get_coverage · get_pricing
          get_credit_balance · whoami

x402 — no account

Pay per call in USDC on Base. POST a verb, get a 402 with terms, sign, retry. The price is computed from your payload, and a call that produced nothing is never settled.

POST https://filings.ounie.com/api/x402/filings
{"verb":"facts","ticker":"TSLA","metrics":["revenue"]}

→ 402  {"x402Version":1,"accepts":[{…"network":"base"…}]}
→ retry with X-Payment: <signed>
→ 200  {"payment":{"tx_hash":"0x…"},"series":[…]}

The credit math

You pay for an answer, not for an attempt.

Credits are reserved when a call starts and settled only if it produced something. A comparison whose section could not be extracted, a fact bundle where nothing was tagged, a filter that matched no filing — all refund in full, pool by pool, exactly as they were reserved.

YOUR WALLETcredits222222SETTLED12 credits

12 credits reserved while the comparison runs.

3 credits

Filings index

$0.03 per call

5 credits

XBRL facts

$0.05 per call

12 credits

Risk diff

$0.12 per call

Questions

The awkward ones first.

Is this investment advice?

No. Filings Desk reports what a company filed and how the wording changed between two filings. It does not rate a company, forecast anything, or suggest what to do about it. Every response carries that line as a field, not as fine print.

Where does the data come from?

The SEC's own EDGAR service, and nowhere else. The filings index is EDGAR's submissions API, the figures are its XBRL company-concept API, and the comparison reads the filing documents themselves. Every figure carries the accession number it came from, and every comparison carries both source URLs so you can open the originals.

How do you find the risk factors section inside a 400,000-character filing?

By the widest gap. For every “Item 1B. Unresolved Staff Comments” heading we take the last “Item 1A. Risk Factors” before it, and keep the pair furthest apart. That sounds fussy until you look at real filings: the first match is almost always the table of contents, and Crocs has twelve “Item 1A” occurrences with its last one falling after its last Item 1B, so “take the last” finds nothing at all. The widest-gap rule got the section right on every filing we tested it against.

What if the section isn't there?

You are told, and you are not charged. Smaller reporting companies are permitted to omit risk factors entirely, and some filers put MD&A in an exhibit and incorporate it by reference — JPMorgan's Item 7 extracts to 363 characters of cross-reference. Both come back as an explicit reason. We also check that the extracted text reads like the section it claims to be, and refuse it if it does not: a diff of the wrong section would be fluent, confident and wrong, which is worse than no diff.

Does a language model do the comparison?

No. The comparison is arithmetic — paragraphs are turned into word-bigram sets and matched by similarity, so a re-paginated filing does not read as rewritten. A model only writes the closing summary, and it is shown the comparison's output rather than the filings, so it cannot introduce a change that is not there. You can turn it off entirely with summary: false.

What does “softened” mean?

Exactly one thing: hedging words went up relative to severity words. It counts terms like may, could and generally against material, adverse and significant, per hundred words, and reports which way the density moved. It is a measurement of the wording, never a judgement about what the company meant — and the response says so in a field of its own.

Why do you name the XBRL tag?

Because there is no universal one, and pretending otherwise returns the wrong number. JPMorgan does not tag RevenueFromContractWithCustomerExcludingAssessedTax at all; Apple does, and also carries Revenues — which stops at FY2018. A first-match design would report Apple's 2018 revenue as current. We query every candidate, keep the one with the most recent annual coverage, and tell you which one answered.

What if a company doesn't tag a metric at all?

It comes back under notTagged, by name. It never comes back as a zero, and it never comes back as silence. If none of the metrics you asked for are tagged, the call refunds in full — you learned nothing, so you pay nothing.

What does a call cost?

3 Ounie credits for a filings index, 5 for a fact bundle, 12 for a comparison — $0.12 in plain money for the expensive one, from the same wallet as every other Ounie app. No subscription, no minimum. Reading, listing and exporting work you have already paid for is free forever.

Is a diff with no changes still billed?

Yes, and it should be. “The risk language did not move this year” is a real finding and often the one you were checking for. What is never billed is a call that could not produce the comparison at all — that refunds in full, pool by pool, exactly as it was reserved.

Can an agent use this without an Ounie account?

Yes. The x402 endpoint takes USDC on Base with no account and no key. It verifies your signature, runs the work, and settles only once there is a real artifact — an on-chain settlement is final, so a non-answer is refused before the money moves rather than refunded after.

Why can't I compare two 10-Qs?

Because a 10-Q carries an abbreviated “material changes to our risk factors” item, not the full annual set. Comparing one against an annual filing would compare two different kinds of document and report the difference in format as a difference in substance. It is not offered rather than offered with a caveat nobody reads.

Open a company’s file.

One ticker is enough to start. Filings Desk runs on the same Ounie credits as every other Ounie app — no subscription, no minimum, and nothing charged for a call that came back empty.