CRBR Beneficial Owners Scraper avatar

CRBR Beneficial Owners Scraper

Pricing

from $0.02 / 1,000 item extracteds

Go to Apify Store
CRBR Beneficial Owners Scraper

CRBR Beneficial Owners Scraper

Search Poland's CRBR public beneficial ownership register by company name, NIP, KRS, or beneficiary details for KYB/AML workflows.

Pricing

from $0.02 / 1,000 item extracteds

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

🇵🇱 CRBR Beneficial Owners Scraper

Extract structured beneficial ownership data from Poland's public Central Register of Beneficial Owners (CRBR). Search by company name, NIP, KRS, or beneficiary details and export compliance-ready KYB/AML records from the official source.

What does CRBR Beneficial Owners Scraper do?

CRBR Beneficial Owners Scraper automates searches on Poland's official CRBR public register and saves normalized rows to an Apify dataset.

It helps you answer questions such as:

  • Who are the beneficial owners of a Polish company?
  • What NIP and KRS identifiers are tied to a CRBR result?
  • Which citizenship and residence country values are public for a UBO?
  • What control or ownership rights are listed in CRBR?
  • What CRBR request ID and timestamp prove the data source?

Who is it for?

This actor is built for teams that need repeatable Polish company ownership checks.

  • 🏦 AML and KYC teams screening Polish business customers.
  • 🧾 KYB onboarding teams enriching company files with UBO data.
  • ⚖️ Compliance analysts collecting official-source evidence.
  • 💳 Credit-risk teams reviewing ownership and control structures.
  • 🕵️ Investigators and journalists researching Polish corporate networks.
  • 🧩 Data teams building registry pipelines across multiple jurisdictions.

Why use this actor?

Manual CRBR searches are fine for one company. They are slow and inconsistent when you have many Polish entities to check.

This actor gives you:

  • Structured JSON and tabular exports.
  • Batch input for many company identifiers.
  • Per-record source metadata.
  • Output fields designed for compliance workflows.
  • Runs on Apify with API, schedules, webhooks, and integrations.

Official source

The actor uses the public CRBR web application at:

https://crbr.podatki.gov.pl/adcrbr/#/wyszukaj

The output includes sourceUrl, CRBR request IDs when returned by the service, and the actor's scrapedAt timestamp.

What data can you extract?

FieldDescription
companyNameFull legal name from CRBR
nipPolish tax identifier
krsPolish court register identifier
legalFormLegal form description
companyAddressRegistered address assembled from CRBR fields
beneficiaryFullNameBeneficial owner's public full name
beneficiaryPeselPESEL when public in CRBR response
beneficiaryCitizenshipsPublic citizenship values
beneficiaryResidenceCountryPublic residence country
controlTypeCRBR control/rights descriptor when available
ownershipPercentageOwnership percentage when CRBR provides a numeric value
rightsSummaryHuman-readable summary of rights/control fields
requestIdCRBR request identifier
presentationStartCRBR presentation date from
presentationEndCRBR presentation date to
scrapedAtActor extraction timestamp

How much does it cost to scrape CRBR beneficial owners?

This actor uses Apify pay-per-event pricing.

  • A small start event is charged once per run.
  • A result event is charged for each saved CRBR company-beneficiary record.
  • You can keep costs predictable with maxResults.

The exact live price is shown on the Apify Store page before you run the actor.

Input options

The main input is searches, an array of CRBR search requests.

Each search has:

  • modecompanyName, nip, krs, or beneficiary.
  • query — company name, NIP, KRS, or beneficiary name.
  • pesel — optional for exact beneficiary searches.
  • birthDate — optional for beneficiary name searches when needed.
  • firstName and lastName — optional overrides for beneficiary searches.

Example input: company name

{
"searches": [
{ "mode": "companyName", "query": "ORLEN" }
],
"maxResults": 50
}

Example input: NIP and KRS

{
"searches": [
{ "mode": "nip", "query": "7742894628" },
{ "mode": "krs", "query": "0000252883" }
],
"maxResults": 100
}

Example input: beneficiary

{
"searches": [
{
"mode": "beneficiary",
"query": "MAŁGORZATA GOŁUCHOWSKA",
"pesel": "73110202448"
}
],
"maxResults": 20
}

Output example

