KRS Scraper - Polish Company Registry Data avatar

KRS Scraper - Polish Company Registry Data

Pricing

from $12.00 / 1,000 result scrapeds

Go to Apify Store
KRS Scraper - Polish Company Registry Data

KRS Scraper - Polish Company Registry Data

Extract company data from Poland's KRS (Krajowy Rejestr Sadowy). Get company name, KRS number, NIP, REGON, legal form, address, share capital, board members. Search by name, KRS number, or NIP. No login required.

Pricing

from $12.00 / 1,000 result scrapeds

Rating

0.0

(0)

Developer

Studio Amba

Studio Amba

Maintained by Community

Actor stats

0

Bookmarked

7

Total users

3

Monthly active users

16 hours ago

Last modified

Categories

Share

KRS Scraper

Look up Polish companies in the KRS (Krajowy Rejestr Sadowy / National Court Register) by name, KRS number or NIP. Each company comes back as one row with name, KRS number, NIP, REGON, legal form, address, share capital, registration date and board members. A list of up to 2,000 KRS numbers or NIPs runs in one go, and the run reports which ones the register does not know. The data comes from the Ministry of Justice's open API, so no login or cookies are needed.

How to scrape KRS data

  1. Click Try for free on this page to open the actor in Apify Console.
  2. Enter a company name (e.g., PKP), a 10-digit KRS number (e.g., 0000019193), or a NIP tax number (e.g., 5250000251).
  3. For a name search, set the maximum number of results (default: 100).
  4. Click Start and wait for the run to finish.
  5. Download your data as JSON, CSV, Excel, or connect it to your workflow via the Apify API.

Why use this actor?

Poland's KRS (Krajowy Rejestr Sadowy) is the official National Court Register maintained by the Ministry of Justice. It contains registration data for all Polish companies, foundations, and associations. This actor gives you programmatic access to that data without manual searches on the government portal.

Use cases:

  • Due diligence: Verify company details, board composition, and share capital before business deals.
  • Lead generation: Find companies by name or location for B2B outreach.
  • Compliance monitoring: Track registration changes and company status.
  • Market research: Analyze the Polish corporate landscape by legal form, capital, or region.

Input

FieldTypeRequiredDescription
searchQueryStringNoSearch companies by name (min 3 characters). The input form is prefilled with PKP. If you send no criteria at all through the API, the actor searches warszawa.
krsNumberStringNoLook up a specific company by its 10-digit KRS number.
nipStringNoSearch by Polish tax identification number (NIP, 10 digits).
krsNumbersArrayNoA list of KRS numbers to look up in one run. Up to 2,000 lookups per run, together with nips.
nipsArrayNoA list of NIPs to look up in one run. Up to 2,000 lookups per run, together with krsNumbers.
maxResultsIntegerNoMaximum results to return for a name search (default: 100, max: 1000). It does not apply to a list lookup.
proxyConfigurationObjectNoProxy settings. Polish residential proxies recommended.

Provide one of searchQuery, krsNumber, or nip. If you give several, krsNumber is used first, then nip, then searchQuery. If you give none, the actor runs a name search for warszawa.

Example input

{
"searchQuery": "Allegro",
"maxResults": 10,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "PL"
}
}

Direct KRS number lookup

{
"krsNumber": "0000019193"
}

NIP lookup

{
"nip": "5250000251"
}

List lookup

Look up many companies in one run with krsNumbers, nips, or both. One run takes up to 2,000 lookups and runs 8 at a time. In a local test on 11 October 2026, 239 lookups finished in 97 seconds.

{
"krsNumbers": ["0000019193"],
"nips": ["712-262-67-44"]
}

Every company found is one dataset row. The run also writes an OUTPUT record to its key-value store with the values that returned no row, grouped as notFound (not in the register), struckOff (no current extract), invalid, failed (the register did not answer) and notProcessed (the run reached its timeout first). You are charged for the rows only. When krsNumbers or nips is filled, the single krsNumber, nip and searchQuery fields and maxResults are ignored.

Output

Each result contains the following fields. nip, regon, shareCapital and boardMembers are empty when the register has no entry for them: in a 10-company run, nip was filled on 8, regon on 7, shareCapital on 7 and boardMembers on 8.

