Poland KRS Company Registry Scraper avatar

Poland KRS Company Registry Scraper

Pricing

from $3.00 / 1,000 results

Go to Apify Store
Poland KRS Company Registry Scraper

Poland KRS Company Registry Scraper

Look up companies, foundations, and associations in Poland's KRS (Krajowy Rejestr Sadowy) by KRS number. Get legal form, REGON/NIP, address, share capital, board members, PKD activity codes, and financial filing history from the official registry API.

Pricing

from $3.00 / 1,000 results

Rating

0.0

(0)

Developer

Crawler Bros

Crawler Bros

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Look up companies, foundations, and associations in KRS — Poland's National Court Register (Krajowy Rejestr Sądowy), maintained by the Ministry of Justice. Get legal form, REGON/NIP tax identifiers, registered address, share capital, board members and proxy holders, business activity (PKD codes), financial statement filing history, and — with the full extract — the complete change history and merger/transformation record. No auth, no proxy, no cookies required.

Data source & limitations

This actor uses api-krs.ms.gov.pl, the Ministry of Justice's official, public, unauthenticated REST API for KRS extracts ("odpisy") — the same backend registry that the KRS search portal (wyszukiwarka-krs.ms.gov.pl) is a front-end for. The search portal itself sits behind an Incapsula WAF that returns a JavaScript challenge page to every zero-cost access method (plain HTTP, TLS-impersonated HTTP requests, and a headless browser with stealth patches were all confirmed blocked); the official API subdomain has no such protection and requires no API key, login, or agreement — it's designed for exactly this kind of machine lookup. As a result, this actor supports exact KRS-number lookup (the core, high-value use case — verifying and enriching a known company) rather than free-text name search.

What this actor does

  • Lookup by KRS number, one or many at once
  • Two registers, plus auto-detect: P (Register of Entrepreneurs), S (Register of Associations, Foundations, and Public Healthcare Institutions), or AUTO to try P then S per number — handy when a batch mixes companies with foundations/associations
  • Two extract types: current state ("Aktualny") or the full historical extract ("Pełny") — every past entry, name change, address change, and board membership since registration
  • Empty fields are omitted — you only ever see fields KRS actually has data for

Output per entity

Always present:

  • krsNumber, name, legalForm, register, registerCode
  • extractType, extractDateTime, stateAsOfDate
  • sourceUrl — the official API URL for this exact lookup

Present when applicable:

  • regon, nip — tax/statistical identifiers
  • registrationDate, lastEntryNumber, lastEntryDate, lastEntryCaseSignature, registeringCourt
  • isPublicBenefitOrg — official Public Benefit Organization (OPP) status
  • previousRegistration — prior register name/number, if the entity predates KRS (registered before 2001)
  • address — region, county, commune, city, street, house/apartment number, postal code, country, fullAddress, email, website
  • branches[] — regional branches/units with their own addresses (associations & foundations, register S)
  • supervisingAuthority — the state authority exercising oversight (associations & foundations, register S)
  • organizationPurpose — the entity's stated mission/purpose (associations & foundations, register S)
  • oppPaidActivities[], oppUnpaidActivities[] — PKD codes for paid vs. unpaid Public Benefit Organization activity scope
  • capital — share capital amount/currency, target/reserve capital, paid-up capital, conditional capital increase, total shares, nominal share value, in-kind contributions (companies with share capital only)
  • shareSeries[] — share issuance series (name, share count, privilege status) for joint-stock companies
  • boardAuthorizedToIssueSubscriptionWarrants — whether the management board is authorized to issue subscription warrants
  • entityDurationPeriod, statuteGrantsPersonalRights, bondholdersHaveProfitShareRight — charter-duration and statute-rights flags
  • statuteAmendments[] — articles-of-association / statute deed & amendment history (capped at 30 most recent)
  • representationBody, representationMethod, representatives[] — board members (name partially masked for privacy, role, suspension status)
  • supervisoryBoard[], proxyHolders[] (with proxy type)
  • mainActivity, otherActivities[] — PKD (Polish business activity classification) codes
  • financialStatementFilings[], consolidatedFinancialStatementFilings[] — submission dates and periods of filed annual (and, for capital groups, consolidated) financial statements
  • firstFiscalYearEndDate — the date the entity's first fiscal year ended
  • entriesHistory[] + entriesHistoryCount (full extract only, capped at 30 most recent) — every court filing entry: description, date, case signature, court
  • dzial4 / dzial5 / dzial6 — liabilities & receivables, receivership/trusteeship, and merger/division/transformation/liquidation/bankruptcy/restructuring history, passed through under their official Polish section keys when populated (these sections cover ~150 granular, low-frequency legal-filing fields; only present when the entity has history in that area)

