Skip to main content
FR / Data · NLP-ready

Financial filings, NLP-ready.

Regulatory filings from 50+ markets, converted from raw PDF into clean, structured Markdown - the format NLP and LLM pipelines actually want. Same schema across every market, every figure traceable to its source, delivered by API, webhook or bulk.

29M
Filings as Markdown
69K
Listed companies
50+
Markets, one schema
~70%
Fewer tokens vs PDF
The problem

A 412-page PDF is not a context window.

Regulatory disclosures ship as PDFs built for print - multi-column layouts, scanned tables, footnotes detached from the numbers they annotate, a dozen languages. Feed that to a model and your NLP runs on whatever survived extraction. We do the extraction once, cleanly, so you don't have to.

What the regulator publishesPDF · 412 pp · 8.4 MB
adidas AGAnnual Report 2025
Consolidated Financial Statements
€ m20252024
Revenue23,68322,506
Cost of sales(11,368)(10,921)
Gross profit12,31511,585
Royalty income¹²642617
247 / 412© adidas AG 2025
two-column layout,
flattened on extraction
tables split
across pages
footnote ¹² unresolved
What your model readsMarkdown · ~3,200 tokens · 71 % smaller
adidas-ag-annual-2025.mdGET /filings/49043617/md
# Adidas AG - Annual 2025

## Consolidated income statement

| Item            | 2025    | 2024    |
|-----------------|---------|---------|
| Revenue         | 23,683  | 22,506  |
| Cost of sales   | (11,368)| (10,921)|
| **Gross profit**| 12,315  | 11,585  |

[footnote 12: see note 4 on
revenue recognition]

Illustrative example - figures are not actual company data.

Why it matters

Clean text is the hard part of financial NLP.

Most of the effort in a financial-NLP project never touches the model - it goes into wrangling documents. Annual reports run to hundreds of pages of multi-column, print-oriented PDF; interim and ad-hoc filings arrive in a dozen languages and a hundred house styles. Naive PDF extraction flattens two-column layouts into scrambled text, splits tables across page breaks, and detaches footnotes from the numbers they qualify. Whatever your model sees downstream is only as good as that first, brittle conversion step.

We do that step once, for every filing, and do it well. Each document is parsed into clean, GitHub-flavored Markdown that keeps headings, tables and footnotes intact and drops the running headers, page numbers and layout noise a model doesn't need. The result is compact - a 412-page report becomes roughly 3,200 tokens - and structurally faithful, so retrieval, chunking and citation all behave the way they should.

Because every market runs through the same pipeline into the same schema, a Frankfurt annual report and a Tokyo earnings release come out shaped identically. You write your extraction, sentiment or topic-modeling logic once and run it across 50+ markets instead of maintaining a bespoke parser per regulator - and because the original-language text and the source PDF travel alongside the Markdown, every result stays auditable back to the primary document.

What "NLP-ready" means here

Four things a legacy data feed can't give you.

01

Clean structured Markdown

Millions of unstructured PDFs converted to GitHub-flavored Markdown - headings, tables and footnotes preserved. The same text rendered on our public pages, one endpoint away.

02

Multi-lingual, one pipeline

50+ markets normalised into a single schema. Original-language text preserved, with an English rendering where available, so one NLP workflow runs unchanged across every jurisdiction.

03

As-filed & point-in-time

We deliver the source text as filed - not a pre-adjusted, non-auditable number. Every figure is traceable to its source page, so models train on evidence, not a black box.

04

API, webhook or bulk

Pull on demand via one API keyed by ISO country code, subscribe to new filings by webhook (~60s latency), or license the full corpus over S3, Snowflake and Databricks.

What teams build with it

Purpose-built for text at scale.

Quant funds, analytics platforms and academic groups use the Markdown feed as the ingestion layer for their own models.

Sentiment & tone analysis Topic modeling LLM / RAG context ingestion Named-entity & relationship extraction Event studies & disclosure timing Search & semantic indexing Change-over-time / redline analysis
Formats & access

Three views of every filing.

  • MarkdownThe NLP-ready body - clean, structured, LLM-friendly. One endpoint per filing.
  • JSONStructured metadata - company, filing type, dates, language, identifiers - for filtering and joins.
  • PDFThe original source document, preserved for citation and audit.
  • BulkThe full corpus over S3, Snowflake and Databricks for training and backfills.
One API, one header
# Latest filings for a market, as Markdown
curl "https://api.financialreports.eu/api/filings/?countries=DE" \
    -H "x-api-key: $FR_API_KEY"

# Fetch the NLP-ready body for one filing
curl "https://api.financialreports.eu/api/filings/{id}/markdown/" \
    -H "x-api-key: $FR_API_KEY"

The web product - search, browse, single-filing read - is free. Programmatic access is a paid plan; the same key works across every market.

FAQ

NLP-ready financial data, answered.

What is "NLP-ready" financial data?
Filings delivered as clean, structured, machine-readable text - Markdown, in our case - rather than layout-bound PDFs. Tables, headings and footnotes are preserved, so the text can be fed directly into NLP and LLM pipelines without a separate PDF-to-text conversion step.
Is this the same as your Markdown output?
Yes. "NLP-ready" describes what the Markdown is for: the clean Markdown rendering of each filing is the format NLP and LLM workflows consume. It sits alongside JSON metadata and the original PDF.
Which markets and filing types are covered?
Annual, interim and ad-hoc disclosures from listed companies across 50+ markets. Browse the full coverage from the filings pages, by market and company.
Can I use it for LLM / RAG pipelines?
Yes - that's the primary use case. Clean Markdown is compact (a 412-page report becomes roughly 3,200 tokens) and keeps the document structure LLMs depend on for citation and retrieval.
How do I access it?
On demand via the API (one endpoint returns the Markdown body), by webhook for new filings, or in bulk over S3, Snowflake and Databricks. The web product is free; programmatic access is a paid plan.

Stop parsing PDFs. Start on clean text.

Point your NLP and LLM pipelines at filings that are already clean, structured and normalised across every market.