DEV Community

Cover image for BDO Scraper: Rejestr Odpadów (674 000+)
Peter
Peter

Posted on • Originally published at apify.com

BDO Scraper: Rejestr Odpadów (674 000+)

TL;DR

  • BDO (Baza danych o produktach i opakowaniach oraz o gospodarce odpadami) to oficjalny rejestr gospodarki odpadami z 674 000+ zarejestrowanych podmiotów
  • Każda firma produkująca, transportująca lub przetwarzająca odpady w Polsce musi być zarejestrowana
  • Portal to React SPA bez publicznego API
  • Zbudowałem aktora na Apify, który przeszukuje rejestr i zwraca JSON za $0.03 za podmiot

Dlaczego rejestr BDO ma znaczenie dla firm w Polsce

BDO to centralna baza danych służąca do śledzenia całego cyklu życia odpadów - od wytworzenia, przez transport, aż po przetworzenie lub składowanie. Rejestr został utworzony na podstawie ustawy o odpadach i jest administrowany przez Urzędy Marszałkowskie poszczególnych województw.

Rejestracja w BDO jest obowiązkowa dla szerokiego zakresu firm: producentów wytwarzających odpady przemysłowe, firm transportujących odpady, zakładów recyklingowych i przetwarzania, importerów produktów objętych regulacjami opakowaniowymi oraz firm wprowadzających towary w opakowaniach na polski rynek. Na 2026 rok rejestr zawiera ponad 674 000 podmiotów - co czyni go jedną z największych baz compliance środowiskowego w Europie Środkowej.

Praktyczne konsekwencje są poważne. Firmy, które zlecają transport lub przetwarzanie odpadów niezarejestrowanym podmiotom, podlegają karom od 1 000 do 1 000 000 PLN zgodnie z polskim prawem ochrony środowiska. Dla organizacji zarządzających odpadami na wielu lokalizacjach lub współpracujących z dziesiątkami kontrahentów, weryfikacja statusu rejestracji BDO to rutynowy wymóg compliance.

Dlaczego portal BDO nie ma publicznego API

Portal BDO pod adresem rejestr-bdo.mos.gov.pl jest zbudowany jako aplikacja React SPA (Single Page Application). Frontend komunikuje się z usługami backendowymi przez wewnętrzne wywołania API, ale te endpointy są nieudokumentowane, wymagają tokenów sesji i używają dynamicznych wzorców zapytań zmieniających się między wdrożeniami.

Ta architektura stwarza konkretne problemy dla automatyzacji:

  • Brak stabilnych endpointów REST do bezpośredniego wywołania
  • Uwierzytelnianie oparte na sesji z ochroną CSRF
  • Dynamiczne renderowanie JavaScript oznacza, że proste zapytania HTTP zwracają puste szkielety
  • Jedno wyszukiwanie na raz, bez eksportu hurtowego
  • Brak udokumentowanego formatu danych lub schematu do programistycznego użycia

Dla zespołów compliance środowiskowego weryfikujących dziesiątki kontrahentów, audytorów sprawdzających grupy kapitałowe czy firm odpadowych monitorujących rynek - ręczna weryfikacja przez portal się nie skaluje.

Dane z rejestru BDO: co otrzymujesz

Scraper zwraca ustrukturyzowany JSON dla każdego zarejestrowanego podmiotu z następującymi polami:

  • name - zarejestrowana nazwa firmy
  • bdoNumber - unikalny numer rejestracji BDO
  • nip - Numer Identyfikacji Podatkowej
  • regon - numer identyfikacji statystycznej REGON
  • province - województwo rejestracji
  • registrationDate - data dodania podmiotu do BDO
  • status - aktualny status rejestracji (aktywny, zawieszony, wykreślony)
  • wasteActivities - rodzaje posiadanych pozwoleń na gospodarkę odpadami

Możesz wyszukiwać po nazwie firmy, NIP, REGON lub numerze BDO. Aktor automatycznie obsługuje zarządzanie sesją React SPA, stronicowanie i ekstrakcję danych.

Jak używać BDO Rejestr Odpadów Scraper

Python

from apify_client import ApifyClient

client = ApifyClient("YOUR_API_TOKEN")

run = client.actor("minute_contest/bdo-waste-registry-scraper").call(
    run_input={
        "query": "Remondis",
        "maxResults": 50
    }
)

