Skip to main content
FR-API · OAS 3.1

A unified API for public-company filings.

Coverage across G20 markets and Europe. One endpoint per concept. Tiered access from free metadata to AI-ready Markdown to standardized financial line items. Built on the same dataset that powers financialreports.eu.

Base URLapi.financialreports.eu
AuthX-API-Key · Bearer JWT
FormatJSON · Markdown
OpenAPI3.1
StatusOperational
01 · Quickstart

Your first request, in under a minute.

Every account starts on Standard Access (Level 1). Sign in, copy your key, and run a request — no card required for the metadata tier.

1

Get an API key

From your API dashboard → API keys. Each key is scoped to a project and can be revoked at any time.

2

Authenticate every request

Send your key in the X-API-Key header. Never put it in URLs or commit it to a repo.

3

Make a request

Hit https://api.financialreports.eu/filings/ to list the latest filings across every supported source.

4

Watch your headers

Every response includes X-RateLimit-Burst-Limit and X-RateLimit-Burst-Remaining. Honor them.

terminal · cURL
# List the 50 most recent filings
curl "https://api.financialreports.eu/filings/?page_size=50" \
  -H "X-API-Key: $FR_API_KEY" \
  -H "Accept: application/json"

# Response (truncated)
{
  "count": 182441,
  "next": "https://api.financialreports.eu/filings/?page=2",
  "results": [
    {
      "id": 32549034,
      "title": "Airbus SE — Annual Report 2025",
      "release_datetime": "2026-04-30T07:14:22Z",
      "company": { "id": 1234, "name": "Airbus SE" },
      "filing_type": { "code": "10-K", "name": "Annual report" },
      "processing_status": "COMPLETED",
      "document_url": "https://cdn.financialreports.eu/...",
      "markdown_url": "https://api.financialreports.eu/filings/32549034/markdown/"
    }
  ]
}
02 · Access levels

Three tiers, one API surface.

Every endpoint declares the minimum tier it requires. Upgrade by changing your plan — your key stays the same. Tier badges appear on every reference page.

Level 1

Standard Access

Raw filings metadata, company profiles, and reference data. Available on the free tier.

  • PDF/XBRL metadata & URLs
  • Company profiles, ISINs
  • ISIC industry classification
  • Point-in-time audit trails
  • Reference data (countries, languages, sources)
Level 2

Processed Filings

Everything in L1, plus AI-ready content. The fastest way to feed filings into a RAG pipeline.

  • Markdown & clean JSON output
  • Full-text search across filings
  • Section-level structure
  • Webhook notifications on new filings
Level 3

Financial KPIs

Everything in L2, plus standardized financial line items extracted per filing. For analytics, screeners, and quant pipelines.

  • Standardized financial line items
  • Income statement, balance sheet, cash-flow statement
  • Per fiscal year and period (FY, Q1–Q4, H1, H2)
  • Mapped to a single reusable taxonomy across jurisdictions
03 · Resources

The API surface, one card per resource.

Every concept maps to a noun. Most are read-only, paginated, and filterable; the Watchlist and Webhook resources also accept writes.

Filings 4 endpoints

List, retrieve, view audit trail, and fetch Markdown for any filing in the database.

GET /filings/GET /filings/{id}/markdown/
Companies 4 endpoints

Company profiles, financial statements, and predicted next annual report date.

GET /companies/GET /companies/{id}/financials/
ISINs 2 endpoints

Resolve any ISIN to its underlying company. Useful for linking external portfolio data.

GET /isins/GET /isins/{code}/
Watchlist 5 endpoints

Programmatically manage the user's watchlist. Supports bulk add and remove.

GET /watchlist/POST /watchlist/companies/bulk-add/
Webhooks 11 endpoints

CRUD for subscriptions, plus delivery logs, replays, and signing-secret rotation.

POST /webhooks/GET /webhooks/{id}/deliveries/
Financial data 2 endpoints

The line-item dictionary used to standardize KPIs across all jurisdictions and accounting standards.

GET /line-item-definitions/
ISIC 8 endpoints

Browse the four-level ISIC industrial classification: sections, divisions, groups, classes.

GET /isic-sections/GET /isic-classes/
Filing types 2 endpoints

All supported filing types: annual reports, half-year reports, ad-hoc disclosures, and more.

GET /filing-types/
Filing categories 2 endpoints

Standardized FRCF disclosure categories used to classify every filing.

GET /filing-categories/
Sources 2 endpoints

Original publishers — exchanges, regulators, and direct issuer feeds.

GET /sources/
Countries 2 endpoints

Reference list of supported jurisdictions, with ISO codes and currency mapping.

GET /countries/
Languages 2 endpoints

Supported reporting languages, with ISO 639-1 codes used across the API.

GET /languages/
04 · Authentication & limits

One header, two limits.

Authenticate with X-API-Key on every request. Two complementary rate limits prevent both bursts and overuse. Browser sessions and Cognito Bearer tokens are also accepted on the dashboard surface.

Burst limit · per minute
5 req / min

Short-term throttle. Hit it and you'll see 429 with a Retry-After header.

Daily quota · plan-based
100 req / day · free tier

Resets at 00:00 UTC. Higher tiers raise both limits. See plans →

response headers
HTTP/1.1 200 OK
Content-Type: application/json
X-RateLimit-Burst-Limit: 5
X-RateLimit-Burst-Remaining: 4
X-Request-Id: req_01HGZ3K7N9P0QR4S5T6V7W8X9Y
05 · SDKs & tools

OpenAPI-first. Generate any client.

The full API is described as an OpenAPI 3.1 schema. Use it directly with any code-generation toolchain, or import the spec into Postman, Insomnia, or your IDE.

cURL
curl -H "X-API-Key: $KEY" https://api.financialreports.eu/filings/
Any shell
OpenAPI schema
curl /api/schema/ > openapi.json
OAS 3.1JSON
In-house reference
/developers/reference/
Live · in design systemSchema-driven
Postman / Insomnia
Import /api/schema/ as collection
Any API clientOAS 3.1
06 · Webhooks

Don't poll. Subscribe.

Two events cover the full filing lifecycle. Each delivery is signed with HMAC-SHA256, retried with exponential back-off, and queryable via the delivery log.

POST filing.received

Fired the moment a new filing is detected at the source — before processing. Lets you display "received, processing…" UI immediately.

L1~<30s after publish
POST filing.processed

Fired once a filing is converted to Markdown / JSON and indexed for search. Includes section structure and extracted KPIs (L3).

L2~2–6 min
i

Idempotency. Every webhook delivery includes X-FR-Delivery-Id and X-FR-Idempotency-Key. Use the latter to deduplicate — replays carry the same key as the original.