Poland KRS Scraper: Krajowy Rejestr Sądowy Data, Feed, Monitor
Pricing
from $2.80 / 1,000 company records
Poland KRS Scraper: Krajowy Rejestr Sądowy Data, Feed, Monitor
Poland KRS scraper (Krajowy Rejestr Sądowy): look up companies by KRS, NIP or REGON, follow new and changed registrations by date, or monitor a watchlist. 30+ filters. Board, owners, PKD, filings, risk flags and history as JSON. Pay per company record. No login or API key.
Pricing
from $2.80 / 1,000 company records
Rating
0.0
(0)
Developer
GetAScraper
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
🏛️ Poland KRS Scraper: Krajowy Rejestr Sądowy Data, Feed, Monitor
|
Every Polish company record from the KRS, filtered and monitored in one run Read the Krajowy Rejestr Sądowy (the National Court Register) by KRS, NIP or REGON number. Or find companies you do not know yet: new registrations and fresh register entries by date. |
|
🔎 Five jobs, one run Look up by KRS, NIP or REGON, follow new companies, track changes, watch a list, or scan a number range. |
🧰 30+ filters Legal form, region, city, PKD, capital, status, filings, board role, owners and more. |
🏢 Deep register data Board, corporate owners with their KRS, all PKD codes, filings and risk events. |
🔔 Exact change alerts A named monitor returns what changed, with the before and after of each field. |
Get structured Polish company data from the KRS (Krajowy Rejestr Sądowy) without logging in. Paste KRS, NIP or REGON numbers to read the board, owners, PKD activities, filing history and legal status of each company. Or let the Actor find new and changed companies for you, with filters for legal form, region, activity code, share capital and status. Schedule it with a monitor name and it tells you exactly what changed since the last run.
🔍 What does it do?
One Actor covers the jobs that usually take five separate tools:
- Look up companies by KRS number, or by NIP and REGON (matched to a KRS number through the public VAT white list).
- New company feed: every entity first registered inside a date window of up to 31 days, newest first.
- Change feed: every entity that got a new register entry in the window, with the same filters.
- Monitor: watch a list of companies. Each run returns only the ones that changed, with the before and after of every field.
- Range scan: read a block of consecutive KRS numbers, handy for sampling or sweeping a number range.
Every mode accepts the same filters and the same output sections, so a lead-generation query, a due-diligence batch and a compliance watchlist all use one form.
👥 Why use it
- Sales and lead generation: "I want every new sp. z o.o. in Małopolskie with a website, the week it is registered."
- KYB and compliance: "I need the board, the corporate owners, the liquidation and bankruptcy flags and the VAT status for each counterparty, in one row."
- Due diligence and M&A: "Show me the history of names, addresses, capital and board changes, and which group companies share a parent KRS."
- Banks, accountants and insurers: "Alert me when a client changes its registered office, board or capital, or goes into liquidation."
🚀 How to use it
|
STEP 1 Pick the job Choose lookup, new companies, changes, monitor or range scan. |
STEP 2 Add numbers and filters Paste KRS, NIP or REGON numbers, or set a date window and filters. |
STEP 3 Download the records Get one row per company as JSON, CSV or Excel, or schedule the run. |
- Open the Actor and pick a mode. Lookup is preselected with five large public companies, so you can run it as is.
- For lookup and monitor, list KRS, NIP or REGON numbers. For the two feeds, set the days back or the from and to dates.
- Add filters if you want a narrower result, choose the output sections, and press Start.
- Download the dataset, or schedule the run daily and keep the same monitor name.
⚙️ Input
| Field | Type | Required | Description |
|---|---|---|---|
mode | enum | No | Lookup reads the numbers you list. The two feeds discover companies you do not know yet from the daily court bulletin. Monitor remembers each watched company and reports exactly what changed. Range scan walks consecutive KRS numbers. |
krsNumbers | array of text | No | KRS numbers to read, with or without leading zeros (for example 0000028860 for ORLEN). Used by lookup and monitor modes. |
nipNumbers | array of text | No | Polish tax numbers. Each NIP is matched to its KRS number through the public VAT white list, so it only works for VAT-registered companies that have a KRS entry. Used by lookup and monitor modes. |
regonNumbers | array of text | No | 9 or 14 digit REGON numbers, matched to a KRS number through the public VAT white list. Used by lookup and monitor modes. |
registers | enum | No | KRS keeps two registers. Leave on both unless you know which one your numbers belong to, which saves one request per number. |
krsRangeFrom | integer | No | Range mode only. First KRS number of the block to read. Numbers are handed out in order, so the newest companies sit at the highest numbers. |
krsRangeTo | integer | No | Range mode only. Last KRS number of the block. The run stops earlier when it reaches the limit of companies to read. |
daysBack | integer | No | Feed modes only. How many calendar days the window covers, counting today: 1 is today only, 3 is today and the two days before. Ignored when you set both dates below. |
fromDate | date | No | Feed modes only. First day of the window, for example 2026-10-01. Leave empty to use days back. |
toDate | date | No | Feed modes only. Last day of the window. Leave empty for today. |
deepScan | boolean | No | New company feed only. Normally the scan stops after 500 numbers in a row that are not new registrations, which finds almost every new company in a fraction of the time. Turn this on to read every number in the bulletins. |
legalForms | array of choices | No | Keep only these legal forms. Leave empty for all. |
voivodeships | array of choices | No | Keep only companies whose registered office is in these voivodeships (regions). Leave empty for all. |
cities | array of text | No | Keep only companies registered in these cities. Spelling without Polish letters works too, for example Lodz. |
postalCodePrefixes | array of text | No | Keep only registered offices whose postal code starts with one of these, for example 00 or 30-0. Useful for a district of a big city. |
nameContains | array of text | No | Keep only companies whose registered name contains any of these words. Accents are ignored. |
excludeTerms | array of text | No | Drop companies when the name, city, main activity or statutory purpose contains any of these words. |
pkdCodes | array of text | No | Keep only companies with these PKD activity codes or code prefixes, for example 62 for software, 62.01 or 62.01.Z. |
pkdScope | enum | No | Whether the PKD filter looks at every activity the company registered or only its main (predominant) one. |
registeredFrom | date | No | Keep only companies first registered in KRS on or after this date. |
registeredTo | date | No | Keep only companies first registered in KRS on or before this date. |
minShareCapital | number | No | Keep only companies with at least this share capital. Entities without a published capital are dropped when this is set. |
maxShareCapital | number | No | Keep only companies with at most this share capital. |
onlyWithWebsite | boolean | No | Keep only companies that published a website address in the register. |
onlyWithEmail | boolean | No | Keep only companies that published an email address in the register. Only a minority of entities do. |
onlyWithFinancialStatements | boolean | No | Keep only companies whose register shows at least one annual financial statement filed. |
latestStatementYearFrom | integer | No | Keep only companies whose latest filed annual statement ends in this year or later, for example 2025 to find companies that are up to date with their filings. |
statuses | array of choices | No | Keep only companies with one of these statuses, worked out from the sections the register publishes. Struck-off entities are only reachable by number in lookup and monitor modes. |
onlyWithArrears | boolean | No | Keep only companies that have an entry about arrears subject to enforcement (zaległości) in the register. |
boardMemberNameContains | array of text | No | Keep only companies where a management board member, proxy or supervisory board member name contains any of these. Natural persons are masked by the open register (for example J***** K*******), so this works best with a first letter or with legal-entity members. |
boardRoleContains | array of text | No | Keep only companies with a management board member or proxy whose role contains any of these words, for example PREZES or PROKURENT. |
minBoardMembers | integer | No | Keep only companies with at least this many management board members. |
maxBoardMembers | integer | No | Keep only companies with at most this many management board members. |
onlyWithSupervisoryBoard | boolean | No | Keep only companies that have a supervisory board (rada nadzorcza) or audit committee with members listed. |
shareholderNameContains | array of text | No | Keep only companies owned by a shareholder or partner whose name contains any of these. Corporate shareholders are shown in full, which makes this a way to find the subsidiaries of a group. |
shareholderKrs | array of text | No | Keep only companies that list one of these KRS numbers as a corporate shareholder or partner. |
onlyWithCorporateShareholders | boolean | No | Keep only companies whose shareholders include another company or institution. |
outputSections | array of choices | No | Core identity, address, capital, status and filing summary are always included. Pick the extra blocks you want. History, VAT status, bank accounts and EU VAT cost extra requests, so they are off by default. |
historyEntriesLimit | integer | No | When history is on, how many of the most recent register entries are listed. Name, address, capital and board timelines always cover the whole history. |
monitorName | text | No | A short name for this watchlist or feed, for example polish-targets. Monitor mode needs it to remember each company. In the feed modes it makes the run return every company only once across scheduled runs. |
monitorFields | array of choices | No | Monitor mode only. Which kinds of change to report. Leave empty to report every change. |
emitBaseline | boolean | No | Monitor mode only. On the first run for a company there is nothing to compare with. When on, the company is returned once with change status baseline so you can see what is being watched. |
monitorFullRescan | boolean | No | Monitor mode only. By default big watchlists are checked against the daily court bulletin and only companies with a new register entry are read again. Turn this on to read every company every run. |
maxResults | integer | No | Stops after this many company records. Free plan runs are limited to 25. |
maxScan | integer | No | Feed and range modes read many companies that the filters then drop. This caps how many are read in one run. Free plan runs are limited to 150. |
proxyConfiguration | proxy | No | The public registers answer without a proxy, so the default connects directly. If the direct route keeps failing the run switches once to a datacenter proxy by itself. |
📦 Data table
Core identity, address, capital, status and filing summary are in every row. Fields the register does not publish for a company are left out, never filled with placeholders.
| Field | Type | Description |
|---|---|---|
krs | text | 10-digit KRS number. |
register | text | P for the entrepreneurs register, S for associations and other social organisations. |
name, legalForm | text | Registered name and legal form as published. |
status | text | active, suspended, inLiquidation, inBankruptcy, inRestructuring, dissolved or deregistered, worked out only from the entries the register shows. |
nip, regon, nipStatus | text | Tax and statistical numbers as published. |
registrationDate, deregisteredOn | date | First KRS registration and, for struck-off entities, the date of removal. |
lastEntryNumber, lastEntryDate, extractAsOf | number / date | The register's own change counter, the date of the latest entry and the date the extract is current to. |
addressLine, street, houseNumber, apartmentNumber, postalCode, city, voivodeship, county, municipality, country | text | Registered office, split into parts. |
website, email, eDeliveryAddress | text | Contact details exactly as the entity published them. Only some entities publish them. |
shareCapital, paidUpCapital, shareCapitalCurrency, sharesCount, shareNominalValue, sharesInfo | number / text | Capital figures as published. |
isSuspended, isInLiquidation, isInBankruptcy, isInRestructuring, isDissolved, hasTaxArrears | boolean | Plain flags for the legal situation. |
mainActivityCode, mainActivity | text | Main PKD activity code and description. |
hasFinancialStatements, financialStatementsFiled, latestStatementPeriodEnd, latestStatementFiledOn | mixed | Summary of annual statements filed with the register. |
managementCount, supervisoryBoardCount, proxiesCount, shareholdersCount, branchesCount | number | Headcounts of the people and units listed. |
corporateOwnerKrs | array | KRS numbers of company shareholders and partners, ready for joins and group mapping. |
management, managementBody, representationRule, supervisoryBoard, proxies, liquidators | array / text | Board sections: role and name as published, who may sign for the company. |
shareholders, partners, soleShareholder, supervisingAuthority | array / object | Ownership sections. Company owners carry their KRS and REGON. |
otherActivities, activityCodes, statutoryPurpose | array / text | All registered PKD activities and, for associations and foundations, their stated purpose. |
financialStatements, consolidatedStatements, auditorOpinionPeriods, noFilingObligationPeriods, fiscalYearEnd | array / text | Every filing the register mentions, with the period and the filing date. |
suspensions, liquidation, dissolution, bankruptcy, restructuring, taxArrears, enforcementDiscontinued, bankruptcyPetitionDismissed, curators, mergersAndTransformations | array / object | Risk and legal events with dates, courts and case numbers where the register has them. |
branches | array | Branches and local units with their addresses (optional section). |
registerEntriesTotal, registerEntriesByYear, registerEntries | number / object / array | History section: every register entry with date, court and case number. |
nameHistory, legalFormHistory, addressHistory, capitalHistory, websiteHistory, managementHistory, supervisoryHistory, proxyHistory, shareholderHistory, currentNameSince, currentAddressSince | array / date | History section: dated timelines of what changed and when. |
vatStatus, vatRegisteredOn, vatRemovedOn, vatListAddress, isOnVatList, bankAccountsCount, bankAccounts | mixed | VAT white list section: VAT status, registration and removal dates, bank account count and optionally the account numbers. |
euVatValid, euVatCheckedAt | boolean / text | EU VAT validity from VIES (optional section). |
isNewRegistration | boolean | New company feed only: true for entities first registered inside your window. |
changeStatus, changedFields, changedGroups, changes, previousLastEntryNumber, previousLastEntryDate | mixed | Monitor mode only: baseline or changed, with the exact before and after of every changed field. |
foundBy, foundByValue, sourceUrl, scrapedAt | text | Which number you gave, the register page the row was read from, and the read time. |
Example row (trimmed):
{"krs": "0000006865","register": "P","name": "CD PROJEKT RED SPÓŁKA AKCYJNA","legalForm": "SPÓŁKA AKCYJNA","status": "active","nip": "7342867148","regon": "49270733300000","registrationDate": "2001-04-06","addressLine": "JAGIELLOŃSKA 74, 03-301 WARSZAWA","voivodeship": "MAZOWIECKIE","website": "WWW.CDPROJEKT.COM","shareCapital": 99910510,"shareCapitalCurrency": "PLN","mainActivityCode": "62.10.A","mainActivity": "DZIAŁALNOŚĆ W ZAKRESIE PROGRAMOWANIA GIER KOMPUTEROWYCH","hasFinancialStatements": true,"latestStatementPeriodEnd": "2025-12-31","managementCount": 7,"management": [{ "type": "person", "name": "P**** M***** N**********", "role": "CZŁONEK ZARZĄDU" }],"financialStatements": [{ "periodFrom": "2025-01-01", "periodTo": "2025-12-31", "filedOn": "2026-06-30" }],"vatStatus": "Czynny","bankAccountsCount": 59,"euVatValid": true}
The open register masks the names of natural persons, for example P**** M***** N**********. The Actor returns names exactly as published. Companies and institutions that act as shareholders or board members are shown in full, with their KRS number.
💰 Pricing
You pay per company record saved. Pricing is pay per result, a run that saves nothing costs nothing, and there are no subscriptions. The price per record drops on higher Apify plans. Heavy sections such as full history do not cost extra per record.
Free plan runs are limited to 25 records per run, 150 companies read, 3 runs per day and a short wait between runs. Paid plans have no such limits.
⭐ Enjoying Poland KRS Scraper: Krajowy Rejestr Sądowy Data, Feed, Monitor?
|
⭐ ⭐ ⭐ ⭐ ⭐ Replace a morning of register searches with one scheduled run. A 5-star rating takes 10 seconds and helps other KYB analysts, sales teams and accountants find it. Your feedback also tells us what to build next. |
| ★ Rate this Actor on Apify |
⚖️ Data source and public data note
The data comes from public services of the Polish state: the open KRS data of the Ministry of Justice, the VAT white list of the Ministry of Finance and the European Commission's VIES service. This Actor is independent and is not affiliated with, endorsed by or operated by the Ministry of Justice, the Ministry of Finance or the European Commission.
The KRS is a public register by law. The Actor reads only what the register publishes and does not log in anywhere. It does not return PESEL numbers or birth dates, and it does not guess, score or enrich people. Names of natural persons stay masked as the register publishes them. You are responsible for using the data in line with GDPR and Polish law, including the purpose and legal basis of any outreach.
❓ FAQ
Jak sprawdzić spółkę w KRS po numerze NIP?
In English: how do I check a company in the KRS by NIP? Put the NIP in the NIP numbers field and run Lookup. The Actor matches it to a KRS number through the public VAT white list, so it works for VAT-registered companies that have a KRS entry. Companies without a KRS entry, such as sole proprietors, are listed in the run summary as having no KRS number.
Gdzie znaleźć nowo zarejestrowane spółki w KRS?
In English: where can I find newly registered companies in the KRS? Use the New company feed mode. Set days back or a from and to date, add filters such as legal form, voivodeship or PKD, and schedule it daily with a monitor name so each company is returned once.
Does it find every new company?
Measured on 13 October 2026, the feed found all 268 registrations of that day while reading about a third of the day's register entries. Turn on deep scan to read every entry in the window.
Can I search by company name?
Not directly. The search page of the register sits behind a protection layer, so name search is not offered. Use KRS, NIP or REGON numbers, or use the feeds with the name filter on a date window.
Does it return financial figures?
It returns the list of annual statements and consolidated statements filed, with periods and filing dates, so you can see who is up to date. It does not parse revenue or profit from the statements.
Do I get full names of board members?
Only as the open register publishes them. Natural persons appear masked, for example P**** M***** N**********. Companies and institutions that sit on a board or hold shares appear in full with their KRS number.
How does the monitor work?
Give the run a monitor name and a list of companies. The first run saves a snapshot of each company. Later runs return only companies whose watched fields changed, with the before and after values. Large lists are checked against the daily list of register entries, so a daily run stays fast.
Do I need an account, API key or proxy?
No. The sources are public and need no login, key or token. The Actor connects directly and switches to a proxy on its own only if the direct route keeps failing.
🔗 Other actors
- Ceneo Scraper Opinie: Ratings, Verified Buyers, Pros and Cons ↗ - Polish product reviews from Ceneo.pl with ratings and verified-purchase status.
- NoFluffJobs Scraper: Tech Jobs, Salaries and Skills, No Login ↗ - Polish and Central European tech jobs with salary ranges.
- OLX Marketplace Scraper: Prices and Postal Codes, 7 Countries ↗ - Classified ads from OLX in Poland and six more countries.
- BUSINESS.bg scraper: Bulgarian company leads, фирмени контакти ↗ - Bulgarian company listings with contacts.
- Japan Company Scraper: 4.5M+ gBizINFO Records ↗ - Japanese corporate registry records with capital and headcount.