Poland KRS Company Registry Scraper
Pricing
from $0.05 / 1,000 krs record extracteds
Poland KRS Company Registry Scraper
Extract public Polish KRS company registry records by KRS number. Export names, IDs, addresses, representatives, activities, and capital.
Pricing
from $0.05 / 1,000 krs record extracteds
Rating
0.0
(0)
Developer
Hanna Nosova
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Extract public Polish KRS company registry records by KRS number. The actor accepts one or many KRS numbers and returns normalized company identity, address, registration, representative, shareholder/partner, business activity, and capital fields from the official public registry response.
What you can do with it
- Enrich B2B lead lists with Polish company names, NIP, REGON, legal form, and address.
- Check compliance records for known KRS numbers in repeatable batches.
- Build market research datasets from official public registry extracts.
- Normalize pasted KRS numbers from spreadsheets into machine-readable JSON, CSV, or Excel exports.
Who is it for?
Compliance teams, sales operations, B2B data vendors, researchers, and analysts who already have KRS numbers and need structured company registry exports without manually opening registry pages one by one.
Input recipes
This example section can be pasted into the Apify Console input editor or sent through the API.
Look up two entrepreneurs-register companies
{"krsNumbers": ["0000123456", "0000247804"],"register": "P","maxConcurrency": 2,"delayMs": 250}
Paste KRS numbers from a spreadsheet
{"krsNumbersText": "123456\n247804","register": "P","includeRawOdpis": false}
Input
| Field | Type | Description |
|---|---|---|
krsNumbers | array of strings | KRS numbers to look up. Leading zeros are optional. |
krsNumbersText | string | Optional pasted newline/comma/semicolon/space-separated KRS numbers. |
register | string | P for entrepreneurs (default) or S for associations/foundations. |
includeRawOdpis | boolean | Include the full raw official response for successful records. |
maxConcurrency | integer | Parallel requests, 1-5. Default is 2. |
delayMs | integer | Delay before each request. Default is 250 ms. |
Output
Each dataset item represents one requested KRS number. Successful records have status: "active"; missing or failed records include status and errorMessage.
{"krsNumber": "0000123456","register": "P","snapshotDate": "20.11.2025","legalName": "RODENSTOCK POLSKA SPÓŁKA Z OGRANICZONĄ ODPOWIEDZIALNOŚCIĄ","legalForm": "SPÓŁKA Z OGRANICZONĄ ODPOWIEDZIALNOŚCIĄ","nip": "6342373405","regon": "27676445600000","address": {"country": "POLSKA","voivodeship": "MAZOWIECKIE","city": "WARSZAWA","street": "AL. ALEJE JEROZOLIMSKIE","houseNumber": "123A","postalCode": "02-017"},"registrationDate": "25.07.2002","lastEntryDate": "01.07.2025","court": "SYSTEM","status": "active","representatives": [{ "firstName": "V*****", "lastName": "N******", "function": "WICEPREZES ZARZĄDU SPÓŁKI" }],"shareholdersOrPartners": [{ "name": "RODENSTOCK BETEILIGUNGEN AUSLAND GMBH", "shares": "1200 UDZIAŁÓW O ŁĄCZNEJ WARTOŚCI 1.200.000 PLN" }],"businessActivities": [{ "code": "46.90.Z", "description": "SPRZEDAŻ HURTOWA NIEWYSPECJALIZOWANA", "isPrimary": true }],"shareCapital": { "amount": "1200000,00", "currency": "PLN" },"sourceUrl": "https://api-krs.ms.gov.pl/api/krs/OdpisAktualny/0000123456?rejestr=P&format=json","scrapedAt": "2026-07-07T09:00:00.000Z"}
Output fields
krsNumber, register, snapshotDate, legalName, legalForm, nip, regon, address, registrationDate, lastEntryDate, court, status, representatives, shareholdersOrPartners, businessActivities, shareCapital, rawOdpis (optional), sourceUrl, scrapedAt, and errorMessage for failed lookups.
Pricing
The actor uses pay-per-event pricing:
- Start:
$0.005per run. - KRS record extracted:
$0.000079009per successful registry extract on the BRONZE tier, with standard Apify tier discounts for higher plans.
Missing or failed KRS numbers are saved with an error status but are not charged as successful extracts.
API usage
Run the actor from the Apify API.
cURL
curl "https://api.apify.com/v2/acts/fetch_cat~poland-krs-company-registry-scraper/runs?token=$APIFY_TOKEN" \-H 'Content-Type: application/json' \-d '{"krsNumbers":["0000123456"],"register":"P"}'
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('fetch_cat/poland-krs-company-registry-scraper').call({krsNumbers: ['0000123456'],register: 'P',});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
from apify_client import ApifyClientimport osclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('fetch_cat/poland-krs-company-registry-scraper').call(run_input={'krsNumbers': ['0000123456'],'register': 'P',})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
MCP / agent usage
Use this actor from AI agents through Apify MCP:
https://mcp.apify.com/?tools=fetch_cat/poland-krs-company-registry-scraper
Add it to Claude Desktop or Claude Code:
$claude mcp add apify-krs --url "https://mcp.apify.com/?tools=fetch_cat/poland-krs-company-registry-scraper"
Example MCP server JSON configuration:
{"mcpServers": {"apify-krs": {"url": "https://mcp.apify.com/?tools=fetch_cat/poland-krs-company-registry-scraper"}}}
Example prompts:
- "Look up KRS 0000123456 in the entrepreneurs register and summarize the company identity fields."
- "Extract KRS records for these numbers and return a CSV-ready table with KRS, name, NIP, REGON, address, and status."
Legality
This actor extracts publicly available Polish KRS registry records for KRS numbers you provide. Use the data in line with applicable privacy, compliance, and database-use rules, especially when combining registry data with other personal or commercial datasets.
Tips and limits
- Use the correct register: most companies are in
P; associations and foundations are usually inS. - Keep
maxConcurrencylow for large batches to avoid unnecessary pressure on the public registry service. - KRS numbers are normalized to 10 digits automatically.
- Personal identifiers in the official response can be masked by the registry; the actor returns what is publicly provided.
Related actors
- CRBR Beneficial Owners Scraper — collect Polish beneficial ownership data where available.
- Email MX Deliverability Verifier — validate company domains and mail infrastructure.
- BuiltWith Domain Tech Stack Scraper — enrich company domains with technology stack data.
FAQ
Do I need a Polish registry account?
No. This actor is designed for public KRS registry extracts available without login.
Can I search by company name?
Not in version 1. This actor is optimized for exact KRS-number lookups.
What should I include in a support request?
Please include the run ID or run URL, your input JSON, expected output, and actual output. If a specific KRS number failed, include that number and the selected register.
Support
If something looks wrong, open an issue on the actor page with the run ID/run URL, input JSON, expected output, and actual output so we can reproduce it quickly.
Changelog
- Initial version: KRS-number lookup, normalized company fields, optional raw response, and batch input support.