Poland Company Search (KRS) API and MCP — Find KRS Numbers by Company Name
Send a keyword and get the Polish entities whose name matches: KRS number, name, city, the register section and two flags, public benefit organization and bankruptcy proceedings.
- You send
- A company name or keyword
- You get back
- Matching entities with KRS number, name, city, register and flags
- Coverage
- Poland — entities on KRS (National Court Register).
- Price
- 1 point per returned record — $1 per 1,000
- Billed per record actually returned, capped by max_items. A request that returns nothing costs nothing.
Ways to get this data
Three approaches teams use today, and where each one runs into trouble.
| Approach | What it takes | Cost | Trade-off |
|---|---|---|---|
| KRS (National Court Register) directly | Type the name into KRS (National Court Register) and read the results | Usually free, sometimes per-document | A different interface, language and data shape for every country you add |
| Collecting it yourself | Build and host a crawler per register, then keep each one alive | Infrastructure and maintenance | Registers change their pages without warning, and nobody is on the hook when yours breaks |
| NeuralVerge | One request, the same shape as every other source in the catalog | $1 per 1,000, misses not billed | Covers Poland — other countries are separate sources with the same request format |
What you get back
Every field in the example response below.
| Field | Type | Description |
|---|---|---|
keyword | string | The search term you sent. |
max_items | number | Cap on records returned. |
start_page | number | Result page the run started from. |
partial | boolean | True when the run stopped before reaching max_items. |
machine.total_items | number | Number of records returned in this run. |
machine.total_found | number | Total matches on the register for the keyword. |
machine.first_item | object | First returned record, same shape as items. |
machine.items[] | array | Returned records. |
machine.items[].registration_number | string | KRS number, with leading zeros. |
machine.items[].name | string | Entity name, in capitals. |
machine.items[].address | string | City of the seat only, in the sample. |
machine.items[].register | string | Register section, e.g. Register of Entrepreneurs. |
machine.items[].public_benefit_organization | boolean | Whether the entity is a public benefit organization. |
machine.items[].bankruptcy_proceedings | boolean | Whether bankruptcy proceedings are recorded. |
machine.items[].status | null | Null in search results in the sample. |
machine.items[].url | null | Null in search results in the sample. |
machine.items[].company_type | null | Null in search results in the sample. |
machine.items[].incorporation_date | null | Null in search results in the sample. |
machine.page_count | number | Result pages read. |
machine.blocked | boolean | True when the register could not be read. |
Example response
A real response, as returned.
{
"session_id": "11111111-1111-1111-1111-111111111111",
"kind": "pl_companies_search",
"keyword": "orlen",
"max_items": 2,
"start_page": 1,
"partial": false,
"human": "# Poland — KRS — company search\n\n- **Keyword:** orlen\n- **Results:** 2 of 138 found\n- **Proxy traffic:** 20.4 KB",
"machine": {
"total_items": 2,
"first_item": {
"registration_number": "0000143578",
"name": "\"BASELL ORLEN POLYOLEFINS\" SPÓŁKA Z OGRANICZONĄ ODPOWIEDZIALNOŚCIĄ",
"status": null,
"address": "PŁOCK",
"url": null,
"company_type": null,
"incorporation_date": null,
"register": "Register of Entrepreneurs",
"public_benefit_organization": false,
"bankruptcy_proceedings": false
},
"items": [
{
"registration_number": "0000143578",
"name": "\"BASELL ORLEN POLYOLEFINS\" SPÓŁKA Z OGRANICZONĄ ODPOWIEDZIALNOŚCIĄ",
"status": null,
"address": "PŁOCK",
"url": null,
"company_type": null,
"incorporation_date": null,
"register": "Register of Entrepreneurs",
"public_benefit_organization": false,
"bankruptcy_proceedings": false
},
{
"registration_number": "0000251288",
"name": "\"KORLEN\" SPÓŁKA Z OGRANICZONĄ ODPOWIEDZIALNOŚCIĄ",
"status": null,
"address": "WITKOWO",
"url": null,
"company_type": null,
"incorporation_date": null,
"register": "Register of Entrepreneurs",
"public_benefit_organization": false,
"bankruptcy_proceedings": false
}
],
"total_found": 138,
"page_count": 1,
"blocked": false,
"proxy_traffic_bytes": 20847
},
"total_points": 2
}How to run it
The same lookup works from the app, the API, or as a tool an agent can call mid-task.
Results come back in the same envelope as every other source: a session id, a readable summary, the structured result and the points charged.
curl -X POST https://api.neuralverge.ai/functions/v1/run-pl-companies-search \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"keyword":"orlen","max_items":2}'What teams use it for
Where this field shows up in an actual workflow.
Turn a company name into the KRS number the company lookup needs.
Read the bankruptcy-proceedings and public-benefit flags straight from search results.
Compare candidate entities that share part of a name.
Run a list of names and page through matches with start_page.
Coverage, freshness and limits
What this source covers, how fresh it is, and where it stops.
Poland — entities on KRS (National Court Register).
Read at request time, so the answer reflects the register as it stands when you ask.
KRS (National Court Register) is a public register. Every response carries the source URL it was read from and a session id you can trace.
- —Search results are short. Status, legal form and registration date are null here; use the Poland company lookup for them.
- —The address is the city only in the sample.
- —Matches are by name text and can include unrelated companies containing the keyword.
Questions, answered
Search returns a short summary. The company lookup returns the status and the rest of the record once you have the KRS number.
Related sources
Try poland company search on your own data
One request format across every source in the catalog.