Raw schema
{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Company name, used when the KRS or NIP is not known."
},
"krs": {
"type": "string",
"description": "KRS number of the company in the Polish National Court Register (10 digits)."
},
"nip": {
"type": "string",
"description": "Polish company tax number (NIP) of the business, 10 digits."
},
"city": {
"type": "string",
"description": "City name — KRS records use uppercase, e.g. 'WARSZAWA', 'POZNAŃ'."
},
"county": {
"type": "string",
"description": "County / powiat (lowercase)."
},
"region": {
"type": "string",
"description": "Voivodeship (lowercase), e.g. 'mazowieckie', 'wielkopolskie'."
},
"postal_code": {
"type": "string",
"description": "Postal code prefix, e.g. '00-9' or '61-'."
},
"pkd": {
"type": "string",
"description": "Primary PKD code prefix, e.g. '46.90.Z' or '46'."
},
"all_pkd": {
"type": "string",
"description": "Match any PKD code in the company's activity list (not just primary)."
},
"legal_form": {
"type": "string",
"description": "Legal form fragment, e.g. 'spółka z o.o.' or 'akcyjna'."
},
"currency": {
"type": "string",
"enum": [
"pln",
"usd",
"eur"
],
"description": "Currency for monetary filters. Default: pln."
},
"revenue_min": {
"type": "number",
"description": "Minimum total revenue."
},
"revenue_max": {
"type": "number",
"description": "Maximum total revenue."
},
"profit_min": {
"type": "number",
"description": "Minimum net profit."
},
"profit_max": {
"type": "number",
"description": "Maximum net profit."
},
"profit_operating_min": {
"type": "number",
"description": "Minimum operating profit (PLN). Negative allowed. Omit if unused."
},
"profit_operating_max": {
"type": "number",
"description": "Maximum operating profit (PLN). Omit if unused."
},
"total_assets_min": {
"type": "number",
"description": "Minimum total assets."
},
"total_assets_max": {
"type": "number",
"description": "Maximum total assets."
},
"ebitda_min": {
"type": "number",
"description": "Minimum EBITDA."
},
"ebitda_max": {
"type": "number",
"description": "Maximum EBITDA."
},
"capital_min": {
"type": "number",
"description": "Minimum share capital."
},
"capital_max": {
"type": "number",
"description": "Maximum share capital."
},
"estimated_value_min": {
"type": "number",
"description": "Minimum Ohlson estimated equity value in PLN."
},
"estimated_value_max": {
"type": "number",
"description": "Maximum Ohlson estimated equity value in PLN."
},
"registration_date_min": {
"type": "string",
"description": "Earliest KRS registration date, YYYY-MM-DD (inclusive). For newly registered companies use today's date for both registration_date_min and registration_date_max."
},
"registration_date_max": {
"type": "string",
"description": "Latest KRS registration date, YYYY-MM-DD (inclusive)."
},
"is_active": {
"type": "boolean",
"description": "true = active only, false = closed only. Omit for all."
},
"has_email": {
"type": "boolean",
"description": "true = only companies with email on record. Matching rows include contacts.email. Omit otherwise."
},
"has_website": {
"type": "boolean",
"description": "true = only companies with website on record. Matching rows include contacts.website. Omit otherwise."
},
"sort_by": {
"type": "string",
"enum": [
"revenue_total",
"profit_net",
"total_assets",
"profit_operating",
"ebitda",
"capital_total",
"estimated_value",
"registration_date"
],
"description": "Sort field (default: revenue_total). registration_date + sort_dir=desc lists the newest registrations first."
},
"sort_dir": {
"type": "string",
"enum": [
"asc",
"desc"
],
"description": "Sort direction (default: desc)."
},
"year": {
"type": "integer",
"description": "Filter to companies whose latest financial_period_to falls within this calendar year (e.g. 2024). Use only for sector/ranking browse — omit when looking up a company by name, KRS, or NIP."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"description": "Max results (default: 10, max: 50)."
},
"fields": {
"type": "string",
"enum": [
"contacts_only",
"summary",
"full"
],
"description": "Response size. Default summary (name, NIP, KRS, location, PKD, latest financials, email/phone/website). contacts_only: name, NIP, KRS, city, email, phone, website. full: every company_search column plus contacts — often too large for MCP clients."
}
}
}