Poland KRS Company Register Scraper avatar

Poland KRS Company Register Scraper

Pricing

from $12.75 / 1,000 results

Go to Apify Store
Poland KRS Company Register Scraper

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

Scrapers Lat

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

12 hours ago

Last modified

Share

Poland KRS Company Register Scraper

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

Apify Coverage Output Billing

Table of contents

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

FieldTypeRequiredDefaultDescription
krsNumberstringno0000006646A single KRS number to look up. 10 digits, with or without leading zeros (for example 0000006646 or 6646).
krsNumbersstring[]no["0000006646","0000489679"]A list of KRS numbers to look up in one run. Each is 10 digits, with or without leading zeros.
maxCompaniesintegerno10Maximum number of companies to collect.
enrichContactsbooleannofalseOptional 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.
enrichContactsMaxintegerno50Cap 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.

FieldTypeDescription
krsNumberstringKRS number (unique).
registerstringRegister section code, for example P (entrepreneurs).
namestringFull registered company name.
legalFormstringLegal form, for example SPÓŁKA JAWNA.
regonstringREGON statistical number, or null.
nipstringNIP tax number, or null.
isPublicBenefitbooleantrue when registered as a public benefit organization.
statusstringRegister status, for example Aktualny (current).
registrationDatestringRegistration date (DD.MM.YYYY).
asOfDatestringDate the register snapshot is current as of.
lastEntryNumberintegerNumber of the latest register entry.
lastEntryDatestringDate of the latest register entry.
addressstringFull single-line registered address.
streetstringStreet.
buildingNumberstringBuilding number.
apartmentNumberstringApartment or suite number, or null.
postalCodestringPostal code.
citystringCity.
communestringCommune (gmina).
countystringCounty (powiat).
voivodeshipstringVoivodeship (province).
countrystringCountry.
shareCapitalobjectShare capital as { value, currency } when applicable, else null.
representationRulestringRule for how the company is represented, or null.
representationBodystringName of the representation body, or null.
officersobject[]Officers on file. Each has name, isOrganization, krs, regon, role, proxyType, shares, holdsAllShares, suspended.
proxiesobject[]Registered proxies (prokurenci), same shape as officers.
partnersobject[]Partners or shareholders on file, same shape as officers.
mainActivityobjectPrimary PKD activity as { code, description }, or null.
otherActivitiesobject[]Additional PKD activities, each { code, description }.
urlstringKRS search portal URL.
sourcestringAlways Poland KRS (National Court Register).
observedAtstringISO 8601 timestamp of when the record was collected.
enrichedEmailstringContact enrichment add-on only: found public business email, or null.
enrichedContactNamestringContact enrichment add-on only: contact person name, or null.
enrichedEmailStatusstringContact enrichment add-on only: verified, likely, guessed, or not_found.
errorstringnull 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:

# JSON
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"
# CSV
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"
# Paginate large datasets
curl "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 (result event). See the pricing tab for the current per-result price.
  • Contact enrichment add-on. When enrichContacts is 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 error field and does not charge for it. Empty runs cost nothing.
  • Spend cap respected. Set maxTotalChargeUsd on 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.

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.