Connect your agent to Europe's private companies
Structured annual accounts, beneficial ownership, and filing history for millions of EU private companies — sourced directly from national registries, delivered through a single clean API.
Sourced directly from official EU registries
Search across EU registries in one call
Query millions of private companies by name, registration number, or VAT ID across all covered EU jurisdictions. No country-specific integration work — the fleet handles normalisation.
Analyze years of statutory accounts
Access structured annual accounts going back a decade or more. Revenue, EBITDA, net assets, and balance-sheet line items — extracted from official PDF filings and served as clean JSON.
Extract context from registry filings
Give your AI agents the full text of statutory documents: director reports, auditor notes, articles of association. Chunked and indexed, ready for RAG pipelines.
One API. Every EU jurisdiction.
Stop maintaining separate scrapers for each country. We ingest directly from 8 official national registries, normalise to a unified schema, and keep the data current with daily refresh cycles.
Everything your pipeline needs from EU registries
Each data type is normalised, schema-versioned, and documented with full field-level provenance back to the source filing.
Annual Accounts
Structured P&L, balance sheet, and cash-flow data extracted from statutory filings. Revenue, EBITDA, total assets, and 40+ financial line items per filing year.
Beneficial Ownership
UBO registers and PSC (Persons with Significant Control) data from national filings. Ownership chains, share percentages, and director histories.
Filing History
Full chronological index of all documents lodged with the registry — annual reports, confirmation statements, changes of directors, and more.
Balance Sheets
Parsed balance-sheet line items across years, normalised to a consistent schema regardless of local accounting standard (IFRS, UK GAAP, HGB, Plan Comptable).
Clean, effortless API
RESTful JSON over HTTPS. One API key. Consistent schema across all jurisdictions. Full OpenAPI spec for codegen.
# Fetch 5 years of annual accounts for a German company
curl -X GET \
"https://api.privatefinancials.eu/v1/companies/DE-HRB-6684/financials" \
-H "Authorization: Bearer pf_live_••••••••••••••••" \
-H "Accept: application/json" \
-d "years=5"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/DE-HRB-6684/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"
){
"company_id": "DE-HRB-6684",
"company_name": "Siemens AG",
"jurisdiction": "DE",
"registry": "Handelsregister",
"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.
Start building today
Get your API key in seconds. Free tier includes 200 company lookups per month — no credit card required.
Need a custom data agreement or higher limits? Talk to sales