Six national registries

Connect your agent to Europe's private companies

Annual accounts, ownership and filing history for private companies, taken straight from the national registries that publish them. One schema, whatever the country.

Sourced from official registriesGDPR-compliantREST + OpenAPI

Sourced directly from official EU registries

UK Companies House
Belgium KBO
Czech Justice
Slovakia ORSR
Lithuania JADIS
Albania QKB
Registry search

Search across EU registries in one call

Search by name, registration number or VAT ID across every jurisdiction we ingest. You do not write a per-country integration; we normalise the fields before you see them.

Historical filings

Analyse years of statutory accounts

Annual accounts going back a decade or more, where the registry holds them that far. We parse revenue, EBITDA, net assets and the balance-sheet lines out of the filed PDFs and hand you JSON.

Document intelligence

Extract context from registry filings

The text of the documents themselves: director reports, auditor notes, articles of association. Chunked and indexed if you are feeding a retrieval pipeline.

Single source

One schema across every registry we cover

You stop maintaining a scraper per country. We ingest from six official national registries, map them to one schema, and refresh daily.

Data coverage

What you get from each registry

Each data type is normalised, schema-versioned, and documented with full field-level provenance back to the source filing.

Annual Accounts

P&L, balance sheet and cash flow, pulled from the statutory filing itself. Revenue, EBITDA, total assets, and the rest of the line items the filing carries.

P&LBalance SheetCash Flow

Beneficial Ownership

UBO registers and PSC data, where the registry publishes it. Ownership chains, shareholding percentages, director histories.

UBOPSCDirectors

Filing History

A dated index of what has been lodged with the registry: annual reports, confirmation statements, director changes.

DocumentsConfirmationChanges

Balance Sheets

Balance-sheet lines across years, mapped to one schema whatever the local accounting standard. Where a registry files under its own national rules, we map those too.

IFRSUK GAAPLocal GAAP
Developer experience

How you query it

RESTful JSON over HTTPS. One API key. Consistent schema across all jurisdictions. Full OpenAPI spec for codegen.

cURL
# Fetch 5 years of annual accounts for a German company
curl -X GET \
  "https://api.privatefinancials.eu/v1/companies/GB-08412996/financials" \
  -H "Authorization: Bearer pf_live_••••••••••••••••" \
  -H "Accept: application/json" \
  -d "years=5"
Python
import requests

client = requests.Session()
client.headers["Authorization"] = "Bearer pf_live_••••••••••••••••"

# Annual accounts: last 5 years
resp = client.get(
    "https://api.privatefinancials.eu/v1/companies/GB-08412996/financials",
    params={"years": 5},
)
data = resp.json()

for year in data["annual_accounts"]:
    print(
        f"{year['period_end']}  "
        f"Revenue: {year['revenue_eur']:>14,.0f} EUR  "
        f"EBITDA: {year['ebitda_eur']:>13,.0f} EUR"
    )
Response
{
  "company_id": "GB-08412996",
  "company_name": "Brightwater Ltd",
  "jurisdiction": "GB",
  "registry": "Companies House",
  "annual_accounts": [
    {
      "period_end": "2023-09-30",
      "revenue_eur": 77800000000,
      "ebitda_eur": 11200000000,
      "net_profit_eur": 4200000000,
      "total_assets_eur": 106000000000,
      "filing_date": "2024-02-15",
      "document_url": "https://api.privatefinancials.eu/v1/documents/..."
    }
  ]
}

OpenAPI 3.1 spec

Auto-generate client libraries in any language.

Consistent schema

Same field names and units regardless of source country.

Webhook updates

Get notified when a new filing lands for a tracked company.

Request access

Tell us which companies you need

We add registries one at a time. Tell us which jurisdictions and companies you need, and we will tell you what we hold now and what is realistic next.

We use your details to answer your request and nothing else. We will not add you to a mailing list and we do not sell it on. See our privacy policy.

Tell us what you need

We grant access case by case. That way we can tell you what we hold for your jurisdictions before you build anything on top of it.

Prefer email, or need a custom data agreement? Talk to sales