Poland Building Permits API – Official GUNB RWDZ avatar

Poland Building Permits API – Official GUNB RWDZ

Pricing

from $1.60 / 1,000 projects

Go to Apify Store
Poland Building Permits API – Official GUNB RWDZ

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

Kamil Kaczmarek

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

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 (parcelId such as 146501_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

  1. Press Start. With no changes you get the 100 newest permits in Mazowieckie (under a minute).
  2. 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.
  3. Tick Only cases with a named investor for B2B leads: developers, logistics parks, public tenders in preparation.
  4. 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 }
FieldDefaultWhat it does
registers["PERMITS"]PERMITS (building permit decisions) and/or NOTIFICATIONS (zgłoszenia, no investor column).
voivodeships["14"] MazowieckieTERYT codes 02-32 or names such as małopolskie; ["ALL"] for the whole country.
terytCodesnoneCounty or commune prefixes, e.g. 1465 Warsaw, 1261 Kraków. When set, they replace voivodeships.
dateFrom, dateTo, daysBacknoneDecision date for permits, application date for notifications.
categoriesallRoman numerals I-XXX, e.g. XVIII industrial and warehouse buildings, XIII multi-family housing.
investmentKindsallSINGLE_FAMILY_HOUSE, OTHER.
worksTypesallNEW_BUILD, EXTENSION, SUPERSTRUCTURE, RECONSTRUCTION, DEMOLITION, OTHER_WORKS, UNKNOWN.
onlyWithInvestorfalseOnly permits with a named organisation investor.
investorTypesanyCOMPANY, PUBLIC, RELIGIOUS, NON_PROFIT, HOUSING_COMMUNITY.
investorContainsnoneText in the investor name, e.g. Dom Development.
keywordsnoneAny of these words in the project name, e.g. hala, fotowolta.
minCubature0Minimum cubature in m³.
maxItems100Newest first; hard cap of results and cost.
onlyNew, stateKeyfalse, defaultSkip 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)

EventPriceWhen
project$0.002One delivered case without a named investor (private person, or a notification).
project-with-investor$0.006One 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; recordId is 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 -q
examples/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.