Poland KRS Financial Statements Scraper
Pricing
from $40.00 / 1,000 financial statements
Poland KRS Financial Statements Scraper
Extract structured financial statements - balance sheets, income statements, assets, equity, revenue, net profit - from official public company filings. Parses XML, XHTML, and iXBRL into JSON. Use in credit-risk or M&A due-diligence workflows. Pay-per-result.
Pricing
from $40.00 / 1,000 financial statements
Rating
0.0
(0)
Developer
getregdata
Maintained by CommunityActor stats
0
Bookmarked
86
Total users
11
Monthly active users
23 hours
Issues response
5 days ago
Last modified
Categories
Share
Poland KRS Financial Statements Scraper (eKRS) | Sprawozdania finansowe z KRS
Extract official financial statements - balance sheet, income statement, assets, equity, revenue, and net profit - from Poland's National Court Register (eKRS), as structured JSON. Give a KRS or NIP number and get parsed financials back in seconds, beyond what the register's one-file-at-a-time manual download allows.
No login, no API key, no proxy, nothing to configure - just provide a KRS or NIP and run it.
What data do you get?
One record per company, with the key metrics parsed out of the filed statement:
{"krs": "0000023302","companyName": "KGHM POLSKA MIEDŹ SPÓŁKA AKCYJNA","legalForm": "SPÓŁKA AKCYJNA","statementType": "individual","year": 2024,"periodStart": "2024-01-01","periodEnd": "2024-12-31","fileFormat": "xhtml","financials": {"totalAssets": 50405000000,"equity": 31154000000,"revenue": 29894000000,"netProfit": 2788000000},"success": true}
Parsed financial metrics - Balance sheet: totalAssets, fixedAssets, currentAssets, cashAndEquivalents, equity, shareCapital, longTermLiabilities, shortTermLiabilities. Income statement: revenue, operatingProfit, grossProfit, netProfit. Statements filed as structured XML (Polish Accounting Standards) parse most completely; XHTML visual renders (common among large listed companies) are parsed best-effort and carry a _lowConfidence flag - cross-check those against the raw file (rawXml / rawXmlUrl).
Figures are checked against the filing's own arithmetic before they are published. _parseQuality reports the outcome - verified (the statement's subtotals and the balance-sheet identities confirm what was read), unverified (the filing states too few subtotals to check), or rejected (they contradict each other, so the affected figures are withheld rather than published). XML filings also carry _rzisVariant (kalk or por), the statutory income-statement variant the letters were read under; an income statement in a variant this actor does not recognise is left null and the balance sheet is still returned. parsedNumbers tells you at row level whether any figure survived.
| Field | Description |
|---|---|
krs / nip | KRS number (10 digits) and the NIP used for lookup |
companyName / legalForm | Full legal name and form from KRS |
statementType | individual (jednostkowe) or consolidated (skonsolidowane) |
year / periodStart / periodEnd | Financial year and reporting period |
fileFormat | xml, xhtml, or pdf |
financials | Parsed metrics (see above); null for PDF filings |
parsedNumbers | true when figures were extracted and validated. false when the filing's layout could not be read reliably - every figure is then null and the full source document is supplied instead. Gate on this before consuming figures. |
rawXml / rawXmlUrl | Complete raw file, inlined or linked when large |
largeStatement | true if the file is over 1 MB |
success | Whether the statement was retrieved. true even when parsedNumbers is false, because the source document is still delivered |
How much do the KRS financials cost?
Pay per event - you pay only for successful results.
| Event | Price |
|---|---|
| Actor start (per run) | $0.01 |
| Financial statement returned (per company, includes the first 1 MB) | $0.06 |
| Large statement (per extra MB over 1 MB) | $0.08 |
A typical lookup costs $0.07 per company ($0.01 start + $0.06 statement); most companies file small statements (50 KB-1 MB) and stay at that flat price. A lookup that returns nothing (no statement on file, or the NIP is not in the register) costs only the $0.01 start fee. Only genuinely large filings cost more: a 3 MB statement is ~$0.23, a 17 MB consolidated filing (ORLEN / PKO BP / KGHM class) is ~$1.34. Use maxStatementSizeMB (default 25) to cap the size you will fetch - anything larger is skipped with no charge.
If the figures do not parse, the size surcharge is not charged. When a statement is retrieved but its numbers could not be read reliably (parsedNumbers: false, run status Partial:), you pay the $0.06 statement fee for the document itself and none of the per-MB surcharge - however large the file was. So the worst case on an unreadable 8 MB filing is $0.07, not $0.63.
Free plan: Apify Free-plan users get 10 statements per 30 days (statements capped at 5 MB). When the allowance or size cap is reached, the run exits gracefully with a status message - it never fails or hides results as an error. Upgrade to any paid Apify plan for more.
Is it legal, and where does the data come from?
Data comes from the official eKRS register - KRS search at wyszukiwarka-krs.ms.gov.pl and financial documents at rdf-przegladarka.ms.gov.pl, operated by Poland's Ministry of Justice. Companies registered in KRS are legally required to publish their annual financial statements, and the register is public (Polish Commercial Companies Code, Accounting Act). Extraction of this public data is permitted; you remain responsible for lawful use downstream.
How do I use it?
Click Try it and paste this input:
{ "krs": "0000023302" }
Or look up by Tax ID (NIP), which auto-resolves to the KRS: { "nip": "6920000013" }. Using the KRS directly is fastest when you have it.
Input options
| Parameter | Type | Required | Description |
|---|---|---|---|
krs | string | No* | KRS number. Padded to 10 digits if shorter |
nip | string | No* | Polish Tax ID (NIP). Auto-resolves to KRS if no KRS is given |
maxStatementSizeMB | integer | No | Skip (with no charge) statements larger than this. Default 25 |
includeRawXml | boolean | No | Include the raw statement file in the output. Default true |
*At least one of nip or krs must be provided.
What you can do with it
- Credit risk - assess a company's solvency (equity, liabilities, net profit) before extending credit or terms.
- Due diligence - check the financial health of a partner, vendor, or acquisition target from its filed statements.
- Investment research - pull revenue and profit trends for Polish companies straight into a model.
- Competitive intelligence - compare financials across industry peers by KRS.
- KYC / KYB - add filed financial standing to a compliance file, with the raw source document attached.
Run it from code
# cURL - start a run and get the dataset backcurl -X POST "https://api.apify.com/v2/acts/regdata~poland-krs-financial-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{ "krs": "0000023302" }'
// Node.js - apify-clientimport { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_TOKEN' });const run = await client.actor('regdata/poland-krs-financial-scraper').call({ krs: '0000023302' });const { items } = await client.dataset(run.defaultDatasetId).listItems();
# Python - apify-clientfrom apify_client import ApifyClientclient = ApifyClient("YOUR_TOKEN")run = client.actor("regdata/poland-krs-financial-scraper").call(run_input={"krs": "0000023302"})items = client.dataset(run["defaultDatasetId"]).list_items().items
Integrations
Runs anywhere Apify does: call it from the REST API, schedule recurring financial pulls, pipe results into n8n / Make / Zapier, or use it from any MCP client (Claude, Cursor) via mcp.apify.com.
FAQ
Is it legal to scrape eKRS financial statements? Yes. KRS-registered companies are legally required to publish annual statements, and the register is public. Extraction of public data is permitted; you remain responsible for lawful use downstream.
Do I need an account, API key, or proxy? No - none of them. Just provide a KRS or NIP and run it; you only need an Apify account.
What do I pay if a company has no statement on file? Only the $0.01 start fee - no statement charge. A "no statements found" result is a real answer, not a failure.
Why did a large company's statement cost more? Statements over 1 MB incur a small per-MB surcharge (large listed companies file 3-17 MB documents). The largeStatement flag marks these, and maxStatementSizeMB lets you cap what you fetch.
Which formats parse best? Structured XML (Polish Accounting Standards) parses most completely and accurately. Some filers instead submit a PDF, which the register serves as a visual XHTML render; those are read by layout, and where the layout is not readable the figures are withheld rather than guessed - the record then has parsedNumbers: false, every figure null, and the complete source document in rawXml / rawXmlUrl. Figures that are returned from these filings are checked against the balance sheet's own arithmetic (_parseQuality: "verified"). PDF filings return metadata only.
Why does a record sometimes have no figures? Because we would rather return nothing than return a number we cannot stand behind. These filings are scanned or PDF-rendered documents with no machine-readable structure; when the layout cannot be read reliably the figures are withheld and the full source document is provided instead, so you can extract or review it yourself. Check parsedNumbers to branch on this.
What export formats are supported? JSON, CSV, Excel, or XML, or read live via the API.
Limitations
- PDF filings cannot be parsed into structured financials (a minority) - metadata is still returned.
- XHTML visual renders (PDFs converted by the register) are read by layout. Where the layout cannot be read reliably the figures are withheld -
parsedNumbers: falseand every figurenull- rather than reported as approximations. Returned figures are validated against the balance sheet's own arithmetic. Structured XML parses most accurately, and the raw content is always available either way. - Only the latest annual statement is returned; historical statements are not yet supported.
- Very large statements (over
maxStatementSizeMB, default 25 MB) are skipped with no charge. - Newly registered or exempt micro-entities may have no statements on file.
Related actors
Part of a suite of official government registry actors - no public API to build or maintain, pay per result, nothing to configure.
| Country | Actors |
|---|---|
| Poland | BDO · CRBR · KRS (financials) (this actor) · EKW · KNF · KRS (board) · KRZ · MSiG · KYB check · PEP (Sejm) · REGON (sites) · REGON · UOKiK |
| Germany | Insolvenzbekanntmachungen · Handelsregister |
| Spain | BORME · Registro Mercantil · Registro Público Concursal |
| Italy | INI-PEC · Registro Imprese |
| Austria | Ediktsdatei · WKO |
| France | Societe.com |
| Belgium | KBO / BCE |
| Czechia | ISIR |
| Slovakia | RPVS |
| Cyprus | DRCOR |
| Ireland | CRO |
| Portugal | Publicações MJ |
| Nigeria | CAC |
| Colombia | RUES |
| USA | California SoS · California UCC |
| UAE | ADGM |
| Global | Adverse media |
Common combinations: company register -> UBO -> insolvency/debtors -> adverse media is the standard KYB/onboarding chain.
For Poland that whole chain is one call: Poland KYB Risk Check takes a NIP or KRS and returns identity, beneficial owners and insolvency - screened against the company and every beneficial owner - as a single verdict. The component registry lookups it runs bill as usual, plus a small orchestration fee.
Full suite: apify.com/regdata · Callable from any MCP client via mcp.apify.com
Informacje po polsku
Czym jest ten aktor?
Ten aktor pobiera oficjalne sprawozdania finansowe z Krajowego Rejestru Sadowego (KRS) - bilans, rachunek zyskow i strat, aktywa, kapital wlasny, przychody i zysk netto. Podaj numer KRS lub NIP, a aktor znajdzie i pobierze najnowsze roczne sprawozdanie z portalu eKRS i sparsuje je do ustrukturyzowanego JSON. Bez klucza, bez rejestracji, bez proxy.
Dla kogo?
Dla analitykow ryzyka kredytowego oceniajacych wyplacalnosc kontrahentow, funduszy inwestycyjnych analizujacych wyniki spolek, dzialow compliance weryfikujacych kondycje finansowa partnerow, kancelarii prawnych prowadzacych due diligence oraz firm consultingowych porownujacych dane finansowe w branzach.
Jak zaczac?
Podaj numer KRS lub NIP i uruchom aktora - nic nie trzeba konfigurowac. Uzyj KRS bezposrednio dla szybszych wynikow. Bez subskrypcji - placisz tylko za faktyczne uzycie.
Sprawozdania finansowe z KRS - dane finansowe online
Automatyczne pobieranie sprawozdan finansowych z portalu eKRS. Bilans, rachunek zyskow i strat, aktywa, pasywa, przychody i zysk netto - w formacie JSON. Wyszukiwanie po numerze KRS lub NIP. Bez klucza, bez rejestracji, bez proxy. Idealne dla analitykow finansowych, firm audytorskich i systemow due diligence.