- Company search (
POST /v1/search/company) - Person search (
POST /v1/search/person) - Insolvency search (
POST /v1/search/insolvency)
Request Structure
Filters go into thefilters array of the request body. Each object in the array is one condition and must contain a field plus one of the filter types (value, values, keywords, or min/max).
filters array are combined with AND — a result must satisfy every one of them:
values (see below).
Filter Types
Exact Match: value
For a simple exact match, use the value property.
Multiple Values: values
To match any one of a list of values (“OR” within a field), use the values array.
Keyword Matching: keywords
For free-text fields, keywords finds records whose field contains any of the specified words — unlike values, which requires the whole field to match exactly. Use it on fields like purpose or address.
Range Filtering: min and max
For numerical and date fields, specify a range using min and/or max. Both bounds are optional — use just one for an open-ended range.
Value Conventions
A few conventions apply across all fields:-
Dates use the
DD-MM-YYYYformat, e.g."01-01-2026". (The ISOYYYY-MM-DDformat is also accepted.) Date fields supportmin/maxranges: -
Booleans are passed as the strings
"true"or"false":
Free-Text Search Query
Besides structured filters, you can perform a free-text search using thequery field. This is useful for finding companies by name or previous names. query and filters can be combined:
Location Filtering
For company search, you can filter by geographical location with alocation object in the request body. It requires latitude and longitude, and optionally accepts a radius in kilometers.
Estimated Financials
Most German companies publish a balance sheet but no income statement, so revenue and EBITDA are missing for the large majority of them. For those companies, OpenRegister estimates both figures from what they do publish, with models trained on the companies that report them. Estimates are available as filters:estimated_revenue and estimated_ebitda for the figure, estimated_revenue_confidence and estimated_ebitda_confidence for how reliable it is.
A few rules keep reported and estimated figures apart:
- Reported figures are included.
estimated_revenuematches the best available figure: the reported revenue where a company publishes one, the estimate everywhere else. A company never has both, so nothing is counted twice and no fiscal years are mixed. Userevenueinstead if you want published figures only. - Same freshness as reported figures. An estimate refers to the company’s latest fiscal year with a filing and, like reported indicators, ages out after four years.
- Cents, like every other monetary field.
- Not estimated: companies in an open insolvency proceeding, and companies under a profit transfer agreement (their reported profit is zero by contract, so nothing can be inferred from it).
How confidence works
Every estimate is a range, not just a number: a median plus an 80% interval from the 10th to the 90th percentile. The models are calibrated on companies they never saw during training so that the true figure falls inside this interval for roughly 80 of 100 companies. Range filters onestimated_revenue and estimated_ebitda apply to the median.
How wide that interval is varies a lot between companies: a GmbH with a detailed balance sheet, a headcount and an industry code gets a tight band, a holding with three balance sheet lines does not. The confidence tier summarises the width so you can filter on it without reasoning about quantiles:
Revenue uses a ratio because it scales with company size. EBITDA is measured against the balance sheet total instead, because its median is often close to zero, where a relative width would say nothing.
Use
estimated_revenue_confidence and estimated_ebitda_confidence with value or values to pick the tiers you accept. Companies with a reported figure pass whichever tiers you pick — a published number is the most confident value there is — so ["high"] means reported figures plus tight estimates. For lead lists, where a wrong size costs an outreach, ["high"] or ["high", "medium"] is the usual choice. For market sizing across many companies, all tiers are fine: the errors average out, the individual ranges do not. Combine the tier with a range on the figure itself, here 1 to 5 million EUR in cents:
Examples
Common company search recipes, combining the building blocks above.All Restaurants
Filter by theindustry_codes field (WZ2025 codes):
Newly Founded Companies
Companies incorporated since the start of 2026, using a range filter onincorporated_at:
High-Revenue Companies with a Large Workforce
Companies with more than 100 employees and over 100 million EUR in revenue (remember: monetary values are in cents — 100 million EUR = 10,000,000,000 cents):Companies in a Specific Location
All companies with a registered address in a specific postal code:Companies with a Specific Legal Form and Capital
All GmbH companies with a capital of more than 1 million EUR (= 100,000,000 cents):Companies With or Without a Legal Entity Identifier (LEI)
Usehas_lei with "true" or "false" to restrict results to companies that have been indexed with a non-empty LEI (true) or without one (false):
lei:
Companies by VAT ID
Usevat_id to look up companies by their VAT identification number (Umsatzsteuer-Identifikationsnummer). VAT IDs are collected from company websites, so they are only available for companies whose website has been indexed.
Companies by Estimated Revenue
Companies with revenue between 5 and 20 million EUR (cents: 5 million EUR = 500,000,000), reported or estimated, keeping reported figures and the tighter confidence tiers — see How confidence works:Companies with an Open Insolvency Proceeding
Companies that currently have an open insolvency proceeding, opened since the start of 2026:Owner-Managed Companies for Succession Planning
Owner-managed businesses with an older owner — ideal for identifying succession opportunities:Filterable Fields
Company Search
The company search supports general company fields, financial indicator fields and estimated financial fields.Company Fields
Financial Indicator Fields
Every financial indicator can be used as a range filter viamin/max, based on the company’s most recent available fiscal year.
Estimated Financial Fields
Where a company reports neither figure, the search carries model estimates; these filters match the reported figure where there is one and the estimate otherwise — see Estimated Financials for the rules and how the confidence tiers are defined. Monetary values are in cents.Person Search
The person search supports the following filterable fields:Insolvency Search
The insolvency search supports the following filterable fields. The date fields (opened_at, closed_at, last_event_at, claims_filing_deadline) support min/max ranges.

