Poland Local Statistics – GUS BDL API (Gmina, Powiat, TERYT)
Pricing
$0.50 / 1,000 statistics row returneds
Poland Local Statistics – GUS BDL API (Gmina, Powiat, TERYT)
Official GUS Bank Danych Lokalnych (BDL) API as flat rows for gmina, powiat and voivodeship: population, REGON, unemployment, budgets, housing. Includes TERYT codes. No scraping.
GUS BDL API Scraper – Bank Danych Lokalnych, TERYT, Polish Local Statistics
Official Statistics Poland (GUS) data for every gmina, powiat and województwo as one flat table: population, REGON firms, wages, unemployment, housing, municipal budgets and tens of thousands of other Bank Danych Lokalnych (BDL) variables. Includes official TERYT codes for GIS/CRM joins. Export to Excel, CSV, JSON, Google Sheets, Power BI or your own app via the Apify API.
PL: Oficjalne dane GUS / Bank Danych Lokalnych dla gmin, powiatów i województw w jednej tabeli, z kodami TERYT. Bez ręcznego szukania ID jednostek i bez stronicowania API. Wpisz słowo (np. „bezrobocia”, „REGON”, „mieszkania oddane”), wybierz poziom i lata – pobierz Excel lub CSV.
Source: public GUS BDL REST API (bdl.stat.gov.pl/api/v1). No scraping, no login.
Who is this for
- Real-estate / retail location analysts – population, dwellings, wages by gmina or powiat for site selection.
- Franchise & expansion teams – REGON firm density and unemployment maps before opening a new city.
- Grant / EU-funds consultants – regional indicators for applications (pairs with Poland EU Funding Calls (Nabory)).
- Local journalists, students, market researchers – reproducible GUS extracts without clicking through bdl.stat.gov.pl.
Why use it
- Official source only – GUS BDL API, not HTML scraping.
- Flat rows – one row = unit × indicator × year, with readable names, measure unit, BDL unit ID and TERYT.
- Find variables by word – type Polish search terms; matched variable IDs are logged.
- Any level down to gmina, optionally limited to one voivodeship or powiat (
parentUnitId). - Handles GUS rate limits (waits/retries on HTTP 429). Optional free BDL
clientIdfor very large pulls.
Input examples by buyer type
Location analyst – population of every voivodeship, 2023–2024:
{"presets": ["population"], "unitLevel": "2", "years": ["2023", "2024"]}
Franchise expansion – firms per 10k residents in every gmina of Mazowieckie, 2024:
{"searchTerms": ["REGON na 10 tys"], "maxVariablesPerSearch": 1, "unitLevel": "6", "parentUnitId": "071400000000", "years": ["2024"]}
Grant consultant – unemployment + budget revenue + dwellings for every powiat, 2023–2024:
{"presets": ["unemployment_rate", "budget_own_revenue_pc", "dwellings_per_1000"], "unitLevel": "5", "years": ["2023", "2024"], "maxItems": 5000}
Ready-made presets: population, firms_per_10k, wage_vs_national (relative PL=100; BDL has no absolute PLN average wage at powiat/gmina), unemployment_rate (December registered rate), dwellings_per_1000, budget_own_revenue_pc (gmina budgets), powiat_budget_own_revenue_pc (powiat budgets, 314 land powiats with real values, 2002–2025; the 66 cities with powiat rights return 0 here because GUS books their revenue in the city/gmina budget, so use budget_own_revenue_pc for them; 2024 median for land powiats: 714.80 zł).
Output example
{"variableId": 72305, "variableFullName": "Ludność wg grup wieku i płci: ogółem – ogółem", "measureUnit": "osoba","unitId": "071412865028", "unitName": "Bemowo - dzielnica", "teryt": "1465028", "unitLevel": 6, "unitLevelName": "gmina","year": 2024, "value": 128895, "attrId": 1}
Fields: variableId, variableName, variableFullName, subjectId, subjectName, measureUnit, unitId, unitName, teryt (official TERYT: 2 digits voivodeship, 4 powiat, 7 gmina incl. type digit – join with GUS TERYT, PRG/GIS maps; empty for NUTS 0/1/3/4), unitLevel, unitLevelName, parentUnitId, year, value, attrId, apiUrl.
Example dataset (demo run)
Cheap public demo on build 0.1.10 (2026-10-16): presets: ["population"], unitLevel: "2", years: ["2024"] → 16 voivodeship rows with TERYT.
- Open demo run
- Open dataset Or click Try for free on the Store page with the default example input.
Unit levels
0 Poland, 1 macroregion, 2 voivodeship (województwo), 3 region, 4 subregion (podregion), 5 powiat, 6 gmina. Variables not published at the chosen level are skipped with a log warning. Level 6 returns about 4,200 units (urban/rural parts of mixed gminas and Warsaw districts listed separately).
Pricing
Pay per result: you pay only for rows returned. Use maxItems and years to control cost.
Related actors (same publisher)
- Poland EU Funding Calls (Nabory) – Dotacje UE i KPO – official MFiPR nabory / fundusze europejskie tables.
- App Store Reviews Scraper – official Apple RSS feed – iOS reviews via Apple’s public customer-review feed.
Tips
- Leave
yearsempty for the whole time series (often 1995–2025). - Common voivodeship IDs: 071400000000 Mazowieckie, 011200000000 Małopolskie, 012400000000 Śląskie. Run once at level 2 to see all 16.
- Data licence: GUS publishes BDL for free reuse; cite "Źródło: GUS, Bank Danych Lokalnych".
Keywords: GUS BDL, Bank Danych Lokalnych, GUS API, BDL API, TERYT, dane GUS gminy, statystyka powiatów, Polish local statistics, ludność gmin, bezrobocie powiaty, REGON, dochody własne gmin.