# Poland BDO Waste Registry Scraper (`minute_contest/bdo-waste-registry-scraper`) Actor

Rejestr BDO - baza danych o odpadach. Search 674,000+ waste management entities. Company permits, waste codes, provinces. No API exists. ESG compliance, environmental due diligence. Gospodarka odpadami.

- **URL**: https://apify.com/minute\_contest/bdo-waste-registry-scraper.md
- **Developed by:** [minute contest](https://apify.com/minute_contest) (community)
- **Categories:** Business, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.50 / 1,000 entity results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Poland BDO Waste Registry Scraper | Rejestr BDO

Verify that waste management contractors hold valid BDO registrations before signing contracts. Search 674,000+ entities in Poland's central waste registry by name, NIP, or BDO number. Hiring an unregistered waste handler can result in fines of 1,000 to 1,000,000 PLN.

### Quick Start

Click **Try it** and paste this input:

```json
{
  "query": "Remondis"
}
````

### Sample Output

```json
{
  "registryNumber": "000012345",
  "companyName": "Remondis Sp. z o.o.",
  "nip": "7251917026",
  "nipEu": "",
  "address": "ul. Zbylitowska 35",
  "province": "Malopolskie",
  "district": "tarnowski",
  "commune": "Tarnow",
  "status": "Aktywny",
  "registrationDate": "2020-01-15",
  "sourceUrl": "https://rejestr-bdo.mos.gov.pl/"
}
```

### Pricing

| Volume | Cost |
|--------|------|
| 1 result | $0.004 |
| 100 results | ~$0.43 |
| 1,000 results | ~$4.03 |
| 10,000 results | ~$40.03 |

Start cost per run: **$0.025**. Free Apify credits ($5) = ~1,250 results at no cost.

### Features

- **Full browser automation** - handles the React SPA portal with Puppeteer and Stealth plugin
- **Search by name or NIP** - find specific companies or search broadly
- **Filter by province** - target specific voivodeships (16 Polish provinces)
- **API response interception** - captures JSON data from internal API calls for structured output
- **Fallback DOM parsing** - extracts data from HTML tables if API interception fails

### Input Parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `query` | string | **Yes** | - | Company name, NIP, NIP EU, or BDO registry number |
| `province` | string | No | all | Filter by voivodeship (e.g., Mazowieckie, Slaskie) |
| `maxResults` | integer | No | `100` | Max results. Set to `0` for unlimited |
| `proxyConfiguration` | object | No | - | Apify Proxy settings (residential recommended) |

#### Province Options

Dolnoslaskie, Kujawsko-Pomorskie, Lubelskie, Lubuskie, Lodzkie, Malopolskie, Mazowieckie, Opolskie, Podkarpackie, Podlaskie, Pomorskie, Slaskie, Swietokrzyskie, Warminsko-Mazurskie, Wielkopolskie, Zachodniopomorskie

### Output Fields

| Field | Description |
|-------|-------------|
| `registryNumber` | BDO registration number |
| `companyName` | Company/entity name |
| `nip` | Polish Tax ID (NIP) |
| `nipEu` | EU NIP (if applicable) |
| `address` | Registered address |
| `province` | Voivodeship (wojewodztwo) |
| `district` | District (powiat) |
| `commune` | Commune (gmina) |
| `status` | Registration status (Aktywny, Wykreslony) |
| `registrationDate` | Date of BDO registration |
| `tables` | BDO table assignments (waste categories) |
| `sourceUrl` | Source registry URL |

### Use Cases

- **Environmental Compliance** - verify that waste contractors hold valid BDO registrations before signing contracts
- **Contractor Due Diligence** - screen waste management partners as required by Polish environmental law
- **Audit & Inspection** - check BDO status across entire supply chains or corporate groups
- **Market Research** - analyze the Polish waste management landscape by region or company size
- **Manufacturing Compliance** - verify waste handlers for production waste streams

### Data Source & Compliance

All data comes from the official BDO registry:

- https://rejestr-bdo.mos.gov.pl/

Data is publicly available. The registry is maintained by Marshal Offices under the Act on Waste (ustawa z dnia 14 grudnia 2012 r. o odpadach). Each voivodeship's Marshal Office administers registrations for companies operating within its territory.

### Polish Business Data Suite

This actor is part of the **Polish Business Data Suite** - 9 actors covering the full Polish company intelligence stack. No subscriptions, no minimum commitment - pay only for what you use.

| Registry | Actor | What it does |
|----------|-------|-------------|
| **eKRS** | [Financial Statements](https://apify.com/minute_contest/poland-krs-financial-scraper) | Balance sheets, income statements |
| **KRS** | [Board Members](https://apify.com/minute_contest/krs-fullnames-scraper) | Full non-anonymized director names |
| **KRZ** | [Debtor Registry](https://apify.com/minute_contest/krz-debtor-scraper) | Bankruptcy, restructuring, enforcement |
| **KNF** | [Financial Supervision](https://apify.com/minute_contest/knf-registry-scraper) | 75,000+ regulated financial entities |
| **MSiG** | [Court Gazette](https://apify.com/minute_contest/msig-scraper) | Court announcements since 2001 |
| **EKW** | [Land Registry](https://apify.com/minute_contest/ekw-ksiegi-wieczyste-scraper) | Property ownership, mortgages, restrictions |
| **CRBR** | [Beneficial Owners](https://apify.com/minute_contest/crbr-beneficial-owners-scraper) | UBO verification by NIP/KRS |
| **UOKiK** | [Abusive Clauses](https://apify.com/minute_contest/uokik-clauses-scraper) | 7,500+ banned contract clauses |
| **BDO** | [Waste Registry](https://apify.com/minute_contest/bdo-waste-registry-scraper) | 674,000+ waste management entities |

> **Full suite**: [apify.com/minute\_contest](https://apify.com/minute_contest)

### Informacje po polsku

#### Czym jest ten aktor?

Ten aktor umozliwia automatyczne przeszukiwanie **rejestru BDO** - Bazy danych o produktach i opakowaniach oraz o gospodarce odpadami. Rejestr zawiera ponad 674 000 podmiotow zajmujacych sie wytwarzaniem, zbieraniem, transportem i przetwarzaniem odpadow w Polsce. Portal BDO nie udostepnia publicznego API - jest aplikacja React (SPA) wymagajaca pelnej automatyzacji przegladarki. Aktor obsluguje nawigacje po portalu i zwraca ustrukturyzowane dane JSON.

#### Dla kogo?

Narzedzie jest przeznaczone dla **dzialow compliance srodowiskowego** weryfikujacych rejestracje BDO kontrahentow odpadowych, **firm produkcyjnych** sprawdzajacych lancuchy dostawcow odpadow, **audytorow** kontrolujacych compliance srodowiskowy w grupach kapitalowych, **firm gospodarki odpadami** monitorujacych konkurencje, oraz **wladz samorzadowych** nadzorujacych operatorow odpadowych w ich jurysdykcji.

#### Co mozna sprawdzic?

Wyszukiwanie po nazwie firmy, NIP, NIP EU lub numerze rejestrowym BDO. Mozna filtrowac wyniki po wojewodztwie (16 wojewodztw). Kazdy wynik zawiera numer rejestrowy BDO, nazwe firmy, NIP, adres, wojewodztwo, status rejestracji i date wpisu. Portal BDO zawiera ponad 674 000 podmiotow - jedna z najwiekszych baz danych srodowiskowych w Europie Srodkowej.

#### Jak zaczac?

Uruchom aktora na platformie Apify, podajac nazwe firmy lub NIP. Zalecane jest uzycie proxy rezydencjalnych (portal moze blokowac IP datacenter). Dla **compliance srodowiskowego** mozesz zintegrowac aktora ze swoim systemem przez Apify API i automatycznie weryfikowac rejestracje BDO kontrahentow. Pay-per-use - okolo 13 zl za 100 podmiotow. Darmowe $5 kredytow Apify = ~160 wyszukiwan za darmo.

### Limitations

- **Proxy recommended** - the React SPA portal may block non-Polish or datacenter IPs
- Requires full Chrome browser (Puppeteer) - heavier resource usage than HTTP-only actors
- The 674K+ entity registry is searchable but not bulk-exportable in a single query
- Processing time: ~10-15 seconds per search due to browser navigation and page load wait

# Actor input Schema

## `query` (type: `string`):

Search by company name, NIP, NIP EU, or BDO registry number.

## `province` (type: `string`):

Filter by province.

## `maxResults` (type: `integer`):

Maximum results. Default: 100. Set to 0 for unlimited.

## `proxyConfiguration` (type: `object`):

Apify Proxy configuration.

## Actor input object example

```json
{
  "query": "Remondis",
  "province": "",
  "maxResults": 100
}
```

# Actor output Schema

## `entities` (type: `string`):

Waste management companies with registry number, NIP, address, province, and registration status.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "query": "Remondis"
};

// Run the Actor and wait for it to finish
const run = await client.actor("minute_contest/bdo-waste-registry-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "query": "Remondis" }

# Run the Actor and wait for it to finish
run = client.actor("minute_contest/bdo-waste-registry-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "query": "Remondis"
}' |
apify call minute_contest/bdo-waste-registry-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=minute_contest/bdo-waste-registry-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Poland BDO Waste Registry Scraper",
        "description": "Rejestr BDO - baza danych o odpadach. Search 674,000+ waste management entities. Company permits, waste codes, provinces. No API exists. ESG compliance, environmental due diligence. Gospodarka odpadami.",
        "version": "1.0",
        "x-build-id": "VAbFHWEoTIWLStsrB"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/minute_contest~bdo-waste-registry-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-minute_contest-bdo-waste-registry-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/minute_contest~bdo-waste-registry-scraper/runs": {
            "post": {
                "operationId": "runs-sync-minute_contest-bdo-waste-registry-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/minute_contest~bdo-waste-registry-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-minute_contest-bdo-waste-registry-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "query"
                ],
                "properties": {
                    "query": {
                        "title": "Search Query",
                        "type": "string",
                        "description": "Search by company name, NIP, NIP EU, or BDO registry number."
                    },
                    "province": {
                        "title": "Province (Województwo)",
                        "enum": [
                            "",
                            "Dolnośląskie",
                            "Kujawsko-pomorskie",
                            "Lubelskie",
                            "Lubuskie",
                            "Łódzkie",
                            "Małopolskie",
                            "Mazowieckie",
                            "Opolskie",
                            "Podkarpackie",
                            "Podlaskie",
                            "Pomorskie",
                            "Śląskie",
                            "Świętokrzyskie",
                            "Warmińsko-mazurskie",
                            "Wielkopolskie",
                            "Zachodniopomorskie"
                        ],
                        "type": "string",
                        "description": "Filter by province.",
                        "default": ""
                    },
                    "maxResults": {
                        "title": "Max Results",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum results. Default: 100. Set to 0 for unlimited.",
                        "default": 100
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Apify Proxy configuration."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
