Polish Company Registry Scraper (KRS) avatar

Polish Company Registry Scraper (KRS)

Pricing

from $1.00 / 1,000 company records

Go to Apify Store
Polish Company Registry Scraper (KRS)

Polish Company Registry Scraper (KRS)

[$2.00 / 1K] Bulk Polish company lookup by NIP or KRS number. Queries the Ministry of Finance VAT white list, the KRS court register and EU VIES. Returns legal name, address, VAT status, published bank accounts, invoice account verification and KRS insolvency. Unmatched rows are free.

Pricing

from $1.00 / 1,000 company records

Rating

0.0

(0)

Developer

deriverge s.r.o.

deriverge s.r.o.

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 hours ago

Last modified

Share

Polish Company Checker

What does Polish Company Checker do?

Polish Company Checker verifies Polish companies in bulk against three official sources at once: the Ministry of Finance VAT white list, the National Court Register (KRS) and EU VIES. Give it a list of NIP or KRS numbers and for each one you get back the name, VAT status, the bank accounts the company has published with the tax office, the KRS status including insolvency, liquidation or restructuring, and an independent VIES confirmation.

Why the white list matters

Since 2020, a payment above 15,000 PLN to a bank account that is not on the supplier's white list entry is not tax-deductible, and the buyer becomes jointly liable for the supplier's VAT. Accountants check this by hand, invoice by invoice. This actor does it in bulk: add the account number from the invoice to the row and the output says whether it is on the white list as of today, together with the request identifier the Ministry issues, which is the proof you keep for an audit.

SourceThe question only it answers
VAT white listIs it an active VAT payer, since when, was it removed, and which accounts did it publish?
KRSDoes the legal entity exist, and is it in insolvency, liquidation or restructuring?
EU VIESDoes the EU confirm the VAT number is valid for cross-border trade?

Fair billing

You pay only for companies that resolve. NIPs that fail the checksum are caught locally and never generate a request. Sources that return no answer are not billed. A run that resolves nothing costs nothing.

Sole proprietors are people

The white list also covers natural persons running a business under their own name. When the entry belongs to a natural person, the name and address are withheld by design. You still learn the VAT status. Sections of the KRS extract that list board members and shareholders are never read at all.

Input

{
"companies": [
"5260250995",
"0000028860",
{ "nip": "7740001454", "bankAccount": "17103015080000000503131100", "reference": "invoice-1187" }
],
"includeKrs": true,
"includeVies": true
}

Strings and objects can be mixed freely. Ten digits with a valid NIP checksum are read as a NIP, any other ten digits as a KRS number; VAT numbers with the PL prefix work as well.

Output

One row per submitted company:

{
"input": "5260250995",
"matched": true,
"entityType": "legal_entity",
"nip": "5260250995",
"krs": "0000010681",
"name": "ORANGE POLSKA SPÓŁKA AKCYJNA",
"vatStatus": "Czynny",
"vatActive": true,
"vatRegisteredOn": "1996-01-01",
"publishedAccounts": ["17103015080000000503131100", "71103015080000000503131098"],
"accountOnWhiteList": true,
"companyActive": true,
"krsProceedings": [],
"vatValidVies": true,
"whiteListRequestId": "iu9tM-98e2fkb",
"riskFlags": []
}

Every value carries provenance: which register said it, at which URL, and when. If a source was down, the affected fields are null and the provenance row says why, never silently guessed.

Watch a list for changes

Checking a supplier once is useful. Checking the same list every morning and reading only what changed is what keeps you out of trouble. Give the run a watch name (or save it as a task and schedule it) and every later run compares its results with the previous one: a company that turned inactive, a new risk flag, a VAT registration cancelled, a published account that disappeared. The differences are stored in the CHANGES record of the run, ready for an integration or an email. The comparison itself is free.

Pricing

EventPrice
Run fee, a tenth of a cent per run that resolves at least one company$0.001
Company resolved$0.004
Each additional source that returned an answer (KRS, VIES, account check)$0.001
Company not foundfree

Frequently asked questions

What does an unmatched row cost? Nothing. Rows that fail the checksum or that no register knows are returned with an explanation and are never charged.

Can I check an invoice account? Yes. Add bankAccount to the row and the output says whether the account is on the white list today, with the Ministry's request identifier as proof.

What if I only have a KRS number? The actor reads the KRS extract first, takes the NIP from it, and continues with the white list and VIES.

Where does the data come from? The Ministry of Finance white list service, the Ministry of Justice KRS open API and EU VIES. All official, all free of charge, every value with its source and timestamp.

How to use Polish Company Registry Scraper (KRS)

  1. Open the actor and fill in companies in the input form, or paste the JSON input from the example above.
  2. Click Start. The first rows appear in the Output tab within seconds; the run summary is in the Storage tab under the key SUMMARY.
  3. Download the results as JSON, CSV or Excel from the Output tab, or read them through the API link shown there.
  4. To run it on a schedule, click Save as a task, set the input once and add a schedule. Scheduled tasks keep their own change snapshot, so the new-only mode works without any extra setup.

Integrations

The actor is available in the Apify apps for Make, Zapier, n8n and Keboola, where you pick it by name and map the input fields. It is also exposed to AI agents through the Apify MCP server, and callable from any language through the Apify API; the API tab on this page has ready-made snippets for Node.js, Python and curl. Every run can post its results to a webhook when it finishes.

Support

Questions and problems go into the Issues tab of this actor. Each issue is answered by the maintainer, and fixes ship as new builds without any change on your side.

This is the Polish sibling of our Czech and Slovak, Romanian, Estonian, Lithuanian, Latvian and Bulgarian company checkers. They share the same validation engine and the same billing rule: unmatched rows are free.