Poland Building Permits API: Construction Leads
Pricing
from $4.00 / 1,000 permit rows
Poland Building Permits API: Construction Leads
Get new Polish building permits (pozwolenia na budowę) issued to companies and public bodies from the official GUNB register: investor, authority, decision date, category and site in English. Construction leads by voivodeship, updated almost daily. No API key; JSON via API/MCP, $4 per 1,000 rows.
Pricing
from $4.00 / 1,000 permit rows
Rating
0.0
(0)
Developer
Japan Open Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Get new Polish building permits (pozwolenia na budowę) issued to companies and public bodies — investor, authority, decision date, building category and site — from the official GUNB register. Pick a voivodeship (for example mazowieckie, Silesia or Warsaw) and get one clean English JSON row per permit decision, newest first.
Each row has the investor (company, cooperative, municipality, parish...), its legal form and a plain-English applicant type such as property developer or energy or utility, the issuing authority and decision number, the decision and filing dates, the building category of Polish building law (I–XXX) in English, the type of works, the project name, the site town, street and TERYT code, the building volume and the number of plots.
- Official source, read fresh on every run: GUNB (Główny Urząd Nadzoru Budowlanego, Poland's General Office of Building Control) publishes its register of building-permit applications and decisions (Rejestr Wniosków, Decyzji i Zgłoszeń, RWDZ) as open data under CC0 1.0, one file per voivodeship, refreshed almost every day. About 2.8 million permits since 2016.
- Construction leads, newest first:
days(default 30) ordateFrom/dateToselect permits by decision date; the newest decisions come first. - Companies and public bodies only. Permits of private persons are never returned, civil partnerships (s.c.) and sole traders are left out, and names that read as a person's name are withheld; designers' names, plot numbers and the house numbers of sites are never output (see Privacy).
- One required input: the voivodeship — Polish name, English name, capital city or TERYT code. Everything else has a default (last 30 days, 20 rows).
- $4 per 1,000 permit rows, no subscription — about $1.80 for a month of company and public permits in Masovia (see pricing).
- Built for pipelines and AI agents: flat camelCase fields, a
statuson every row, plain-English error rows that are free.
What can you do with Poland Building Permits API?
- Building-materials makers and distributors, HVAC, solar, windows, lifts — list the developers, retailers and logistics firms that just got a permit in your region and contact them before the tender.
- Subcontractors and construction firms — follow which developers, housing cooperatives and municipalities are building, where, and what (
permitCategory,buildingCategories). - Commercial real estate, logistics and retail — new warehouses, factories, shops, offices and hotels (
permitCategory: "commercial and industrial"). - Energy and telecom — new networks, masts and wind-turbine structures, substations and PV plants (
permitCategory: "infrastructure and energy",applicantTypes: ["energy or utility", "telecom"]). - Market research — the pipeline of company and public projects by voivodeship, month by month.
- AI agents — answer "which companies got building permits in Masovia this month?" with one tool call and an official source.
How it compares
| BazaPozwoleń | Budowo.pl | This Actor | |
|---|---|---|---|
| Data | GUNB register | GUNB register + tenders | GUNB register (RWDZ), read from the official files on every run |
| Language | Polish | Polish | English labels and field names (names and project titles kept in Polish as published) |
| Pricing | Free search; PREMIUM (export, alerts) 79 zł/month | 99 zł/month (first 20 firms), then 149 zł/month | $4 per 1,000 permit rows, no subscription |
| Access | Web app | Web app, map | API, JSON, schedules, webhooks, Google Sheets, MCP |
| Rows returned | All permits | All permits | Company and public-body investors only |
Prices as published on bazapozwolen.pl and budowo.pl, checked on 2 October 2026. If you read Polish and only browse one region, BazaPozwoleń's free plan may be enough; this Actor is for English output, company and public-body investors only, and automated runs through the API, schedules or MCP.
How to use
- Click Try for free. The default input lists the 20 newest permits of companies and public bodies decided in the last 30 days in świętokrzyskie, in about 10-20 seconds.
- Put your Voivodeship (
mazowieckie,Masovian,Warsawor14all work). - Optionally narrow it down: a town or TERYT code, a period, a permit category or exact building categories, applicant types, a minimum building volume.
- Raise Maximum rows to get every permit (świętokrzyskie: about 80 company and public permits a month; mazowieckie: about 450).
Run it every week
GUNB refreshes the voivodeship files almost every day (the sourceLastUpdated field shows when). Schedule this Actor weekly with {"voivodeship": "mazowieckie", "days": 7, "maxResults": 1000}, or connect a webhook, Google Sheets or your CRM.
Input
| Field | Type | Default | What it does |
|---|---|---|---|
voivodeship | text (required) | "świętokrzyskie" | One of the 16 voivodeships: Polish name ("mazowieckie", "slaskie"), English name ("Masovian", "Lesser Poland"), capital city ("Warsaw", "Kraków") or TERYT code ("14"). |
days | integer | 30 | Permits decided in the last N days (1-366). Ignored when dateFrom is set. |
dateFrom / dateTo | date | empty / today | A fixed period of decision dates, up to 366 days, from 2016-01-01. |
commune | text | empty | A town as written in the register ("Kielce", "Warszawa") or a TERYT code: 7 digits for a commune (gmina), 4 for a county (powiat). |
permitCategory | select | all | housing, commercial and industrial, public and social, infrastructure and energy, agricultural and small buildings, other. |
buildingCategories | list of text | all | Exact categories I-XXX, e.g. ["XVII", "XVIII"]. Overrides permitCategory. |
applicantTypes | list of text | all | e.g. ["property developer", "retailer"] (full list in the input form). |
minVolumeM3 | integer | 0 | Minimum building volume (kubatura) in m³; permits without a volume are dropped when set. |
maxResults | integer | 20 | Maximum permit rows (charged). Newest decisions first. |
Input examples
{ "voivodeship": "Masovian", "days": 7, "permitCategory": "commercial and industrial", "maxResults": 200 }
{ "voivodeship": "wielkopolskie", "dateFrom": "2026-01-01", "dateTo": "2026-06-30", "applicantTypes": ["property developer"], "buildingCategories": ["XIII"], "maxResults": 1000 }
{ "voivodeship": "Silesia", "commune": "Katowice", "days": 90, "maxResults": 100 }
Output
One row per permit decision (the register has one line per plot of land; they are merged by the GUNB number). Example (default input):
{"status": "ok","permitNumber": "ST-SW-KW/WNIOSEK/5000/2026","authorityCaseNumber": "BI.6740.107.2026","decisionNumber": "104/2026","issuingAuthority": "Starosta Powiatu Kazimierza Wielka","issuingAuthorityAddress": "ul. T. Kościuszki 12, 28-500 Kazimierza Wielka","authorisationDate": "2026-09-25","filingDate": "2026-09-07","daysSinceDecision": 0,"isAmendment": false,"applicantName": "Gmina Skalbmierz","applicantType": "municipality or county","applicantLegalForm": "public body","projectNature": "new construction","buildingType": "other than a single-family house","buildingCategory": "XVIII","buildingCategoryLabel": "industrial and storage buildings (factories, warehouses, energy, railway buildings)","permitCategory": "commercial and industrial","projectName": "Budowa budynku magazynowego - magazynu ochrony ludności i obrony cywilnej","projectNameRedacted": false,"cubicVolumeM3": 619,"plotCount": 1,"siteStreet": null,"siteTown": "Skalbmierz","communeCode": "2603054","countyCode": "2603","voivodeshipCode": "26","voivodeship": "świętokrzyskie","region": "Holy Cross","sourceLastUpdated": "2026-09-25T21:35:31Z","sourceUrl": "https://dane.gov.pl/pl/dataset/3467","fetchedAt": "2026-09-25T23:11:44Z","attribution": "Source: GUNB (Główny Urząd Nadzoru Budowlanego), Rejestr Wniosków, Decyzji i Zgłoszeń (RWDZ), file updated 2026-09-25, via dane.gov.pl, CC0 1.0. Translated and reformatted; not affiliated with or endorsed by GUNB. Companies and public bodies only."}
When nothing matches, or the input is wrong, you get one free row with status: "not_found" or "error" and an error sentence saying what to change.
Output fields
| Field | Meaning |
|---|---|
permitNumber | GUNB register number of the application (unique key) |
authorityCaseNumber, decisionNumber | The authority's case file number and decision number |
issuingAuthority, issuingAuthorityAddress | The office that issued the decision (starosta, city president, voivode) |
authorisationDate, filingDate | Decision date and application date (YYYY-MM-DD) |
daysSinceDecision | Days between the decision and the run |
isAmendment | The project name says it amends, transfers or revokes an earlier decision |
applicantName | The investor (company or public body), as written in the register |
applicantType | Plain-English type: municipality or county, state body or agency, religious organisation, school or university, health or social care, housing cooperative or community, property developer, energy or utility, telecom, retailer, forestry or agriculture, non-profit, other company (from the name) |
applicantLegalForm | Legal form read from the name: sp. z o.o., S.A., sp.k., sp.j., sp.p., S.K.A., cooperative, foundation, association, foreign company, public body |
projectNature | new construction, extension, vertical extension, reconstruction, demolition, other works |
buildingType | single-family house, or other than a single-family house |
buildingCategory, buildingCategoryLabel, permitCategory | Category I-XXX of Polish building law, its English label and its group |
projectName, projectNameRedacted | The project title in Polish, with plot and house numbers removed; null and true when it looked like it named a person |
cubicVolumeM3, plotCount | Building volume when declared (about a third of permits); number of plots covered |
siteStreet, siteTown, communeCode, countyCode | Street (no house number), town and TERYT codes of the site |
voivodeshipCode, voivodeship, region | TERYT code, Polish and English name |
sourceLastUpdated, sourceUrl, fetchedAt, attribution | When GUNB last updated the file, the dataset page, when the row was produced, and the credit line |
status, error | ok, not_found or error, and the reason with the fix |
Each run also saves a RUN_SUMMARY record in its key-value store: permits in the period, how many belonged to private persons (not returned), how many were withheld by the name check and why, how many matched your filters and how many rows were returned.
How much does it cost?
Pay per event, with two charges and no subscription:
| Event | Price | When it is charged |
|---|---|---|
Permit row (result-row) | $0.004 per row ($4.00 per 1,000) | Each row with status: "ok" |
Run start (apify-actor-start) | $0.002 per run | Once per run, including runs that return only a not_found or error row |
not_found and error rows themselves are free, but the $0.002 run start is charged on every run, so a run with a typo in the input costs $0.002.
| Use | Rows | Cost |
|---|---|---|
| Default run (20 newest company permits in świętokrzyskie, last 30 days) | 20 | $0.082 |
| Every company and public permit in one voivodeship for a month, run monthly (świętokrzyskie about 80, mazowieckie about 450) | 80-450 | about $0.32-$1.80 a month |
| Every company and public permit in mazowieckie for 12 months (one-off market overview) | about 5,700 | about $23 |
| Every company and public permit in Poland for a month (16 runs, one per voivodeship) | about 3,000-4,000 | about $12-$16 a month |
| Input error or no matching permit | 0 (one free row) | $0.002 |
On the Store this is shown as $4.00 / 1,000 permit rows.
For comparison, per month (Polish services built on the same GUNB register, prices checked on 2 October 2026; 1 zł ≈ $0.27):
| Coverage, every month | BazaPozwoleń | Budowo.pl | This Actor |
|---|---|---|---|
| One voivodeship | Free to browse; 79 zł (about $21) with export and alerts | 99-149 zł (about $27-$40), all of Poland | about $0.32-$1.80 |
| All of Poland | 79 zł (about $21) | 99-149 zł (about $27-$40) | about $12-$16 |
Set Maximum cost per run in the run options to cap any run; the Actor stops when the cap is reached.
Use via API & MCP (AI agents)
REST API (synchronous, returns the rows):
curl -X POST "https://api.apify.com/v2/acts/japan-open-data~poland-building-permits/run-sync-get-dataset-items?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"voivodeship": "mazowieckie", "days": 7, "maxResults": 50}'
Python:
from apify_client import ApifyClientclient = ApifyClient("YOUR_TOKEN")run = client.actor("japan-open-data/poland-building-permits").call(run_input={"voivodeship": "Silesia", "permitCategory": "commercial and industrial", "maxResults": 100})for row in client.dataset(run["defaultDatasetId"]).iterate_items():if row["status"] == "ok":print(row["authorisationDate"], row["applicantName"], row["siteTown"], row["buildingCategoryLabel"])
MCP: add the Apify MCP server (https://mcp.apify.com) to Claude, Cursor or any MCP client and enable the tool japan-open-data/poland-building-permits.
Recommended settings for agents:
- To answer "which companies got building permits in
- For all of Poland, run once per voivodeship (16 runs).
- A city name such as "Warsaw" selects its voivodeship; add
commune("Warszawa") to keep only that town. - A permit is an authorisation, not a start of works. The bulk file does not state the outcome of each decision;
isAmendmentflags amendments and transfers. - Quote the source as in
attribution("GUNB, RWDZ", withsourceLastUpdated) and say that only company and public-body investors are included.
Summary for AI assistants: This tool lists Polish building-permit decisions whose investor is a company or public body in one voivodeship and period, from the official GUNB register (RWDZ, CC0), one flat English JSON row per permit with investor, legal form, applicant type, authority, decision date, building category I-XXX in English, type of works, project name, site town and TERYT code. Permits of private persons are excluded.
Privacy: companies and public bodies only
In the GUNB register the investor name is empty when the investor is a private person, but the site would still point to a home, so those permits are never returned. On top of that, this Actor:
- returns a named investor only when the name itself shows a company or a public body (an allow-list): a legal form (sp. z o.o., S.A., sp.k., sp.j., sp.p., S.K.A., spółdzielnia, fundacja, stowarzyszenie, a foreign company form) or a public body (gmina, powiat, miasto, Skarb Państwa, a parish, a university, Lasy Państwowe, a housing community...). Sole traders (who carry no legal form) and civil partnerships (s.c., contracts between private persons named after them) are left out;
- withholds names that read as a private person's name even with a legal form: a first name next to a surname in any grammatical case (Polish PESEL first-name and surname lists, CC0, so "Fundacja Anny Nowak" is withheld too), a surname followed by a first name, a representative named after reprezentowana przez / działający przez, initials followed by a surname, titles (dr, mgr, ks.), words such as pan, pani, właściciel, prowadzący działalność or reprezentant, and 11-digit numbers. For general, limited and professional partnerships (sp.j., sp.k., sp.p.), whose names must contain a partner's name, any first name withholds the row; a partner's surname alone can remain (for example "Kowalski i Wspólnicy sp.j."). Patron and street names ("im. Jana Pawła II", "pw. św. Józefa", "ul. Adama Mickiewicza") are kept. Across every permit in the 16 voivodeship files (2,849,175 permits, files of 30 September 2026), 779,627 have an investor name; about 608,000 pass, including a check that withholds some genuine companies named after their founder, on the safe side;
- never outputs the designer's name and licence number, plot (działka) numbers or the house number of the site; plot and house numbers are also removed from project names, and a project name that looks like it names a person is replaced by
null(projectNameRedacted: true). The investor name is kept as registered, so a housing community (wspólnota mieszkaniowa) named after its building can include that building's address.
Before release, every row this Actor could return was rebuilt from all 16 voivodeship files (every permit since 2016) and scanned with a broader, independent person-name detector; every hit outside patron, saint and street names was checked by hand (see tests/audit_output.py). The check still works from names, so a company name that contains a person's name in an unusual form could pass; report one on the Issues tab and it will be fixed.
FAQ
Can I get all of Poland?
Yes, one voivodeship per run: schedule 16 runs (or loop over the TERYT codes 02-32 through the API).
Can I use it to find construction leads in Poland?
Yes. Filter by permitCategory, buildingCategories or applicantTypes and schedule a weekly run with days: 7: each row names the company or public body behind a new project, the authority, the site town and the building category, before works start.
How fresh is the data?
GUNB refreshes the voivodeship files almost every day (sourceLastUpdated). Decisions reach the register when the authority records them, which can be days or weeks after the decision date, so a run for the last 7 days may miss decisions recorded later; overlapping periods catch them.
Does a permit mean the building will be built?
No. It is an authorisation; projects can start late, change or be abandoned. The bulk file does not say whether each decision granted or refused the permit.
Why is a permit I know missing?
The investor may be a private person, a sole trader or a civil partnership, the name may have been withheld by the name check, or the authority may not have recorded it yet. Construction notifications (zgłoszenia) are a different register and are not included.
Is this an official GUNB service?
No. It re-publishes GUNB open data (CC0 1.0), translated and reformatted. It is not affiliated with, or endorsed by, GUNB.
Troubleshooting
| Symptom | Fix |
|---|---|
error: not a Polish voivodeship | Use one of the 16 names or a TERYT code; run once per voivodeship |
error: period too long | Use at most 366 days per run |
not_found with a commune | Check the spelling as written in the register, or use the 7-digit TERYT code |
| Few rows | Raise days, or remove applicantTypes / minVolumeM3 |
| An error row about the GUNB file | The GUNB server was busy or down; run again in a few minutes (the row is free) |
Known limitations
- One voivodeship per run and at most 366 days of decisions per run.
- Company and public-body investors only (about a fifth of all permit decisions; most permits are for single houses of private persons).
- No company number (KRS / NIP / REGON) in the register, so rows cannot be joined to company registers by ID;
applicantTypeandapplicantLegalFormare read from the name. - Investor names, project names and streets are kept in Polish as written by the authority, including typos and inconsistent spelling of the same company.
- Building volume is declared for about a third of permits; the site street is empty for many rural sites.
- The bulk file does not state whether a decision granted or refused the permit.
Data source and licence
Główny Urząd Nadzoru Budowlanego (GUNB), Rejestr Wniosków, Decyzji i Zgłoszeń (RWDZ) — "Wnioski i decyzje w sprawach budowlanych", one file per voivodeship, listed on dane.gov.pl (dataset 3467, https://dane.gov.pl/pl/dataset/3467) under CC0 1.0. Files downloaded from https://wyszukiwarka.gunb.gov.pl/pliki_pobranie/ (the CAPTCHA-protected search screen is not used). First-name and surname lists for the privacy check: Ministry of Digital Affairs, PESEL register statistics on dane.gov.pl (datasets 1501 and 1681, CC0 1.0). This Actor is not affiliated with GUNB.
More from Japan Open Data
- NSW Rent Prices by Postcode (Official Bond Data) — median weekly rents for any New South Wales postcode or suburb by dwelling type and bedrooms, from NSW Fair Trading's official rental bond data, with quartiles and year-over-year change.
- Korea E-commerce Company Leads (KFTC Register) — new Korean e-commerce companies from the official KFTC online seller register (통신판매업), in English with business registration number and store platform.
- France Building Permits API: Construction Leads — new French building permits filed by companies, with SIREN, project size and site, from the official Sitadel register.
- UK Importers & Exporters by Product (HMRC Data) — UK companies that imported or exported a product each month, by HS code or keyword, from official HMRC trade data.
- UK Visa Sponsor Register Tracker (Daily Changes) — new, removed and downgraded UK visa sponsor licences from the official Home Office register.
- UK HGV Operator Licence Lookup (Official DVSA) — Great Britain's official HGV and bus / coach operator licences by company, postcode and fleet size.
- UK Waste Carrier Licence Check (Environment Agency) — check whether an English business is a registered waste carrier, broker or dealer.
- Taiwan Real Estate Sold Prices API in English — official Taiwan actual-price-registration sales and rents by city and district, in English with price per ping and per m².
- England Listed Building & Conservation Area Check — official listed buildings, scheduled monuments, conservation areas and Article 4 directions for any postcode or coordinates in England.
- England Protected Site Check: SSSI, AONB & Green Belt — SSSI, National Landscape (AONB), National Park, Green Belt, SAC/SPA and Ramsar checks for any English postcode or coordinates, one row per site, from official Natural England and DLUHC data.
- France Property Risk Lookup by Address (Georisques) — official Géorisques risks for any French address or coordinates.
- UK Flood Risk Lookup by Postcode (England) — Environment Agency flood zone, recorded flood extents and flood defences for any postcode in England.
- US Flood Zone Lookup by Address (FEMA NFHL) — official FEMA flood zone, base flood elevation and FIRM panel for any U.S. address or coordinates.
- UK NHS Organisation Lookup (Official ODS Codes) — official NHS ODS register by postcode, type or ODS code: GP practices, pharmacies, dentists, trusts, care homes and more.
- US Hail History by Location (NOAA NEXRAD Radar) — every hail day near any U.S. latitude/longitude with max estimated hail size.
- US Storm Reports API: Hail, Wind & Tornado (NWS) — U.S. hail, wind, tornado and flood reports from official NWS Local Storm Reports.
- Mexico Gas Prices API by Station (Official CNE) — today's gas and diesel prices at every Mexican gas station.
- Argentina Fuel Prices API by Station (Official) — last reported gasoline (nafta), diesel and CNG prices at every Argentine gas station.
- TSA Checkpoint Travel Numbers (Daily, Weekly & YoY) — daily U.S. TSA airport checkpoint traveler counts.
- Japan Postal Code & Address in English — Japanese postal codes and addresses in English/romaji, kanji and kana.
Feedback
Found a wrong row, a label that reads oddly, a company withheld that should not be, or a name that should have been withheld? Open an issue on the Issues tab — it will be read.