Rejestr pozwoleń na budowę (GUNB) - dla konkretnej działki, przez API
Sprawdź, jakie sprawy budowlane przeszły przez urząd dla wybranej działki. Pozwolenia i zgłoszenia z rejestru GUNB, odpowiedź w JSON.
Klucz przychodzi mailem, bez karty. Autoryzacja to jeden nagłówek Authorization: Bearer. Poniższe wywołanie możesz uruchomić od razu, bez rejestracji.
{
"parcel": {
"id": "b4611660-817b-5a58-37e1-7e1739666390",
"parcel_id": "286201_1.0126.3/18",
"parcel_key": "286201_1.0126.3-18"
},
"coverage": "covered",
"as_of": "2026-07-09T19:35:09.433Z",
"data": [
{
"record_kind": "permit",
"intent_type": "other_structure",
"object_category": "XIII",
"works_type": "new_construction",
"status": null,
"decision_date": "2026-02-25",
"intake_date": "2025-12-30",
"authority": "Prezydent Miasta Olsztyn",
"address_street": "Jarocka",
"address_number": null,
"address_city": "Olsztyn",
"volume_m3": 27753.6
},
{
"record_kind": "permit",
"intent_type": "other_structure",
"object_category": "XIII",
"works_type": "new_construction",
"status": null,
"decision_date": "2025-07-22",
"intake_date": "2024-07-25",
"authority": "Prezydent Miasta Olsztyn",
"address_street": "Jarocka",
"address_number": null,
"address_city": "Olsztyn",
"volume_m3": 38350
},
{
"record_kind": "notification",
"intent_type": null,
"object_category": "XXVI",
"works_type": "new_construction",
"status": "no_objection",
"decision_date": null,
"intake_date": "2025-05-15",
"authority": "Prezydent Miasta Olsztyn",
"address_street": "Jarocka",
"address_number": null,
"address_city": "Olsztyn",
"volume_m3": null
},
{
"record_kind": "permit",
"intent_type": "other_structure",
"object_category": "XXVI",
"works_type": "new_construction",
"status": null,
"decision_date": "2025-02-13",
"intake_date": "2024-12-16",
"authority": "Prezydent Miasta Olsztyn",
"address_street": "Jarocka",
"address_number": null,
"address_city": "Olsztyn",
"volume_m3": null
},
{
"record_kind": "permit",
"intent_type": "other_structure",
"object_category": "XIII",
"works_type": "other_works",
"status": null,
"decision_date": "2024-01-09",
"intake_date": "2023-11-06",
"authority": "Prezydent Miasta Olsztyn",
"address_street": "Jarocka",
"address_number": null,
"address_city": "Olsztyn",
"volume_m3": 30173
},
{
"record_kind": "permit",
"intent_type": "other_structure",
"object_category": "XXVI",
"works_type": "reconstruction",
"status": null,
"decision_date": "2023-12-06",
"intake_date": "2023-10-26",
"authority": "Prezydent Miasta Olsztyn",
"address_street": "Jarocka",
"address_number": null,
"address_city": "Olsztyn",
"volume_m3": null
},
{
"record_kind": "permit",
"intent_type": "other_structure",
"object_category": "XXVI",
"works_type": "new_construction",
"status": null,
"decision_date": "2023-11-29",
"intake_date": "2023-10-18",
"authority": "Prezydent Miasta Olsztyn",
"address_street": "Jarocka",
"address_number": null,
"address_city": "Olsztyn",
"volume_m3": null
},
{
"record_kind": "notification",
"intent_type": null,
"object_category": "XXVI",
"works_type": "new_construction",
"status": "no_objection",
"decision_date": null,
"intake_date": "2023-07-26",
"authority": "Prezydent Miasta Olsztyn",
"address_street": null,
"address_number": null,
"address_city": "Olsztyn",
"volume_m3": null
},
{
"record_kind": "permit",
"intent_type": "other_structure",
"object_category": "XXVI",
"works_type": "new_construction",
"status": null,
"decision_date": "2022-12-01",
"intake_date": "2022-11-15",
"authority": "Prezydent Miasta Olsztyn",
"address_street": "Jarocka",
"address_number": null,
"address_city": "Olsztyn",
"volume_m3": null
},
{
"record_kind": "permit",
"intent_type": "other_structure",
"object_category": "XXVI",
"works_type": "new_construction",
"status": null,
"decision_date": "2022-09-21",
"intake_date": "2022-08-02",
"authority": "Prezydent Miasta Olsztyn",
"address_street": "Jarocka",
"address_number": null,
"address_city": "Olsztyn",
"volume_m3": null
},
{
"record_kind": "permit",
"intent_type": "other_structure",
"object_category": "XIII",
"works_type": "new_construction",
"status": null,
"decision_date": "2021-10-14",
"intake_date": "2021-03-22",
"authority": "Prezydent Miasta Olsztyn",
"address_street": "Jarocka",
"address_number": null,
"address_city": "Olsztyn",
"volume_m3": 35845
},
{
"record_kind": "permit",
"intent_type": "other_structure",
"object_category": "XXVI",
"works_type": "new_construction",
"status": null,
"decision_date": "2021-07-30",
"intake_date": "2021-07-01",
"authority": "Prezydent Miasta Olsztyn",
"address_street": "Jarocka",
"address_number": null,
"address_city": "Olsztyn",
"volume_m3": null
},
{
"record_kind": "permit",
"intent_type": "other_structure",
"object_category": "XIII",
"works_type": "new_construction",
"status": null,
"decision_date": "2020-09-28",
"intake_date": "2020-06-10",
"authority": "Prezydent Miasta Olsztyn",
"address_street": "Jarocka",
"address_number": null,
"address_city": "Olsztyn",
"volume_m3": 28523
},
{
"record_kind": "permit",
"intent_type": "other_structure",
"object_category": "XXVI",
"works_type": "new_construction",
"status": null,
"decision_date": "2020-09-28",
"intake_date": "2020-09-22",
"authority": "Prezydent Miasta Olsztyn",
"address_street": null,
"address_number": null,
"address_city": "Olsztyn",
"volume_m3": null
},
{
"record_kind": "permit",
"intent_type": "other_structure",
"object_category": "III",
"works_type": "demolition",
"status": null,
"decision_date": "2019-12-27",
"intake_date": "2019-11-04",
"authority": "Prezydent Miasta Olsztyn",
"address_street": "Jarocka",
"address_number": "21",
"address_city": "Olsztyn",
"volume_m3": 777
}
],
"truncated": false,
"note": "Building permits with an issued decision and notifications accepted without objection, registered since 2016, matched to the parcel by its current cadastral identifier. The outcome of a permit decision, granted or refused, is not part of the data held here, and cases still pending are not included. Parcel splits/merges renumber parcels and break the match — an empty list is not a statement that nothing was ever planned."
}
Zapytaj bieżącym numerem działki ewidencyjnej, a dostaniesz listę spraw budowlanych w JSON. Wpis nie mówi, czy budowa ruszyła ani czy ją skończono. Pusta lista częściej wynika ze zmiany numeru działki niż z tego, że nikt tu nic nie planował.
Pola odpowiedzi
Tabela wyjaśnia każde pole z przykładowej odpowiedzi wyżej.
| Pole | Typ | Znaczenie |
|---|---|---|
| parcel | object | tożsamość działki, której dotyczy odpowiedź: id, parcel_id i parcel_key. Przy zapytaniu numerem ewidencyjnym wraca zawsze; przy zapytaniu UUID-em tylko dla kluczy API, OAuth oraz kont płatnych i próbnych |
| coverage | string | cztery stany odpowiedzi. covered znaczy, że wpisy są. Pozostałe trzy - covered_no_data, not_covered i not_computed - to trzy różne powody pustej listy |
| as_of | datetime | null | z kiedy pochodzi nasza kopia dopasowanych wpisów. Data zdarzenia jest osobno, w decision_date i intake_date. Przy covered_no_data wraca null, bo nie ma czego datować |
| data | array | lista spraw, posortowana malejąco po decision_date, a przy jej braku po intake_date |
| record_kind | string | permit (pozwolenie) albo notification (zgłoszenie) |
| intent_type | string | null | czego dotyczy zamierzenie, np. single_family_house, other_structure. Dla zgłoszeń zawsze null, wartość spoza mapy wraca jako other |
| object_category | string | null | kategoria obiektu z ustawowej taksonomii, cyfrą rzymską |
| works_type | string | null | new_construction, extension, vertical_extension, reconstruction, demolition, other_works, other |
| status | string | null | wynik zgłoszenia: no_objection albo other. Dla pozwoleń zawsze null |
| decision_date | date | null | data decyzji. Dla zgłoszeń zwykle pusta, bo zgłoszenie nie kończy się decyzją |
| intake_date | date | null | data wpływu wniosku albo zgłoszenia |
| authority | string | null | organ pierwszej instancji, który sprawę prowadził. Po odwołaniu rozstrzyga inny organ i tego rejestr nie pokazuje |
| address_street / address_number / address_city | string | null | adres inwestycji z akt sprawy, często niepełny |
| volume_m3 | number | null | kubatura obiektu, jeśli sprawa ją podaje |
| truncated | boolean | true, gdy działka ma ponad 500 odrębnych spraw i lista została przycięta |
| note | string | zastrzeżenie o zakresie zbioru, dołączane do każdej odpowiedzi. Po angielsku, bo jest częścią kontraktu publicznego API i mają je wszyscy klienci |
Jak czytać odpowiedź
Miejsca, w których tę odpowiedź łatwo przeczytać źle.
Pusta lista ma trzy znaczenia
Zanim policzysz rekordy, sprawdź coverage. Tylko covered_no_data znaczy, że sprawdziliśmy tę działkę i nie znaleźliśmy wpisów. not_covered mówi, że działki nie mamy w zbiorze, a not_computed, że odpowiedzi nie udało się teraz policzyć i warto ponowić za chwilę.
Pozwolenia i zgłoszenia to dwie różne ścieżki
Rozdziel rekordy po record_kind. Pola są asymetryczne: status wypełniamy tylko dla zgłoszeń, intent_type tylko dla pozwoleń. Zgłoszenia obejmują wąski katalog ustawowy, głównie domy wolnostojące i sieci, więc ich brak nic nie mówi o robotach spoza tej listy.
Podział działki gubi starsze sprawy
Wpisy są przypisane do bieżącego numeru ewidencyjnego. Po podziale albo scaleniu działka dostaje nowy numer i starsze sprawy mogą się pod nim nie pojawić. Przy działkach o świeżej historii geodezyjnej pusta odpowiedź opisuje numer działki, a teren mógł mieć swoje sprawy pod poprzednim.
Zbiór obejmuje sprawy zamknięte, bez informacji o wyniku
Zgłoszenia trzymamy wyłącznie te przyjęte bez sprzeciwu. Pozwolenia trzymamy te, w których wydano decyzję, ale źródło nie podaje, czy była pozytywna czy odmowna. Spraw w toku nie ma w zbiorze wcale, więc brak wpisu dla trwającej inwestycji jest spodziewany.
Cennik
Jedno wywołanie tego endpointu kosztuje 4 tokeny. Tokeny wracają, gdy działki nie mamy w zbiorze, gdy nie da się teraz policzyć odpowiedzi, gdy działka nie ma numeru ewidencyjnego oraz przy odpowiedziach 400 i 404. Potwierdzony brak wpisów jest płatny.
Free
Na próbę
400 tokenów na start, potem 50 tygodniowo
to 100 wywołań tego endpointu
- -Wszystkie endpointy
- -Serwer MCP
- -Bez karty
Standard
Dla rzeczoznawców
60,27 zł brutto
2 000 tokenów / mies.
to 500 wywołań tego endpointu
- -Wszystko z Free
- -2 000 tokenów API + MCP
- -Pełny dostęp do wyszukiwarki
Professional
Dla programistów i mniejszych zespołów
121,77 zł brutto
5 000 tokenów / mies.
to 1250 wywołań tego endpointu
- -Wszystko ze Standard
- -5 000 tokenów API + MCP
- -Pełny dostęp do wyszukiwarki
Advanced
Dla firm wycenowych i deweloperów
367,77 zł brutto
25 000 tokenów / mies.
to 6250 wywołań tego endpointu
- -Wszystko z Professional
- -Redystrybucja: dane w Twoim produkcie lub usłudze (z atrybucją Cenogram)
- -Wsparcie e-mail: odpowiedź w 24 h
Business
Dla proptech i większych zespołów
1843,77 zł brutto
200 000 tokenów / mies.
to 50 000 wywołań tego endpointu
- -Wszystko z Advanced
- -White-label: atrybucja nie jest wymagana
- -Wsparcie e-mail: odpowiedź w 8 h
Przejście na wyższy plan zastępuje obecną subskrypcję, a rozliczenie rusza od nowa
Częste pytania
Nie, to API Cenogramu. Publiczna wyszukiwarka rejestru GUNB jest bezpłatna i też szuka po działce. My oddajemy tę samą warstwę jako REST/JSON pod bieżącym numerem działki, obok pozostałych danych urzędowych, więc nie musisz sam wczytywać ani odświeżać tego rejestru.
Nie. Te kolumny są pomijane już przy wczytywaniu, więc nie ma ich w naszej bazie ani w odpowiedzi, na żadnym planie taryfowym.
4 tokeny. Tokeny wracają, gdy działki nie ma w naszym zbiorze (not_covered), gdy odpowiedzi nie dało się policzyć (not_computed), gdy działka nie ma numeru ewidencyjnego oraz przy odpowiedziach 400 i 404. Potwierdzony brak wpisów na znanej działce (covered_no_data) jest płatny. Uwaga: działka bez numeru ewidencyjnego też wraca jako covered_no_data, więc sam ten status nie mówi, czy zapłaciłeś.
Ponad 6 mln spraw z całego kraju, rejestrowanych od 2016 r. Kopię odświeżamy partiami, a pole as_of w każdej odpowiedzi mówi, z kiedy pochodzą dopasowane wpisy.
W Claude na numer działki odpowiada narzędzie get_parcel_report. Zwraca jeden raport o działce, w którym sekcja pozwoleń stoi obok pozostałych danych urzędowych. Całość kosztuje 45 tokenów. Jak podłączyć serwer MCP.
Publiczny rejestr Głównego Urzędu Nadzoru Budowlanego (GUNB) udostępnia te dane na licencji CC0 1.0, więc wolno ich używać komercyjnie i przekazywać dalej. Kolumny z nazwiskiem inwestora i projektanta odrzucamy już przy wczytywaniu, więc nie ma ich w naszej bazie ani w odpowiedzi. Warunki korzystania z naszego API: regulamin.
Zacznij za darmo
400 tokenów na start, potem 50 tygodniowo. Klucz API w 30 sekund, bez karty.