Basic Structure
The core of the filtering mechanism is thefilters array in the request body. Each object in this array represents a single filter condition and must contain a field and a corresponding value using one of the available filter types.
Free-Text Search Query
Besides structured filters, you can also perform a free-text search using thequery field. This is useful for finding companies by name or previous names.
Examples
Here are a few examples of how you can combine different filters to achieve specific search results.All Restaurants
To find all companies in the restaurant industry, you can filter by theindustry_codes field.
Newly Founded Companies
To find companies that were incorporated in the last week, you can use a range filter on theincorporated_at field.
High-Revenue Companies with a Large Workforce
To find companies with more than 100 employees and over 100 million EUR in revenue, you can combine two range filters. Monetary filter values (revenue, balance_sheet_total, capital_amount, etc.) are in cents — 100 million EUR = 10,000,000,000 cents.Companies in a Specific Location
To find all companies with a registered address in a specific postal code.Companies with a Specific Legal Form and Capital
To find all GmbH companies with a capital of more than 1 million EUR. Monetary filter values are in cents — 1 million EUR = 100,000,000 cents.Owner-Managed Companies for Succession Planning
To find owner-managed businesses with an older owner - ideal for identifying succession opportunities.Filterable Fields
You can filter on a wide range of fields. Here is a list of all available fields: Important: All monetary/indicator fields (balance_sheet_total, revenue, cash, equity, capital_amount, real_estate, materials, pension_provisions, salaries, taxes, liabilities, capital_reserves, net_income) use values in cents, not euros. Divide by 100 to convert to EUR.
| Field | Description |
|---|---|
status | The current status of the company (e.g., active, inactive, liquidation). |
legal_form | The legal form of the company (e.g., gmbh, ag). |
register_number | The company’s registration number. |
register_court | The court where the company is registered. |
register_type | The type of register (e.g., HRB, HRA). |
city | The city where the company is located. |
active | A boolean indicating if the company is active. |
incorporated_at | The date of incorporation. |
purpose | The business purpose of the company. |
zip | The postal code of the company’s address. |
address | The full address of the company. |
balance_sheet_total | The total of the balance sheet (in cents). |
revenue | The company’s revenue (in cents). |
cash | The company’s cash reserves (in cents). |
employees | The number of employees. |
equity | The company’s equity (in cents). |
real_estate | The value of the company’s real estate (in cents). |
materials | The value of the company’s materials (in cents). |
pension_provisions | The company’s pension provisions (in cents). |
salaries | The company’s salary expenses (in cents). |
taxes | The company’s tax expenses (in cents). |
liabilities | The company’s liabilities (in cents). |
capital_reserves | The company’s capital reserves (in cents). |
net_income | The company’s net income (in cents). |
industry_codes | The company’s industry codes (WZ2025). |
capital_amount | The amount of the company’s capital (in cents). |
capital_currency | The currency of the company’s capital. |
number_of_owners | The number of company owners/shareholders. (enterprise only) |
has_sole_owner | Boolean indicating if the company has only one owner. (enterprise only) |
has_representative_owner | Boolean indicating if an owner is also in management (owner-managed). (enterprise only) |
is_family_owned | Boolean indicating if the company is family-owned. (enterprise only) |
youngest_owner_age | The age of the youngest owner/shareholder. (enterprise only) |
Filter Types
There are several ways to specify the filter value, depending on the desired comparison.Exact Match: value
For a simple exact match, use the value property.
Multiple Values: values
To match against a list of possible values, use the values array. This is useful for “OR” conditions.
Keyword Matching: keywords
For text fields, keywords allows you to find records containing any of the specified words.
Range Filtering: min and max
For numerical and date fields, you can specify a range using min and max.
Date Formatting
When filtering by date, use theDD-MM-YYYY format.
Location Filtering
You can also filter companies based on their geographical location by providing alocation object in the request body. This allows you to find companies within a certain radius of a given point.
The location object requires latitude and longitude, and optionally accepts a radius in kilometers.
Combining Filters
You can combine multiple filter objects in thefilters array. These conditions are joined with an “AND” operator, meaning a company must satisfy all of them to be included in the results.

