Poland Company Filings (KRS) API and MCP — Financial Documents & Register Entries
Send a KRS number and get the company's filed documents and register entries as a list, newest first: date, type, period and entry details. The documents covered are annual and consolidated statements, auditor opinions, approval resolutions and management reports.
- You send
- A KRS number or a link to the record on the register
- You get back
- Financial documents and register entries, newest first, with date, type, period and entry details
- 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 | Open the company on KRS (National Court Register) and page through the list | 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 |
|---|---|---|
company | string | KRS number you sent. |
company_id | string | KRS number as resolved. |
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. |
machine.total_found | number | Total filings and entries on the register for the company. |
machine.first_item | object | First returned record, same shape as items. |
machine.items[] | array | Returned filings and entries. |
machine.items[].krs | string | KRS number of the company. |
machine.items[].id | string | Record identifier, with the type and number. |
machine.items[].type | string | Type, e.g. register_entry. |
machine.items[].category | string | Category, e.g. register_entries. |
machine.items[].date | string | Date of the record. |
machine.items[].title | string | Title, e.g. Register entry no. 88. |
machine.items[].description | string | Description as published, in Polish. |
machine.items[].entry_number | string | Entry number, for register entries. |
machine.items[].case_number | string | Court case number of the entry. |
machine.items[].court | string | Court that handled the entry. |
machine.items[].document_number | string | Document or entry number. |
machine.items[].url | string | Link to the record on the register. |
machine.items[].period | null | Reporting period; null for register entries in the sample. |
machine.items[].period_from | null | Null for register entries in the sample. |
machine.items[].period_to | null | Null for register entries in the sample. |
machine.items[].registration_number | string | Empty string in the sample. |
machine.items[].name | null | Null in the sample. |
machine.items[].status | null | Null in the sample. |
machine.items[].address | null | Null in the sample. |
machine.items[].format | null | Null 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_company_filings",
"company": "0000635012",
"company_id": "0000635012",
"max_items": 2,
"start_page": 1,
"partial": false,
"human": "# Poland — KRS — company filings\n\n- **Company:** 0000635012\n- **Results:** 2 of 128 found\n- **Proxy traffic:** 18.1 KB",
"machine": {
"total_items": 2,
"first_item": {
"registration_number": "",
"name": null,
"status": null,
"address": null,
"company_type": null,
"incorporation_date": null,
"krs": "0000635012",
"id": "0000635012:register_entry:88",
"type": "register_entry",
"category": "register_entries",
"date": "2026-09-08",
"title": "Register entry no. 88",
"description": "ZMIANA DANYCH W REJESTRZE",
"period": null,
"period_from": null,
"period_to": null,
"entry_number": "88",
"case_number": "PO.VIII NS-REJ.KRS/26218/26/191",
"court": "SĄD REJONOWY POZNAŃ - NOWE MIASTO I WILDA W POZNANIU, VIII WYDZIAŁ GOSPODARCZY KRAJOWEGO REJESTRU SĄDOWEGO",
"document_number": "88",
"format": null,
"url": "https://wyszukiwarka-krs.ms.gov.pl/#krs-0000635012-register_entry-88"
},
"items": [
{
"registration_number": "",
"name": null,
"status": null,
"address": null,
"company_type": null,
"incorporation_date": null,
"krs": "0000635012",
"id": "0000635012:register_entry:88",
"type": "register_entry",
"category": "register_entries",
"date": "2026-09-08",
"title": "Register entry no. 88",
"description": "ZMIANA DANYCH W REJESTRZE",
"period": null,
"period_from": null,
"period_to": null,
"entry_number": "88",
"case_number": "PO.VIII NS-REJ.KRS/26218/26/191",
"court": "SĄD REJONOWY POZNAŃ - NOWE MIASTO I WILDA W POZNANIU, VIII WYDZIAŁ GOSPODARCZY KRAJOWEGO REJESTRU SĄDOWEGO",
"document_number": "88",
"format": null,
"url": "https://wyszukiwarka-krs.ms.gov.pl/#krs-0000635012-register_entry-88"
},
{
"registration_number": "",
"name": null,
"status": null,
"address": null,
"company_type": null,
"incorporation_date": null,
"krs": "0000635012",
"id": "0000635012:register_entry:87",
"type": "register_entry",
"category": "register_entries",
"date": "2026-07-15",
"title": "Register entry no. 87",
"description": "ZMIANA DANYCH W REJESTRZE",
"period": null,
"period_from": null,
"period_to": null,
"entry_number": "87",
"case_number": "PO.VIII NS-REJ.KRS/21556/26/621",
"court": "SĄD REJONOWY POZNAŃ - NOWE MIASTO I WILDA W POZNANIU, VIII WYDZIAŁ GOSPODARCZY KRAJOWEGO REJESTRU SĄDOWEGO",
"document_number": "87",
"format": null,
"url": "https://wyszukiwarka-krs.ms.gov.pl/#krs-0000635012-register_entry-87"
}
],
"total_found": 128,
"page_count": 1,
"blocked": false,
"proxy_traffic_bytes": 18510
},
"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-company-filings \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"company":"0000635012","max_items":2}'What teams use it for
Where this field shows up in an actual workflow.
Read the latest register entries to see when a company changed its data and which court recorded it.
List annual and consolidated statements by period for a company.
Review the filing and entry history behind a company before a deal.
Take the court and case number of an entry for follow-up.
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.
- —Lists records and links. It does not read the content of the documents.
- —The sample shows register entries; period fields are null for those and apply to financial documents.
- —Descriptions and court names come in Polish, in capitals.
Questions, answered
Financial documents such as annual and consolidated statements, auditor opinions, approval resolutions and management reports, plus the register entries.
Related sources
Try poland company filings on your own data
One request format across every source in the catalog.