Poland KRS Financial Scraper avatar

Poland KRS Financial Scraper

Pricing

Pay per event

Go to Apify Store
Poland KRS Financial Scraper

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

Stas Persiianenko

Maintained by Community

Actor 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?

FieldDescription
krsNumberNormalized 10-digit KRS number
companyNameCompany name from the current KRS extract
filingCategoryLabelHuman-readable filing type
reportingPeriodPeriod/year covered by the filing mention
submittedAtSubmission date when KRS exposes it
latestEntrySignatureLatest KRS/RDF case signature from the extract
sourceApiUrlOfficial API URL used for the record
rdfViewerUrlPublic RDF viewer reference
rawFilingOriginal 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 zeroes
  • maxItems — maximum records to save across the run
  • includeRawExtract — attach the full raw official current extract to each item
  • requestDelayMs — 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

  1. Create a new Apify task.
  2. Paste your KRS numbers into krsNumbers.
  3. Set maxItems high enough for your batch.
  4. Run the actor.
  5. Export the dataset as JSON, CSV, Excel, or via API.

Tips for reliable batches

  • Use normalized KRS numbers when possible.
  • Keep requestDelayMs above zero for large monitoring lists.
  • Turn on includeRawExtract only when you need full audit evidence.
  • Use maxItems to 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 ApifyClient
client = 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.

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.