FieldTypeExample
companyNameString"POLSKIE KOLEJE PANSTWOWE SPOLKA AKCYJNA"
krsNumberString"0000019193"
nipString"5250000251"
regonString"00012680100000"
legalFormString"SPOLKA AKCYJNA"
registrationDateString"2001-06-11"
addressString"ALEJE JEROZOLIMSKIE 142A"
cityString"WARSZAWA"
postalCodeString"02-305"
shareCapitalNumber10150715600.00
currencyString"PLN"
statusString"active"
boardMembersArray[{"name": "K******** C*******", "role": "PREZES ZARZADU"}]
urlStringURL to the KRS detail page
scrapedAtStringISO timestamp

Example output

{
"companyName": "POLSKIE KOLEJE PANSTWOWE SPOLKA AKCYJNA",
"krsNumber": "0000019193",
"nip": "5250000251",
"regon": "00012680100000",
"legalForm": "SPOLKA AKCYJNA",
"registrationDate": "2001-06-11",
"address": "ALEJE JEROZOLIMSKIE 142A",
"city": "WARSZAWA",
"postalCode": "02-305",
"shareCapital": 10150715600.00,
"currency": "PLN",
"status": "active",
"boardMembers": [
{ "name": "K******** C*******", "role": "PREZES ZARZADU" },
{ "name": "W****** P**********", "role": "CZLONEK ZARZADU - WICEPREZES" }
],
"url": "https://wyszukiwarka-krs.ms.gov.pl/dane-szczegolowe-podmiotu?numerKRS=0000019193",
"scrapedAt": "2026-10-15T04:01:03.808Z"
}

Important notes

  • Personal data is anonymized: The official KRS API anonymizes personal data (first letters of names and PESEL numbers) in compliance with Polish data protection regulations. Board member names appear partially masked in the output.
  • Data source: This actor uses the official KRS Open API (api-krs.ms.gov.pl) maintained by the Polish Ministry of Justice. Data corresponds to current KRS extracts (odpis aktualny).
  • No login required: All data comes from publicly available government endpoints. No account or authentication needed.
  • Rate limits: The government API may impose rate limits. The actor retries a refused or unanswered request six times, the last two without the proxy. For many companies, use one list run (krsNumbers / nips) instead of one run per company.
  • Struck-off companies: A company that has been struck off the register has no current extract and is not returned. A name search can therefore return fewer rows than the register shows matches. The run's status message gives the number skipped (50 of 150 matches for PKP, 5 of 15 for Allegro).
  • Status field: Companies can be active, in_liquidation, or deleted. Most searches return active companies.

Data coverage

The KRS register contains data for:

  • Spolki handlowe (commercial companies): SA, sp. z o.o., sp.k., sp.j., sp.p., SKA
  • Stowarzyszenia (associations) and fundacje (foundations)
  • Spoldzielnie (cooperatives)
  • All entities required to register with the National Court Register

Each record is built from the current extract (odpis aktualny): identifiers, address, share capital and management board.

Integrations

Connect this actor with other tools in your stack:

  • Apify API: Fetch results programmatically in any language.
  • Webhooks: Get notified when a run completes.
  • Zapier / Make: Automate workflows with KRS data.
  • Google Sheets: Export directly to spreadsheets.
  • Slack / Email: Send alerts when specific companies are found.

Cost per result

Pricing is pay per event: $0.01 per GB of memory at start (the actor runs on 4 GB, so $0.04 per run) plus $0.012 per company row. Companies skipped as struck off are not charged.

RunRows chargedCharged
One KRS number or NIP1$0.052
Name search, 10 rows (Allegro)10$0.16
Name search, 100 rows (PKP, default maxResults)98$1.22

The PKP run took 191 seconds. A name search makes one detail request per company, so 100 rows take about three minutes. A list run of up to 2,000 numbers pays the start fee once.

  • EU Dealer Counterparty Check runs this scraper alongside 14 other European registries and merges the results into one counterparty dossier with risk flags.

This actor accesses publicly available data from the official KRS government portal (api-krs.ms.gov.pl). The data is published by the Polish Ministry of Justice under the Act on Open Data and the Re-use of Public Sector Information (August 11, 2021). Users are responsible for ensuring their use of the data complies with applicable laws.