Rejestracja zbioru na dane.gov.pl to proces 24-72 godzin. Najtrudniejsza część to nie technika (wystarczy XML + CSV + MD5 wygenerowane przez WordPressa), tylko procedura administracyjna z portalem. W tym artykule — krok po kroku.
Krok 1: Założenie konta
Wchodzisz na dane.gov.pl i klikasz „Zarejestruj się”. Konto jest dla dostarczyciela danych, więc rejestracja przez profil zaufany ePUAP albo eDowód.
Pytanie pojawia się: kto się rejestruje — dostawca prywatny czy publiczny? Dla deweloperów: dostawca prywatny (sektor prywatny, sp. z o.o.).
Krok 2: Weryfikacja podmiotu
Po założeniu konta wnioskodawca musi zostać zweryfikowany jako uprawniony do dostarczania danych w imieniu spółki. Weryfikacja przez:
- Profil zaufany właściciela / członka zarządu (jeśli rejestrujesz spółkę), LUB
- Pełnomocnictwo notarialne
Weryfikacja zajmuje 1-2 dni roboczych. Bez niej nie zarejestrujesz zbioru.
Krok 3: Utworzenie zbioru
W panelu „Moje zbiory” → „Dodaj zbiór”. Wymagane pola:
- Tytuł: „Ceny ofertowe mieszkań — JTM Development” (przykład)
- Opis: 200-500 znaków o tym, co zbiór zawiera
- Kategoria: ECON (Ekonomia i finanse)
- Tagi: „Deweloper”, „Ceny mieszkań”, „Nieruchomości”, „Jawne ceny”
- Częstotliwość aktualizacji: daily
- Licencja: Open Government License v3.0 (ID 14)
- Format: CSV (głównie) + XML manifest (rekomendowany)
Krok 4: Konfiguracja harvestera
Wpisujesz URL XML’u manifestu, który WordPress będzie generował codziennie. Standardowo:
https://stronka.pl/jtmdevelopment.xml
Portal automatycznie pobierze XML, sparsuje, weryfikuje przeciwko schematowi XSD. Pierwsza walidacja jest decydująca — jeśli XML jest niezgodny ze schematem, zbiór nie zostanie aktywowany.
Krok 5: Walidacja XSD lokalnie
Zanim podasz URL portalowi — przetestuj lokalnie:
# Pobierz najnowszy schemat
curl -O https://dane.gov.pl/.../otwarte_dane_latest.xsd
# Walidacja
xmllint --schema otwarte_dane_latest.xsd
feed.xml --noout
# Sukces: brak outputu
# Błąd: lista violations
Najczęstsze błędy walidacji:
- Niewłaściwy namespace — musi być
urn:otwarte-dane:harvester:1.13 - extIdent zbioru zmienia się między dniami — harvester traktuje jako nowy zbiór, gubi historię. extIdent zbioru musi być stały, każdego dnia ten sam.
- Brak licenseId — wymagane od v1.13
- Format daty inny niż ISO — wszystkie daty w formacie
2026-05-06(bez czasu, bez strefy)
Krok 6: Pierwsza aktywacja
Po walidacji portalu zbiór wpada w stan „Aktywny”. Każdego dnia o 04:00 (czas portal) harvester ściąga Twój XML, parsuje, dodaje nowe zasoby (CSV-y) do zbioru.
Twój daily cron na serwerze powinien generować nowy CSV o 00:10 Warsaw — żeby przed 04:00 było gotowe.
# crontab.linux (zewnętrzny, NIE wp-cron)
10 0 * * * curl -fsS https://stronka.pl/wp-cron.php
> /dev/null
Krok 7: Walidacja po deployu
Pierwsze 7 dni po aktywacji — sprawdź ręcznie codziennie rano:
curl https://stronka.pl/feed.xml→ 200, valid XMLxmllint --schema otwarte_dane_latest.xsd feed.xml --noout→ brak błędówcurl https://stronka.pl/feed.csv→ 200, valid CSVmd5sum feed.csvvscat feed.csv.md5→ identyczne- W panelu dane.gov.pl: status „Aktualny”, data ostatniej aktualizacji = wczoraj
Po 7 dniach możesz przejść na monitoring tygodniowy.
Najczęstsze pułapki
- extIdent zbioru zmienia się każdego dnia — harvester traktuje jako nowy zbiór, gubi historię
- wp-cron.php nie odpalają się bez ruchu — konieczny zewnętrzny cron (Coolify, OS-level)
- Strefa czasowa serwera ≠ Warsaw — cron odpala się w UTC (2 godziny później)
- MD5 nie aktualizuje się razem z CSV — harvester widzi stary MD5 + nowy CSV → fail
- Backup pliku CSV nadpisuje aktualny — błąd w cron job’ie, generujesz aktualny plik PRZED zarchiwizowaniem starego
Pomoc UOKiK i dane.gov.pl
Jeśli walidacja się nie udaje i nie wiesz dlaczego — kontakt:
- Support dane.gov.pl: dane@gov.pl (odpowiedź zwykle w 2-3 dni roboczych)
- UOKiK ws. zgłoszeń compliance: portal e-Konsumentów + dział Inspekcji Rynku
Jeśli masz wdrożoną stronę przez AD Software — pomagam z rejestracją w cenie wdrożenia. JTM Development zarejestrowane w 48h od wdrożenia, MAJ Home Development w 72h.