Poland KRS Financial Scraper
Pricing
Pay per event
Poland KRS Financial Scraper
Extract official Polish KRS financial filing mentions by KRS number for compliance, credit-risk, accounting, and enrichment workflows.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Extract public financial filing mentions from official Polish KRS current extracts by KRS number.
What does Poland KRS Financial Scraper do?
Poland KRS Financial Scraper reads the official Polish National Court Register current-extract API and turns public financial document mentions into clean dataset rows.
It focuses on the wzmianki o złożonych dokumentach section that records annual financial statements, auditor opinions, approval resolutions, and management/activity reports.
Who is it for?
- 🧾 Accounting firms checking whether Polish clients filed annual statements
- 🏦 Credit-risk analysts monitoring counterparties
- 🕵️ Compliance teams documenting public registry evidence
- 🔁 B2B enrichment teams adding KRS filing history to company records
- 📊 Data teams building periodic Polish company filing monitors
Why use this actor?
- Uses the official public KRS JSON API
- Produces typed records instead of nested Polish registry JSON
- Keeps source URLs and raw filing snippets for audit trails
- Supports batches of KRS numbers
- Avoids private accounts and paid documents
What data can I extract?
| Field | Description |
|---|---|
krsNumber | Normalized 10-digit KRS number |
companyName | Company name from the current KRS extract |
filingCategoryLabel | Human-readable filing type |
reportingPeriod | Period/year covered by the filing mention |
submittedAt | Submission date when KRS exposes it |
latestEntrySignature | Latest KRS/RDF case signature from the extract |
sourceApiUrl | Official API URL used for the record |
rdfViewerUrl | Public RDF viewer reference |
rawFiling | Original filing mention object |
How much does it cost to scrape Poland KRS financial filings?
The actor uses pay-per-event pricing: a small run start charge and a per-result charge for each saved filing mention.
Your total cost depends on how many KRS numbers you submit and how many filing mentions exist in their public current extracts.
Input
Provide one or more Polish KRS numbers.
{"krsNumbers": ["0000123456", "0000028860"],"maxItems": 100,"includeRawExtract": false,"requestDelayMs": 250}
Input fields
krsNumbers— required list of KRS numbers, with or without leading zeroesmaxItems— maximum records to save across the runincludeRawExtract— attach the full raw official current extract to each itemrequestDelayMs— polite delay between KRS API requests
Output
Each dataset row is one public financial-document mention.
{"krsNumber": "0000123456","companyName": "Example SP. Z O.O.","filingCategoryLabel": "Annual financial statement filed","reportingPeriod": "OD 01.01.2024 DO 31.12.2024","submittedAt": "01.07.2025","sourceApiUrl": "https://api-krs.ms.gov.pl/api/krs/OdpisAktualny/0000123456?rejestr=P&format=json"}
How to run
- Create a new Apify task.
- Paste your KRS numbers into
krsNumbers. - Set
maxItemshigh enough for your batch. - Run the actor.
- Export the dataset as JSON, CSV, Excel, or via API.
Tips for reliable batches
- Use normalized KRS numbers when possible.
- Keep
requestDelayMsabove zero for large monitoring lists. - Turn on
includeRawExtractonly when you need full audit evidence. - Use
maxItemsto control spend for first tests.
Integrations
Use the dataset in:
- CRM enrichment workflows
- Credit-risk scoring pipelines
- Compliance evidence archives
- Accounting client dashboards
- Scheduled Apify tasks that monitor known KRS portfolios
API usage with Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/poland-krs-financial-scraper').call({krsNumbers: ['0000123456'],maxItems: 50});console.log(run.defaultDatasetId);
API usage with Python
from apify_client import ApifyClientclient = ApifyClient('MY-APIFY-TOKEN')run = client.actor('automation-lab/poland-krs-financial-scraper').call(run_input={'krsNumbers': ['0000123456'],'maxItems': 50,})print(run['defaultDatasetId'])
API usage with cURL
curl -X POST 'https://api.apify.com/v2/acts/automation-lab~poland-krs-financial-scraper/runs?token=MY-APIFY-TOKEN' \-H 'Content-Type: application/json' \-d '{"krsNumbers":["0000123456"],"maxItems":50}'
MCP for Claude
Connect Apify MCP with this actor:
https://mcp.apify.com/?tools=automation-lab/poland-krs-financial-scraper
Claude Code setup:
$claude mcp add apify-krs-financial https://mcp.apify.com/?tools=automation-lab/poland-krs-financial-scraper
Claude Desktop JSON config:
{"mcpServers": {"apify-krs-financial": {"url": "https://mcp.apify.com/?tools=automation-lab/poland-krs-financial-scraper"}}}
Example prompts:
- "Check these Polish KRS numbers for recent financial filing mentions."
- "Create a CSV of annual financial statement filing periods for this KRS list."
- "Compare which counterparties have filings covering 2024."
Limitations
This actor extracts public filing mentions from official KRS current extracts. It does not bypass Imperva protection on the RDF browser and does not promise paid/private document contents.
When the official current extract exposes only a period without a submission date for a document type, the output keeps submittedAt as null.
Legality
The actor accesses public registry data. You are responsible for using the data lawfully, respecting privacy rules, and following Apify terms and applicable Polish/EU law.
FAQ
Can I search by company name?
This MVP accepts KRS numbers. Use your CRM, REGON, or another identifier source to resolve company names to KRS numbers first.
Does it download financial statement files?
No. It extracts public filing mentions from the official KRS current extract and links to the public RDF viewer for manual follow-up.
Why are some dates missing?
Some KRS filing mention categories expose a reporting period but not a submission date. The actor keeps the missing field as null instead of guessing.
What happens with invalid KRS numbers?
Invalid strings are ignored during normalization. Valid-looking numbers that the official API does not return are skipped with a warning.
Related scrapers
- https://apify.com/automation-lab/polish-regon-scraper
- https://apify.com/automation-lab/crbr-beneficial-owners-scraper
- https://apify.com/automation-lab/krz-debtor-scraper
Changelog
- Initial version: public KRS financial filing mention extraction by KRS number.
Support
Open an Apify issue if you need additional fields, direct document download support, or company-name search support.
Example monitoring workflow
Run this actor weekly with your KRS portfolio. Compare new dataset rows against your previous export by KRS number, filing type, and reporting period. Alert your team when a new annual statement period appears.
Data quality notes
The actor preserves the official Polish reporting-period text because older records use several historical formats. Downstream systems can normalize these strings if they need a strict date range.
Performance notes
The official JSON API is lightweight. Large batches are usually limited by polite request pacing rather than page rendering.
Export options
Apify lets you export the dataset as JSON, JSONL, CSV, Excel, XML, RSS, or HTML. For BI tools, CSV and Excel are often easiest. For data pipelines, use JSONL or the dataset API.