Every record also includes recordType: "company" and scrapedAt (UTC timestamp).

Input

FieldTypeDefaultDescription
modestringbyKrsNumberLookup mode
krsNumbersarray["0000006865"]KRS registry numbers, e.g. 0000006865
registerstringPP (Register of Entrepreneurs), S (Associations/Foundations), or AUTO (try both)
extractTypestringAktualnyAktualny (current) or Pelny (full history)
publicBenefitOrgOnlyboolfalseOnly emit entities with OPP status
maxItemsint20Hard cap (1–200)

Example: lookup a company (current state)

{
"mode": "byKrsNumber",
"krsNumbers": ["0000006865"],
"register": "P",
"extractType": "Aktualny"
}

Example: full historical extract with complete filing history

{
"mode": "byKrsNumber",
"krsNumbers": ["0000006865"],
"register": "P",
"extractType": "Pelny"
}

Example: lookup a foundation

{
"mode": "byKrsNumber",
"krsNumbers": ["0000030897"],
"register": "S"
}

Use cases

  • KYB / KYC due diligence — verify a Polish counterparty's legal status, registered address, and board composition before onboarding
  • Company registry enrichment — bulk-enrich a list of KRS numbers with legal form, REGON/NIP, and address
  • Corporate history research — pull the full merger/acquisition/transformation history (dzial6) for M&A due diligence
  • Compliance monitoring — track filing entries (entriesHistory) for changes in board composition or capital
  • Nonprofit/NGO research — identify Public Benefit Organizations (register=S, publicBenefitOrgOnly=true)

FAQ

What's KRS? The Krajowy Rejestr Sądowy — Poland's National Court Register, the authoritative public record of every company, partnership, foundation, association, and public healthcare institution registered in Poland. Maintained by the Ministry of Justice (Ministerstwo Sprawiedliwości).

Why P vs S register — how do I know which one a company is in? Businesses, partnerships, and sole traders are in the Register of Entrepreneurs (P). Foundations, associations, and most non-profits are in the Register of Associations (S). If you look up a KRS number under the wrong register, the actor fails soft for that number (no crash, just no record) — try the other register, or set register: "AUTO" to have the actor try both automatically for every number in the batch.

Are board member names fully visible? No — consistent with the official API's own privacy design, names and personal ID numbers (PESEL) for individuals are partially masked with asterisks (e.g. N**********), showing enough to identify a role holder's initial letters while protecting full personal data. This is how the Ministry of Justice's own public API returns this data — not a redaction added by this actor.

What's the difference between Aktualny and Pełny extracts? Aktualny shows only the entity's current state (present address, current board, current name). Pełny includes the complete history: every prior name, address, and board composition change, plus a full list of every court filing entry ever recorded. Pełny extracts are larger and take slightly longer to fetch.

Why are dzial4/dzial5/dzial6 in Polish while everything else is in English? Those sections (liabilities & receivables, receivership, and merger/liquidation/bankruptcy history) cover roughly 150 deep, low-frequency legal-filing field names. Rather than risk a partial or misleading translation, they're passed through under their official Polish section keys — and are almost always absent (most entities have no history in these areas), so in practice they rarely appear in output.

Is authentication required? No. This actor uses the Ministry of Justice's public, unauthenticated KRS extract API — no API key, login, or proxy needed.

How fresh is the data? Real-time — every request reads live from api-krs.ms.gov.pl.