CRBR Beneficial Owners Scraper
Pricing
from $0.02 / 1,000 item extracteds
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
Maintained by CommunityActor 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?
| Field | Description |
|---|---|
companyName | Full legal name from CRBR |
nip | Polish tax identifier |
krs | Polish court register identifier |
legalForm | Legal form description |
companyAddress | Registered address assembled from CRBR fields |
beneficiaryFullName | Beneficial owner's public full name |
beneficiaryPesel | PESEL when public in CRBR response |
beneficiaryCitizenships | Public citizenship values |
beneficiaryResidenceCountry | Public residence country |
controlType | CRBR control/rights descriptor when available |
ownershipPercentage | Ownership percentage when CRBR provides a numeric value |
rightsSummary | Human-readable summary of rights/control fields |
requestId | CRBR request identifier |
presentationStart | CRBR presentation date from |
presentationEnd | CRBR presentation date to |
scrapedAt | Actor 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:
mode—companyName,nip,krs, orbeneficiary.query— company name, NIP, KRS, or beneficiary name.pesel— optional for exact beneficiary searches.birthDate— optional for beneficiary name searches when needed.firstNameandlastName— 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
- Open the actor on Apify.
- Add one or more CRBR searches.
- Set
maxResultsto control cost and run size. - Start the actor.
- 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
maxResultslow for exploratory runs. - Use
includeRawonly 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 ApifyClientclient = 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().itemsprint(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.
Related scrapers
Other automation-lab actors that fit the same compliance workflow:
- https://apify.com/automation-lab/open-sanctions-scraper
- https://apify.com/automation-lab/ofac-sanctions-scraper
- https://apify.com/automation-lab/companies-house-scraper
- https://apify.com/automation-lab/gleif-lei-scraper
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.