Poland KRS Company Register Scraper
Pricing
from $12.75 / 1,000 results
Poland KRS Company Register Scraper
Look up any Polish company in the KRS National Court Register and export its official extract: KRS, REGON and NIP numbers, legal form, registered address, board members and their roles, proxies, partners and shareholders, share capital and PKD activity codes. Export to JSON, CSV or Excel.
Pricing
from $12.75 / 1,000 results
Rating
0.0
(0)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
12 hours ago
Last modified
Categories
Share
Poland KRS Company Register Scraper
Here is one real result, with every field the actor returns (otherActivities list trimmed for readability; the actor returns the full list. Individual person names are redacted at the source register, not by this actor):
{"krsNumber": "0000006646","register": "P","name": "WORLDWIDE SCHOOL - A.PIECHOWSKA, W.PIECHOWSKI SPÓŁKA JAWNA","legalForm": "SPÓŁKA JAWNA","regon": "01110111000000","nip": "1180037300","isPublicBenefit": false,"status": "Aktualny","registrationDate": "09.04.2001","asOfDate": "20.11.2025","lastEntryNumber": 42,"lastEntryDate": "20.08.2025","address": "UL. ŚWIĘTOKRZYSKA 30/63, 00-116 WARSZAWA, POLSKA","street": "UL. ŚWIĘTOKRZYSKA","buildingNumber": "30","apartmentNumber": "63","postalCode": "00-116","city": "WARSZAWA","commune": "WARSZAWA","county": "WARSZAWA","voivodeship": "MAZOWIECKIE","country": "POLSKA","shareCapital": null,"representationRule": "KAŻDY WSPÓLNIK JEST UPRAWNIONY DO SAMODZIELNEGO PROWADZENIA SPRAW SPÓŁKI","representationBody": "WSPÓLNICY REPREZENTUJĄCY SPÓŁKĘ","officers": [{"name": "WWS SERVICE SPÓŁKA Z OGRANICZONĄ ODPOWIEDZIALNOŚCIĄ","isOrganization": true,"krs": "0000489679","regon": "14700036800000","role": null,"proxyType": null,"shares": null,"holdsAllShares": null,"suspended": null}],"proxies": [{"name": "E******* Ś***********","isOrganization": false,"krs": null,"regon": null,"role": null,"proxyType": "PROKURA SAMODZIELNA","shares": null,"holdsAllShares": null,"suspended": null}],"partners": [{"name": "WWS SERVICE SPÓŁKA Z OGRANICZONĄ ODPOWIEDZIALNOŚCIĄ","isOrganization": true,"krs": "0000489679","regon": "14700036800000","role": null,"proxyType": null,"shares": null,"holdsAllShares": null,"suspended": null}],"mainActivity": {"code": "85.59.A","description": "NAUKA JĘZYKÓW OBCYCH"},"otherActivities": [{ "code": "85", "description": "EDUKACJA" },{ "code": "74", "description": "POZOSTAŁA DZIAŁALNOŚĆ PROFESJONALNA, NAUKOWA I TECHNICZNA" }],"url": "https://ekrs.ms.gov.pl/web/wyszukiwarka-krs/strona-glowna","source": "Poland KRS (National Court Register)","observedAt": "2026-08-10T14:28:58.728Z"}
The most complete Poland KRS scraper available. It returns every field the National Court Register (KRS) exposes for a company, including REGON and NIP identifiers, full registered address, share capital, representation rules, officers, proxies, partners and PKD activity codes, and an optional contact-enrichment add-on. Look up one KRS number or many in a single run.
📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples
Table of contents
- What it does
- Quickstart
- Input reference
- Output reference
- Example output record
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
What it does
The actor looks up each Polish KRS number you pass in the National Court Register (Krajowy Rejestr Sądowy) and writes one normalized record per company to the run's dataset. It returns the company identity (name, legal form, REGON, NIP, status), the full registered address parsed into street, building, apartment, postal code, city, commune, county, voivodeship and country, share capital, the representation rule and body, and the people and entities on file as officers, proxies and partners. Business activity is returned as PKD codes: a mainActivity plus an otherActivities list.
Provide a single krsNumber, or a list of krsNumbers for a bulk run. Numbers are 10 digits, with or without leading zeros. Missing source values are returned as null, never invented. Individual person names are redacted in the public register itself.
Quickstart
Open the actor, paste this into the input, and press Run. It looks up two Polish companies by KRS number.
{"maxCompanies": 10,"krsNumbers": ["0000006646", "0000489679"],"enrichContacts": false,"enrichContactsMax": 50}
Use krsNumber for a single lookup, or krsNumbers for many. Both accept 0000006646 or 6646 form.
Input reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
krsNumber | string | no | 0000006646 | A single KRS number to look up. 10 digits, with or without leading zeros (for example 0000006646 or 6646). |
krsNumbers | string[] | no | ["0000006646","0000489679"] | A list of KRS numbers to look up in one run. Each is 10 digits, with or without leading zeros. |
maxCompanies | integer | no | 10 | Maximum number of companies to collect. |
enrichContacts | boolean | no | false | Optional paid add-on. For each result without an email, attempt to find a public business contact email and a contact person's name. Billed per attempt, plus an extra charge only when an email is found. |
enrichContactsMax | integer | no | 50 | Cap how many results the add-on tries to enrich. Free Apify accounts are capped at 3. |
Output reference
One dataset item per company. Types: string, integer, boolean, object, object[], or null when the source value is absent.
| Field | Type | Description |
|---|---|---|
krsNumber | string | KRS number (unique). |
register | string | Register section code, for example P (entrepreneurs). |
name | string | Full registered company name. |
legalForm | string | Legal form, for example SPÓŁKA JAWNA. |
regon | string | REGON statistical number, or null. |
nip | string | NIP tax number, or null. |
isPublicBenefit | boolean | true when registered as a public benefit organization. |
status | string | Register status, for example Aktualny (current). |
registrationDate | string | Registration date (DD.MM.YYYY). |
asOfDate | string | Date the register snapshot is current as of. |
lastEntryNumber | integer | Number of the latest register entry. |
lastEntryDate | string | Date of the latest register entry. |
address | string | Full single-line registered address. |
street | string | Street. |
buildingNumber | string | Building number. |
apartmentNumber | string | Apartment or suite number, or null. |
postalCode | string | Postal code. |
city | string | City. |
commune | string | Commune (gmina). |
county | string | County (powiat). |
voivodeship | string | Voivodeship (province). |
country | string | Country. |
shareCapital | object | Share capital as { value, currency } when applicable, else null. |
representationRule | string | Rule for how the company is represented, or null. |
representationBody | string | Name of the representation body, or null. |
officers | object[] | Officers on file. Each has name, isOrganization, krs, regon, role, proxyType, shares, holdsAllShares, suspended. |
proxies | object[] | Registered proxies (prokurenci), same shape as officers. |
partners | object[] | Partners or shareholders on file, same shape as officers. |
mainActivity | object | Primary PKD activity as { code, description }, or null. |
otherActivities | object[] | Additional PKD activities, each { code, description }. |
url | string | KRS search portal URL. |
source | string | Always Poland KRS (National Court Register). |
observedAt | string | ISO 8601 timestamp of when the record was collected. |
enrichedEmail | string | Contact enrichment add-on only: found public business email, or null. |
enrichedContactName | string | Contact enrichment add-on only: contact person name, or null. |
enrichedEmailStatus | string | Contact enrichment add-on only: verified, likely, guessed, or not_found. |
error | string | null on success. On a failed lookup, an item with a populated error field is written instead. |
Enrichment fields (enriched*) appear only when you turn on the paid enrichContacts add-on.
Example output record
Real record from a live run (input {"krsNumbers": ["0000006646","0000489679"]}):
{"krsNumber": "0000489679","register": "P","name": "WWS SERVICE SPÓŁKA Z OGRANICZONĄ ODPOWIEDZIALNOŚCIĄ","legalForm": "SPÓŁKA Z OGRANICZONĄ ODPOWIEDZIALNOŚCIĄ","regon": "14700036800000","nip": "5252576222","status": "Aktualny","registrationDate": "06.12.2013","asOfDate": "04.12.2025","address": "UL. ŚWIĘTOKRZYSKA 30/63, 00-116 WARSZAWA, POLSKA","city": "WARSZAWA","voivodeship": "MAZOWIECKIE","country": "POLSKA","shareCapital": {"value": "5000,00","currency": "PLN"},"mainActivity": null,"url": "https://ekrs.ms.gov.pl/web/wyszukiwarka-krs/strona-glowna","source": "Poland KRS (National Court Register)","observedAt": "2026-08-10T14:28:59.232Z"}
Run via API and CLI
Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.
Run synchronously and get dataset items in one call:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~poland-krs-companies-scraper/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"krsNumbers":["0000006646","0000489679"]}'
Start a run asynchronously:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~poland-krs-companies-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"krsNumber":"0000006646"}'
Apify CLI:
apify call scrapers_lat/poland-krs-companies-scraper \--input '{"krsNumbers":["6646","489679"]}'
Fetch results
Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:
# JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"# CSVcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"# Paginate large datasetscurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"
<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.
Billing and limits
- Pay per result. You are charged per company returned (
resultevent). See the pricing tab for the current per-result price. - Contact enrichment add-on. When
enrichContactsis on, each attempted row is billed once (contact-search-attempt) plus an extra charge only when an email is found (contact-email-found). Off by default. - No charge on failure. If a lookup errors, the actor writes an item with a populated
errorfield and does not charge for it. Empty runs cost nothing. - Spend cap respected. Set
maxTotalChargeUsdon the run; once reached, the actor stops emitting and charging further billable results. - Free Apify plans are capped at 10 companies per run, and the enrichment add-on at 3 rows. Upgrade for higher
maxCompanies.
FAQ and troubleshooting
A run returned 0 records. Why? The KRS number does not exist, or was entered incorrectly. Confirm the 10-digit number and try again. Zero-result runs are not charged.
Do I need leading zeros?
No. Both 0000006646 and 6646 work; the actor pads the number to 10 digits.
Why are individual names shown as asterisks? The KRS public register redacts natural person names itself for privacy. This actor returns exactly what the register exposes and does not unmask them. Organization names (companies as officers or partners) are returned in full, with their own KRS and REGON.
Why is shareCapital or mainActivity null?
Not every legal form has registered share capital, and some entries do not list a primary PKD activity. Missing source values are returned as null, never invented.
Can I look up many companies at once?
Yes. Pass a list to krsNumbers. maxCompanies caps the total.
Is this an official KRS tool? No. This actor is independent and has no affiliation with the Polish Ministry of Justice or the KRS. It reads only data that is publicly available through the KRS register.
Related scrapers
- Czech ARES Companies Scraper: Czech company register.
- Belgium KBO Companies Scraper: Belgian company register.
- Denmark CVR Companies Scraper: Danish company register.
- Estonia Business Register Scraper: Estonian business register.
- Bulgaria Commercial Register Scraper: Bulgarian commercial register.
- GLEIF LEI Company Records Scraper: legal entity records by LEI.
More scrapers at scrapers.lat
Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.
Independent tool, not affiliated with the Polish Ministry of Justice or the KRS. Accesses only publicly available register data.
