getregdata
RegistryPoland

Poland KRS Financial Statements API

Annual financial statements and filings from the National Court Register. You get clean, structured records with the source registry attached - keyed off the KRS identifier.

Run KRS (financials) on Apify Install the skills
What you get
  • →Structured JSON, not HTML or PDFs
  • →Source registry attached to every record
  • →Read live at query time - current filings
  • →Queried by KRS or company name
python · regdata/poland-krs-financial-scraper
from apify_client import ApifyClient

client = ApifyClient("apify_api_xxxxx")
run = client.actor("regdata/poland-krs-financial-scraper").call(
    run_input={"krs": "0000057567"}
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
Fields

What each KRS (financials) record contains

FieldWhat it holds
krs / nipKRS number (10 digits) and the NIP used for lookup
companyName / legalFormFull legal name and form from KRS
statementTypeindividual (jednostkowe) or consolidated (skonsolidowane)
year / periodStart / periodEndFinancial year and reporting period
fileFormatxml, xhtml, or pdf
financialsParsed metrics (see above); null for PDF filings
parsedNumberstrue 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 / rawXmlUrlComplete raw file, inlined or linked when large
largeStatementtrue if the file is over 1 MB
successWhether the statement was retrieved. true even when parsedNumbers is false, because the source document is still delivered
Sample record (JSON, people masked)
{
  "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
}
Limitations

What it does not do

  • 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: false and every figure null - 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.
  • Register maintenance breaks. The Ministry takes the register offline now and then (its site shows "Przerwa techniczna"). A run that meets one keeps trying for a couple of minutes, then fails with a status message that names the break. Nothing is charged; re-run once the register is back.
Serves these use cases
Contract & ESG compliance auditInsolvency & credit-risk watchlist
FAQ
Does KRS (financials) have an API?

KRS (financials) (Poland) does not offer a clean public API for programmatic queries. getregdata reads the official source directly and returns structured JSON, keyed off the KRS identifier - so you get API-like access without an official endpoint.

How do I get KRS (financials) data programmatically?

Install the getregdata agent skills or MCP server, or run the regdata/poland-krs-financial-scraper actor on Apify. Query by KRS or company name and receive structured, source-attributed records. It is free to install; you pay per result on Apify.

What data does KRS (financials) return?

Annual financial statements and filings from the National Court Register.

Get a free sample of KRS (financials) data

Not ready to run it yourself? Tell us which companies or filters you need. We run it once and send you the file, and a quote if you want it regularly. No newsletter, no sales calls.

We reply within one business day.

Prefer e-mail? [email protected] · We use your details only to answer you. Privacy

Related guides
Cross-Border Credit Risk: Screen Companies Across Poland + Austria in 2 API Calls 6 min → Austrian Insolvency Monitoring Without IWG License: Ediktsdatei on Apify 4 min → MGBI / iMSiG Alternative: Pay-Per-Result Polish Insolvency Data 3 min → European Business Registry Data as Agent Skills 4 min →
Other Poland registries
pl
KYB check
Poland

One call: identity, beneficial owners and insolvency screened against the company and every owner, as a single verdict.

NIP or KRS → ✓ Verified
pl
CRBR
Poland

Ultimate beneficial owners from the Central Register of Beneficial Owners.

NIP → ✓ Verified
pl
KRS (board)
Poland

Management and board members registered in the National Court Register.

KRS → ✓ Verified
pl
KRZ
Poland

Insolvency and restructuring entries from the National Debtor Register.

NIP → ✓ Verified
pl
EKW
Poland

Ownership and mortgage entries from the electronic land and mortgage register.

KW → ✓ Verified
pl
REGON
Poland

Company identity, PKD activity and status from the official GUS registry.

REGON → ✓ Verified
pl
KNF
Poland

Regulated financial entities from the KNF supervision registers.

entity → ✓ Verified
pl
MSiG
Poland

Official court and commercial announcements from Monitor Sądowy i Gospodarczy.

KRS → ✓ Verified
pl
UOKiK
Poland

Abusive contract clauses from the UOKiK consumer-protection registry.

clause → ✓ Verified
pl
BDO
Poland

Waste-management registration entries from the BDO database.

BDO → ✓ Verified
pl
PEP (Sejm)
Poland

Politically exposed persons from the Polish parliament for KYC/AML screening.

person → ✓ Verified
pl
REGON (sites)
Poland

Local units and premises (jednostki lokalne) from the REGON registry.

REGON → ✓ Verified