Poland Building Permits API – Official GUNB RWDZ
Pricing
from $1.60 / 1,000 projects
Poland Building Permits API – Official GUNB RWDZ
Poland building permits and construction notifications from the official GUNB register (RWDZ): project, category, cubature, location, dates, office. Investor, address and plots for companies and public bodies; private persons anonymised. Filter by region, date, category. Export CSV, JSON or Excel.
Pricing
from $1.60 / 1,000 projects
Rating
0.0
(0)
Developer
Kamil Kaczmarek
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Poland Building Permits API – Official GUNB Register
Poland building permits API: new building permits and construction notifications from all of Poland, straight from the official register of the Chief Building Control Office (GUNB): RWDZ, Rejestr Wniosków, Decyzji i Zgłoszeń w sprawach budowlanych. For each case you get the project name, building category (I–XXX), type of works, cubature, commune with TERYT codes, application and decision dates and the issuing office. When the investor is a company, public body, church, non-profit or housing community you also get its name, the site address, case and decision numbers and the plots with parcel IDs ready for ULDK and maps. Filter by voivodeship, county or commune, date, category, investor type or keywords, newest first, and export JSON, CSV or Excel. Polski opis: pozwolenia na budowę i zgłoszenia robót budowlanych z rejestru RWDZ GUNB, z filtrem regionu i daty; osoby fizyczne zanonimizowane.
No private persons. Investors who are people, sole traders or partnerships are never named, and their cases come at commune level only: no address, plots, case numbers or a project name that could point at them. Designers are never published. See Privacy.
What data can you get
Permit decisions and notifications without objection registered since 2016, refreshed every night by GUNB. Mazowieckie alone has about 400,000 permit cases; notifications for the whole country add about 390,000.
- Project: name (nazwa zamierzenia), building category with English and Polish names, investment kind (single-family house or other), type of works (new build, extension, superstructure, reconstruction, demolition, other), cubature in m³.
- Dates and status: application date, permit decision date, notification status (no objection).
- Where: TERYT codes of commune, county and voivodeship for every case; for named investors also street, house number, city and plots (
parcelIdsuch as146501_8.0101.AR_2.12/3, the ULDK format). - Who: investor name and type (COMPANY, PUBLIC, RELIGIOUS, NON_PROFIT, HOUSING_COMMUNITY); the issuing office and its address.
- Identifiers: a stable
recordId, and for named investors the GUNB case number, office case number and decision number.
How to use
- Press Start. With no changes you get the 100 newest permits in Mazowieckie (under a minute).
- Pick voivodeships (or Whole country) or TERYT codes of counties and communes, then narrow by date, building category, type of works, investor type or keywords.
- Tick Only cases with a named investor for B2B leads: developers, logistics parks, public tenders in preparation.
- Schedule a daily run with Only new or changed cases to get a feed of fresh permits.
Input
Company/public permits in Warsaw from the last 30 days (B2B leads):
{ "terytCodes": ["1465"], "onlyWithInvestor": true, "daysBack": 30, "maxItems": 100 }
New warehouses and factories ≥10,000 m³ anywhere in Poland in the last 90 days (market / sales):
{ "voivodeships": ["ALL"], "categories": ["XVIII"], "worksTypes": ["NEW_BUILD"], "minCubature": 10000, "daysBack": 90, "maxItems": 500 }
| Field | Default | What it does |
|---|---|---|
registers | ["PERMITS"] | PERMITS (building permit decisions) and/or NOTIFICATIONS (zgłoszenia, no investor column). |
voivodeships | ["14"] Mazowieckie | TERYT codes 02-32 or names such as małopolskie; ["ALL"] for the whole country. |
terytCodes | none | County or commune prefixes, e.g. 1465 Warsaw, 1261 Kraków. When set, they replace voivodeships. |
dateFrom, dateTo, daysBack | none | Decision date for permits, application date for notifications. |
categories | all | Roman numerals I-XXX, e.g. XVIII industrial and warehouse buildings, XIII multi-family housing. |
investmentKinds | all | SINGLE_FAMILY_HOUSE, OTHER. |
worksTypes | all | NEW_BUILD, EXTENSION, SUPERSTRUCTURE, RECONSTRUCTION, DEMOLITION, OTHER_WORKS, UNKNOWN. |
onlyWithInvestor | false | Only permits with a named organisation investor. |
investorTypes | any | COMPANY, PUBLIC, RELIGIOUS, NON_PROFIT, HOUSING_COMMUNITY. |
investorContains | none | Text in the investor name, e.g. Dom Development. |
keywords | none | Any of these words in the project name, e.g. hala, fotowolta. |
minCubature | 0 | Minimum cubature in m³. |
maxItems | 100 | Newest first; hard cap of results and cost. |
onlyNew, stateKey | false, default | Skip cases delivered earlier with unchanged data. |
Output
A permit with a named investor (shortened):
{"recordId": "RWDZ-CBCA84C2525D3716","register": "PERMIT","investorDisclosed": true,"investorName": "Zakład Komunalny Sp. z o.o.","investorType": "COMPANY","projectName": "Budowa instalacji termicznego przekształcenia odpadów wraz z odzyskiem energii","worksType": "OTHER_WORKS","categoryCode": "XVIII","categoryName": "industrial and warehouse buildings","applicationDate": "2026-08-04","decisionDate": "2026-10-09","status": "DECISION_ISSUED","caseNumber": "ST-OP-OP/WNIOSEK/4474/2026","decisionNumber": "374/2026","locationPrecision": "ADDRESS","street": "ul. Podmiejska","houseNumber": "69","city": "Opole","terytCode": "1661011","voivodeship": "opolskie","parcels": [{"parcelId": "166101_1.0058.24", "unit": "166101_1", "precinct": "0058", "number": "24", "sheet": null}],"parcelsCount": 2,"authorityName": "Prezydent Miasta Opole","license": "CC0 1.0 (dane.gov.pl). Source: Główny Urząd Nadzoru Budowlanego, RWDZ; processed by this Actor, people's data removed."}
A private person's permit has investorDisclosed: false, locationPrecision: "COMMUNE", the TERYT codes, category, dates, cubature and office, and nulls for investor, address, plots and numbers. The run's key-value store also holds SUMMARY (files read, matching cases, cases with a named investor, withheld project names) and RUN_STATS.
Pricing (pay per event)
| Event | Price | When |
|---|---|---|
project | $0.002 | One delivered case without a named investor (private person, or a notification). |
project-with-investor | $0.006 | One delivered permit with a named organisation investor, address, plots and numbers. |
100 newest Mazowieckie permits cost about $0.30 (roughly a fifth have a named investor). US building permit Actors in the Apify Store charge $0.002-0.01 per permit and UK planning applications $0.01-0.02. A case delivered once is never charged again in the same run, and Only new or changed cases keeps scheduled runs cheap.
Use cases
- Construction sales: materials, windows, HVAC, PV, elevators and general contractors find projects at the permit stage.
- Developers and real estate: competitors' new projects and land use by county.
- Market analysis: permits by category, commune and month; housing pipeline.
- Public sector: schools, roads and networks permitted to communes before tenders appear.
- Monitoring: a daily feed of new permits in chosen counties.
Privacy
The register is public under Art. 82b of the Construction Law, which excludes the investor's address from publication, and GDPR still applies to personal data in public registers (judgment of the Supreme Administrative Court, III OSK 2357/22). This Actor therefore:
- Names only investors whose name carries a legal form or public-body marker (sp. z o.o., S.A., gmina, powiat, parafia, fundacja, wspólnota mieszkaniowa…) and no first name with a surname (checked against the PESEL first-name list).
- Does not name people, sole traders, civil, general or professional partnerships, or limited partnerships without a company general partner. Their cases come without investor, street, house number, city, postal code, plots, case, office and decision numbers;
recordIdis a hash, not the case number. - Withholds the project name of such cases when it contains a digit, an address word or a proper noun after the first word, and any project name that contains a person's name.
- Never reads the designer columns.
Use the data for business-to-business contact with organisations and follow GDPR when you contact anyone.
FAQ
Is there an API for building permits in Poland? GUNB publishes RWDZ as open data (CSV downloads, nightly refresh) and has APIs aimed at local building offices (e-Budownictwo). This Actor turns the public RWDZ files into one filterable table callable from the Apify API, with CSV/JSON/Excel export.
How do I export Polish building permits to CSV or Excel? Set Max items (and region/date filters), run the Actor, then download the dataset as CSV or Excel from the run page or via the Apify API.
Can I get the investor name and plot IDs? Yes for organisation investors (companies, public bodies, churches, non-profits, housing communities): name, address, case/decision numbers and parcelId in ULDK format. Private persons, sole traders and partnerships stay anonymised at commune level only.
Does it cover the whole country? Yes — pick voivodeships or ["ALL"], or TERYT codes for counties/communes. Default is the 100 newest permits in Mazowieckie so a cold start stays cheap and fast.
Is this legal? GUNB publishes the register as open data on dane.gov.pl (dataset 3467) under CC0 1.0, with no account needed; robots.txt allows the download folder. Crediting the source is not required by CC0 but is kept in source and license.
Does the permit say whether it was granted? The open data lists issued decisions without their outcome; every permit row has a decision number and date. Notifications carry their status (no objection).
Why is there no investor for notifications? GUNB does not publish it in the notifications file.
How do I filter by city? Use TERYT codes: 1465 Warsaw, 1261 Kraków, 0264 Wrocław, 3064 Poznań, 2261 Gdańsk, 1061 Łódź.
How fresh is it? GUNB regenerates the files every night. Offices enter cases with a delay, especially notifications, so the last few days fill in over the following weeks; with Only new or changed cases late entries still reach you.
How long does a run take? One voivodeship takes about 1-2 minutes. The whole country means 16 files (about 350 MB) and takes several minutes; give the run more memory (2-4 GB) for more CPU and a faster run. Date and category filters make reading faster.
Integrations
Call the Actor from the Apify API, Python or JavaScript clients, Make, Zapier, n8n or the Apify MCP server and read the dataset as JSON, CSV or Excel. Pair parcelId with a ULDK Actor to get plot geometry and zoning.
Development
python -m venv .venv && .venv/bin/pip install -r requirements-dev.txt.venv/bin/python -m pytest -qexamples/run-local-ppe.sh examples/warsaw-company-permits.json
Disclaimer
Data comes from the Rejestr Wniosków, Decyzji i Zgłoszeń w sprawach budowlanych (RWDZ) kept by the Główny Urząd Nadzoru Budowlanego, published at wyszukiwarka.gunb.gov.pl and on dane.gov.pl (dataset 3467) under CC0 1.0, processed by this Actor (filtered, grouped by case, translated codes, people's data removed). Not an official extract. The first-name list used for privacy screening comes from the PESEL register (dane.gov.pl dataset 1667, CC0 1.0).
🇵🇱 Po polsku
Aktor zwraca pozwolenia na budowę i zgłoszenia robót budowlanych z Rejestru Wniosków, Decyzji i Zgłoszeń (RWDZ) Głównego Urzędu Nadzoru Budowlanego: nazwę zamierzenia, kategorię obiektu (I-XXX), rodzaj robót, kubaturę, gminę z kodami TERYT, daty wniosku i decyzji oraz organ. Gdy inwestorem jest spółka, jednostka samorządu lub inny organ publiczny, kościół, fundacja, stowarzyszenie, spółdzielnia lub wspólnota mieszkaniowa, także nazwę inwestora, adres budowy, numery sprawy i decyzji oraz działki z identyfikatorem w formacie ULDK. Filtry: województwo, powiat lub gmina (TERYT), daty, kategoria, rodzaj inwestycji i robót, typ inwestora, fragment nazwy inwestora, słowa w nazwie zamierzenia, minimalna kubatura; najnowsze najpierw. Osoby fizyczne, jednoosobowe działalności i spółki osobowe nie są wymieniane z nazwy, a ich sprawy są podawane tylko z dokładnością do gminy, bez adresu, działek i numerów. Dane projektantów nie są odczytywane. Źródło: RWDZ, GUNB, dane.gov.pl, licencja CC0 1.0.