{
"recordType": "beneficial_owner",
"searchType": "companyName",
"sourceQuery": "ORLEN",
"companyName": "ORLEN ADMINISTRACJA SP. Z O.O.",
"nip": "7742894628",
"krs": "0000252883",
"legalForm": "Spółka z ograniczoną odpowiedzialnością",
"beneficiaryFullName": "MAŁGORZATA DANUTA GOŁUCHOWSKA",
"beneficiaryCitizenships": ["PL - POLSKA"],
"beneficiaryResidenceCountry": "PL - POLSKA",
"controlTypeCode": "3",
"rightsSummary": "charakter 3",
"sourceUrl": "https://crbr.podatki.gov.pl/adcrbr/#/wyszukaj",
"scrapedAt": "2026-07-06T03:27:12.395Z"
}

How to run

  1. Open the actor on Apify.
  2. Add one or more CRBR searches.
  3. Set maxResults to control cost and run size.
  4. Start the actor.
  5. Export the dataset as JSON, CSV, Excel, or via API.

Tips for better results

  • Use NIP or KRS for exact company checks.
  • Use company names for discovery or portfolio screening.
  • Keep maxResults low for exploratory runs.
  • Use includeRaw only when you need source fragments for debugging or audit review.
  • Beneficiary name searches can require PESEL or birth-date context depending on CRBR validation.

Integrations

You can connect this CRBR scraper to:

  • AML onboarding queues.
  • Customer due-diligence case tools.
  • Credit-risk enrichment jobs.
  • Data warehouses via Apify dataset exports.
  • Webhooks that trigger downstream review when a record is found.
  • Scheduled monitoring of Polish company 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/crbr-beneficial-owners-scraper').call({
searches: [{ mode: 'companyName', query: 'ORLEN' }],
maxResults: 50,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

API usage with Python

from apify_client import ApifyClient
client = ApifyClient('YOUR_APIFY_TOKEN')
run = client.actor('automation-lab/crbr-beneficial-owners-scraper').call(run_input={
'searches': [{'mode': 'companyName', 'query': 'ORLEN'}],
'maxResults': 50,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)

API usage with cURL

curl -X POST 'https://api.apify.com/v2/acts/automation-lab~crbr-beneficial-owners-scraper/runs?token=YOUR_APIFY_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"searches":[{"mode":"companyName","query":"ORLEN"}],"maxResults":50}'

MCP usage

Use this actor from Claude Desktop or Claude Code through Apify MCP:

https://mcp.apify.com/?tools=automation-lab/crbr-beneficial-owners-scraper

Claude Code setup:

$claude mcp add apify-crbr https://mcp.apify.com/?tools=automation-lab/crbr-beneficial-owners-scraper

Claude Desktop JSON setup:

{
"mcpServers": {
"apify-crbr": {
"url": "https://mcp.apify.com/?tools=automation-lab/crbr-beneficial-owners-scraper"
}
}
}

Example prompts:

  • "Check CRBR beneficial owners for this list of Polish NIP numbers."
  • "Find CRBR ownership records for companies matching ORLEN and summarize the owners."
  • "Export Polish UBO data to CSV for my KYB review."

Scheduling and monitoring

For recurring compliance checks, create an Apify schedule with your portfolio input. You can send webhook notifications to Slack, email, or your internal queue when the run finishes.

Data quality notes

The actor returns what the official CRBR public service returns for the submitted query and date range. Empty results can mean no match, a too-broad or too-specific query, or source-side validation constraints.

Error handling

The actor retries transient CRBR request failures. If a single search still fails, it logs the failed query and continues with the next search so one bad identifier does not stop the whole batch.

Legality

CRBR is a public register, but you are responsible for using extracted personal and company data lawfully. Make sure your processing has an appropriate compliance, AML, KYB, journalistic, research, or other legal basis.

FAQ

Is this an official CRBR API?

No. This actor automates the public CRBR web application's publicly reachable search endpoints and preserves official-source metadata returned by CRBR.

Can I use the data for AML checks?

The actor is designed for KYB and AML workflows, but your legal/compliance team should decide how CRBR data is processed, retained, and combined with other sources.

Troubleshooting

Why did a beneficiary search return no rows?

CRBR beneficiary search validation can require PESEL or birth-date context. Try an exact company search by NIP or KRS when you know the target company.

Why are some ownership percentages empty?

CRBR may describe control rights without a numeric ownership percentage. The actor preserves available rights text in rightsSummary.

Other automation-lab actors that fit the same compliance workflow:

Changelog

  • 0.1 — Initial CRBR company and beneficiary search implementation.

Support

If you need another CRBR output field or an integration pattern, open an issue on the Apify actor page with your input and expected output.