items = client.dataset(run["defaultDatasetId"]).list_items().items
for entity in items:
    print(f"{entity.get('name')} | BDO: {entity.get('bdoNumber')}")
    print(f"  NIP: {entity.get('nip')} | Województwo: {entity.get('province')}")
Enter fullscreen mode Exit fullscreen mode

JavaScript (Node.js)

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });

const run = await client.actor('minute_contest/bdo-waste-registry-scraper').call({
    query: 'Remondis',
    maxResults: 50
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach(e => console.log(`${e.name} | BDO: ${e.bdoNumber} | NIP: ${e.nip}`));
Enter fullscreen mode Exit fullscreen mode

Praktyczny przykład: kwartalny audyt kontrahentów odpadowych

Firma produkcyjna prowadzi 5 zakładów w różnych częściach Polski, z których każdy wytwarza odpady niebezpieczne i inne niż niebezpieczne. Współpracuje z 40+ kontrahentami odpadowymi - transportowymi, recyklingowymi i składowiskowymi. Zespół compliance środowiskowego musi co kwartał weryfikować, że każdy kontrahent posiada aktywną rejestrację BDO.

Używając scrapera, budują prosty skrypt, który pobiera listę kontrahentów (numery NIP z systemu ERP), odpytuje BDO dla każdego z nich i flaguje kontrahentów, których status rejestracji nie jest aktywny. Skrypt działa jako zaplanowane zadanie Apify co kwartał, eksportując wyniki do CSV, który zespół compliance przegląda. Wcześniej analityk spędzał dwa pełne dni każdego kwartału na ręcznym sprawdzaniu portalu. Ze scraperem cały audyt kończy się bez nadzoru w mniej niż 30 minut.

Kto potrzebuje BDO Scraper

  • Zespoły compliance środowiskowego - weryfikacja rejestracji BDO kontrahentów odpadowych
  • Firmy gospodarki odpadami - monitoring konkurencji, śledzenie nowych podmiotów i walidacja podwykonawców
  • Audytorzy - sprawdzanie compliance środowiskowego w grupach kapitałowych i łańcuchach dostaw
  • Firmy produkcyjne - weryfikacja całych sieci podmiotów odpadowych przed podpisaniem umów
  • Władze samorządowe - monitoring zarejestrowanych operatorów odpadowych w ich jurysdykcji
  • Zespoły raportowania ESG - dokumentowanie compliance odpadowego na potrzeby raportów zrównoważonego rozwoju

Ceny

Metoda Koszt
Ręczne wyszukiwanie na portalu BDO Darmowe (po jednym)
Ten aktor ~13 zł za 100 podmiotów

Darmowe $5 kredytów Apify = ~160 wyszukiwań za darmo.

FAQ

Jakie firmy muszą rejestrować się w BDO?

Każda firma w Polsce, która wytwarza odpady (poza standardowymi odpadami biurowymi typu komunalnego), transportuje odpady, zbiera lub przetwarza odpady, importuje produkty z obowiązkami opakowaniowymi lub wprowadza towary w opakowaniach na rynek, musi posiadać aktywną rejestrację BDO. Obejmuje to producentów, firmy logistyczne, recyklerów i większość importerów.

Czy mogę zweryfikować konkretną firmę po NIP lub numerze BDO?

Tak. Aktor obsługuje wyszukiwanie po nazwie firmy, NIP, REGON lub numerze rejestracji BDO. Wyszukiwanie po NIP jest najbardziej niezawodną metodą dokładnego dopasowania, ponieważ nazwy firm mogą różnić się formatowaniem między rejestracjami.

Jak scraper radzi sobie z aplikacją React SPA portalu BDO?

Aktor używa przeglądarki headless do nawigacji po aplikacji React, zarządzania tokenami sesji i ekstrakcji danych z wyrenderowanego DOM. To podejście obsługuje dynamiczne renderowanie JavaScript i zarządzanie sesjami, które uniemożliwiają bezpośredni scraping HTTP na portalu BDO.

Wyprobuj: apify.com/minute_contest/bdo-waste-registry-scraper


Ten artykuł jest częścią serii Polish Business Data APIs o programistycznym dostępie do polskich rejestrów publicznych.

Top comments (0)