{"id":"67ee5898-9708-41a2-b374-922efee7607e","type":"API","name":"Dwelling stocks - indicators","slug":"dwelling-stocks-indicators","description":"HOUSING ECONOMY AND MUNICIPAL INFRASTRUCTURE › DWELLING STOCK. Local Data Bank (BDL) subject P2430: yearly territorial series for Poland (voivodship to gmina level), units keyed by TERYT ids.","free_access_class":"FREE_NO_AUTH","auth_type":"NONE","homepage_url":"https://api.stat.gov.pl/Home/BdlApi","docs_url":"https://api.stat.gov.pl/Home/BdlApi","repo_url":null,"status":"ACTIVE","verification_state":"VERIFIED","tags":[],"logo_url":"https://api.stat.gov.pl/Content/images/favicon.ico","primary_source_url":"https://bdl.stat.gov.pl/bdl/dane/podgrup/temat#P2430","extraction_confidence":"0.40","created_at":"2026-07-25T14:43:40.607Z","updated_at":"2026-09-07T12:48:21.533Z","last_verified_at":"2026-09-06T20:31:56.082Z","deprecated_at":null,"ranking_score":61,"last_ranked_at":"2026-09-01T05:07:48.833Z","last_seen_at":null,"last_validated_at":null,"last_uptime_at":"2026-09-07T12:48:21.533Z","search_vector":"'access':113B 'accessible':250B 'across':78B,135B,215B,272B 'administr':83B 'administrative':220B 'allow':102B 'allowing':239B 'analysi':123B 'analysis':260B 'and':143B,199B,211B,258B,264B,269B 'api':44B,117B,181B,254B 'at':267B 'bank':13B,39B,40B,150B,176B,177B 'bdl':14B,43B,116B,151B,180B,253B 'broader':59B,196B 'by':165B,183B 'categori':52B 'category':189B 'characterist':75B 'characteristics':212B 'code':100B 'coding':237B 'condit':126B 'conditions':263B 'consist':103B 'consistent':240B 'countri':137B 'country':274B 'cover':50B 'covering':187B 'danych':41B,178B 'data':12B,38B,111B,149B,175B,248B 'dataset':32B,109B,169B 'datasets':246B 'develop':129B 'development':266B 'disaggreg':80B 'disaggregated':217B 'down':224B 'dwell':1A,9B,55B,77B 'dwelling':138A,146B,192B 'dwellings':214B 'each':228B 'economi':5B,61B 'economy':142B,198B 'for':157B,255B 'from':222B 'gmina':24B,89B,161B,226B 'gus':49B,186B 'hous':4B,60B,125B 'housing':141B,197B,262B 'id':30B 'identifi':95B 'identified':232B 'ids':167B 'indic':3A 'indicators':140A 'infrastructur':8B,64B,128B 'infrastructure':145B,201B,265B 'is':170B,231B,249B 'it':203B 'key':27B 'keyed':164B 'level':25B,84B,134B,162B 'levels':221B,271B 'linkag':104B 'linkage':241B 'local':11B,37B,133B,148B,174B,270B 'lokalnych':42B,179B 'maintain':45B 'maintained':182B 'multipl':82B 'multiple':219B 'municip':7B,63B,90B 'municipal':144B,200B 'municipality':227B 'nation':107B 'national':244B 'number':73B,210B 'of':172B,213B,261B 'offici':98B 'official':235B 'on':191B,208B 'other':243B 'p2430':16B,53B,153B,190B 'part':34B,171B 'poland':21B,48B,79B,158B,185B,216B 'programmat':119B 'programmatic':256B 'provid':67B 'provides':204B 'region':131B 'regional':268B 'retriev':120B 'retrieval':257B 'section':65B,202B 'seri':19B 'series':156B 'statist':47B,70B,108B 'statistical':245B 'statistics':184B,207B 'stock':2A,10B,56B,147B,193B 'stocks':139A 'subject':15B,51B,152B,188B 'support':122B 'supports':259B 'system':101B,238B 'territori':18B,69B,92B 'territorial':155B,206B,229B 'teryt':29B,99B,166B,236B 'the':173B,195B,209B,234B,247B,252B,273B 'this':168B 'through':251B 'to':160B,218B,225B 'unit':26B,93B,230B 'units':163B 'use':96B 'using':233B 'voivodship':22B,86B,159B,223B 'with':242B 'within':57B,194B 'year':17B,68B 'yearly':154B,205B","popularity_score":"0.0000","maintenance_score":"0.7000","institution_id":"2b3815fc-d28d-444c-b8f1-906ef8cff848","institution_type":"STATISTICS_OFFICE","country_code":"PL","official_confidence":40,"proof_summary":"40% - Official domain (stat.gov.pl)","source_seed_url":null,"is_public_sector":true,"published_at":"2026-07-25T19:29:35.664Z","geographic_scope":"NATIONAL","name_en":null,"description_en":"This dataset is part of the Local Data Bank (Bank Danych Lokalnych, BDL) API maintained by Statistics Poland (GUS), covering subject category P2430 on dwelling stock within the broader Housing Economy and Municipal Infrastructure section. It provides yearly territorial statistics on the number and characteristics of dwellings across Poland, disaggregated to multiple administrative levels from voivodship down to gmina (municipality). Each territorial unit is identified using the official TERYT coding system, allowing consistent linkage with other national statistical datasets. The data is accessible through the BDL API for programmatic retrieval and supports analysis of housing conditions and infrastructure development at regional and local levels across the country.}}","native_lang":"en","access_level":"direct","formats":[],"capability_tier":"live","trust_score":58.25,"merged_into_entry_id":null,"identity_key":"API|https://bdl.stat.gov.pl/bdl/dane/podgrup/temat#P2430|dwelling stocks - indicators","upstream_ref":"bdl.stat.gov.pl:subject:P2430","access":{"level":"direct","primary":{"kind":"query","label":"Run verified request","method":"GET","url":"https://bdl.stat.gov.pl/api/v1/subjects/P2430","source":"probe","runnable":true},"actions":[{"kind":"query","label":"Run verified request","method":"GET","url":"https://bdl.stat.gov.pl/api/v1/subjects/P2430","source":"probe","runnable":true},{"kind":"query","label":"Values of one variable across territorial units","method":"GET","url":"https://bdl.stat.gov.pl/api/v1/data/by-variable/60572?unit-level=6&page-size=10&format=json&lang=en","source":"query_example","runnable":true,"direct":false},{"kind":"query","label":"Documentation","method":"GET","url":"https://api.stat.gov.pl/Home/BdlApi","source":"query_example","runnable":true,"direct":false},{"kind":"landing","label":"Open source record","method":"GET","url":"https://bdl.stat.gov.pl/bdl/dane/podgrup/temat#P2430","source":"primary_source","runnable":false}],"formats":[]},"maturity":{"entry_id":"67ee5898-9708-41a2-b374-922efee7607e","granularity":"entry","granularity_label":"One unit = one catalog entry. A PROXY for the SCOPE.md §4 ladder, which governs source families, not entries: a family with 400 entries moves this reading 400 times as much as a family with one. Never compare or combine with the source_family reading.","level":"joinable","level_index":5,"level_label":"Joinable","meaning":"Canonical identifiers and concepts mapped","counts_as_coverage":true,"blocked_by":null,"rungs":[{"level":"discovered","level_index":1,"label":"Discovered","meaning":"Source and metadata recorded","evidence":"membership of the named population the ladder is taken over","counts_as_coverage":false,"met":true,"reached":true,"criterion":"TRUE"},{"level":"verified","level_index":2,"label":"Verified","meaning":"Access tested successfully","evidence":"entries.verification_state = 'VERIFIED'","counts_as_coverage":false,"met":true,"reached":true,"criterion":"entries.verification_state = 'VERIFIED'"},{"level":"profiled","level_index":3,"label":"Profiled","meaning":"Schema, dimensions and licence understood","evidence":"a data profile with at least one field (entry_data_profiles.field_count > 0)","counts_as_coverage":false,"met":true,"reached":true,"criterion":"EXISTS (SELECT 1 FROM entry_data_profiles p WHERE p.entry_id = entries.id AND COALESCE(p.field_count, 0) > 0)"},{"level":"executable","level_index":4,"label":"Executable","meaning":"Queries run through Commodity","evidence":"entries.capability_tier = 'live' — today's proxy for \"queryable through us\"","counts_as_coverage":true,"met":true,"reached":true,"criterion":"entries.capability_tier = 'live'"},{"level":"joinable","level_index":5,"label":"Joinable","meaning":"Canonical identifiers and concepts mapped","evidence":"a field link to a canonical identifier whose sampled VALUES match its format","counts_as_coverage":true,"met":true,"reached":true,"criterion":"EXISTS (SELECT 1 FROM entry_field_links efl WHERE efl.entry_id = entries.id AND efl.identifier_id IS NOT NULL AND efl.value_status = 'match')"},{"level":"reproducible","level_index":6,"label":"Reproducible","meaning":"Snapshots and transformation evidence retained","evidence":"at least one retained evidence manifest (migration 078)","counts_as_coverage":true,"met":false,"reached":false,"criterion":"EXISTS (SELECT 1 FROM evidence_manifests em WHERE em.entry_id = entries.id)"},{"level":"guaranteed","level_index":7,"label":"Guaranteed","meaning":"Monitored against an operational reliability target","evidence":"an active reliability target with a named monitor (migration 096)","counts_as_coverage":true,"met":false,"reached":false,"criterion":"EXISTS (SELECT 1 FROM entry_reliability_targets rt WHERE rt.entry_id = entries.id AND rt.is_active = true)"}],"officialness":{"basis":"catalog_inherited","label":"Inherited from the upstream catalog: this item came from a trusted official government catalog, and that provenance — not per-item proof — is the warrant. Its own proof score is below 80 or it matched no registered institution (apps/worker/src/connectors/catalog/qualify-store.ts).","proof_confidence":40,"proven_threshold":80,"institution_id":"2b3815fc-d28d-444c-b8f1-906ef8cff848","definition":"CASE WHEN COALESCE(entries.is_public_sector, false) IS NOT TRUE THEN 'not_official' WHEN COALESCE(entries.official_confidence, 0) >= 80 AND entries.institution_id IS NOT NULL THEN 'per_item_proven' ELSE 'catalog_inherited' END"},"source_family":{"key":"bdl.stat.gov.pl","label":"One unit = one source family, approximated by the serving host of the entry's primary source URL (e.g. bdl.stat.gov.pl). A COMPUTED stand-in for the curated families of SCOPE.md §5, which no table holds yet. A family sits at the highest level any of its entries has reached, because a family is integrated to the depth of its deepest working integration. Never compare or combine with the entry reading."},"generated_at":"2026-09-08T21:51:52.260Z"},"api_details":{"id":"0174728e-628c-4e23-bbed-d4439393c5ba","entry_id":"67ee5898-9708-41a2-b374-922efee7607e","base_url":"https://bdl.stat.gov.pl/api/v1/subjects/P2430","openapi_url":null,"graphql_url":null,"api_version":null,"spec_format":null,"endpoints_count":null,"endpoints":[],"rate_limit_info":null,"free_tier_limits":null,"ping_url":"https://bdl.stat.gov.pl/api/v1/subjects/P2430","created_at":"2026-07-25T14:43:40.763Z","updated_at":"2026-07-25T14:43:40.763Z"},"dataset_details":null,"license":{"id":"cc-by-4.0","spdx_id":"CC-BY-4.0","name":"Creative Commons Attribution 4.0","url":"https://creativecommons.org/licenses/by/4.0/","is_open":true,"is_redistributable":true,"requires_attribution":true,"category":"cc","notes":null,"created_at":"2026-06-12T16:29:19.729Z"},"reuse":{"license_id":"cc-by-4.0","license_name":"Creative Commons Attribution 4.0","license_url":"https://creativecommons.org/licenses/by/4.0/","commercial_use":{"status":"yes","value":true},"redistribution":{"status":"yes","value":true},"attribution_required":{"status":"yes","value":true},"share_alike":{"status":"no","value":false},"personal_data_warning":{"status":"yes","value":true},"cache_and_mirror":{"status":"yes","value":true},"undetermined":[],"basis":"licence_text","confidence":0.95,"confidence_tier":"high","source_text":"Deed: \"Share - copy and redistribute the material in any medium or format for any purpose, even commercially\" and \"Adapt - remix, transform, and build upon the material for any purpose, even commercially\". Under the following terms: \"Attribution - You must give appropriate credit, provide a link to the license, and indicate if changes were made.\" Notices: \"other rights such as publicity, privacy, or moral rights may limit how you use the material.\" Attribution is the only term listed; no ShareAlike term appears.","source_url":"https://creativecommons.org/licenses/by/4.0/","reviewed_at":null},"license_raw":"CC BY 4.0 (GUS BDL)","latest_check":{"id":"b6d42ee5-796a-4806-ad2a-d5f045aa851d","entry_id":"67ee5898-9708-41a2-b374-922efee7607e","status":"VERIFIED","last_checked_at":"2026-09-06T20:31:55.813Z","p50_latency_ms":2903,"p95_latency_ms":null,"last_error":null,"consecutive_failures":0,"created_at":"2026-07-28T05:58:27.733Z","updated_at":"2026-09-06T20:31:55.813Z","consecutive_successes":9,"probe_url":"https://bdl.stat.gov.pl/api/v1/subjects/P2430","probe_method":"GET","probe_http_status":200,"probe_content_type":"application/json; charset=utf-8","probe_succeeded_at":"2026-09-06T20:31:55.813Z"},"data_profile":{"id":"9646d0b1-045c-4253-ab52-3812c8a107ce","entry_id":"67ee5898-9708-41a2-b374-922efee7607e","profile_source":"bdl","profile_kind":"dataset","dataset_id":"P2430","fields":[{"name":"variable_id","role":"parameter","type":"string","label":null,"param_in":"path","required":true,"description":"GUS variable id selecting the measured series of subject P2430 (the n1/n2 dimension combination): 60572=average useful floor area of dwelling [m2]; 60573=average useful floor area per 1 person [m2]; 410600=dwelling stocks per 1000 population [-]; 475702=average number of rooms in a dwelling [-]; 475703=average number of persons per dwelling [-]; 475704=average number of persons per room [-]; 1751770=percentage of dwellings  at the disposal by a gmina [%]; 1751771=inhabited dwellings at the disposal by a gmina poer 1000 population [-]; 1751772=inhabited premises with social rental at the disposal of the gmina per 1000 population in the gmina [-]; 1751773=percentage of uninhabited dwellings  at the disposal by a gmina [%]; 1751774=average useful floor area of dwelling  at the disposal by a gmina [m2]; 1751775=average usable area of ??social rental premises at the gmina's disposal [m2]; 1751776=deficit of housing for low-income households per 1000 inhabitants in the gmina [-]; 1751777=percentage of  indebted dwellings  at the disposal by a gmina [%]; 1751778=deficit of social rental premises for low-income households per 1000 inhabitants in the gmina [-]; … (18 variables — GET https://bdl.stat.gov.pl/api/v1/variables?subject-id=P2430 for the full list).","enum_values":["60572","60573","410600","475702","475703","475704","1751770","1751771","1751772","1751773","1751774","1751775","1751776","1751777","1751778","1751779","1751780","1751781"],"description_en":"GUS variable id identifying which dwelling-stock indicator is measured."},{"name":"unit_level","role":"parameter","type":"integer","label":null,"param_in":"query","description":"Territorial aggregation level: 0=Poland, 1=macroregion, 2=voivodship (województwo), 3=region, 4=subregion, 5=powiat, 6=gmina.","enum_values":["0","1","2","3","4","5","6"],"description_en":"Territorial aggregation level, from Poland (0) down to gmina (6)."},{"name":"year","role":"parameter","type":"integer","label":null,"param_in":"query","description":"Reference year of the value (yearly series, back to 1995 for the oldest subjects). Filters server-side via the API's year parameter.","description_en":"Reference year of the data point."},{"name":"unit_id","type":"string","label":null,"description":"12-digit BDL territorial-unit id (macroregion+voivodship+region+subregion+powiat+gmina+type digits). An equality filter pins the unit server-side (unit-parent-id).","description_en":"12-digit BDL identifier of the territorial unit."},{"name":"unit_name","type":"string","label":null,"description":null,"description_en":"Name of the territorial unit, e.g. town or gmina name."},{"name":"teryt_terc","type":"string","label":null,"description":"TERYT TERC territorial code derived from the unit id (2 digits = voivodship, 4 = powiat, 7 = gmina incl. type digit; empty for NUTS-only units).","description_en":"TERYT TERC code of the territorial unit."},{"name":"value","type":"number","label":null,"description":null,"description_en":"Numeric value of the selected indicator for the given year and unit."},{"name":"attr_id","type":"integer","label":null,"description":"GUS value-attribute id (data quality/annotation flag).","description_en":"GUS data-quality or annotation flag for the value."}],"field_count":8,"sample_records":[{"year":2002,"value":69.8,"attr_id":11,"unit_id":"011212001011","unit_name":"Bochnia","teryt_terc":"1201011","unit_level":"6","variable_id":"60572"},{"year":2003,"value":71.5,"attr_id":1,"unit_id":"011212001011","unit_name":"Bochnia","teryt_terc":"1201011","unit_level":"6","variable_id":"60572"},{"year":2004,"value":71.8,"attr_id":1,"unit_id":"011212001011","unit_name":"Bochnia","teryt_terc":"1201011","unit_level":"6","variable_id":"60572"},{"year":2005,"value":72.2,"attr_id":1,"unit_id":"011212001011","unit_name":"Bochnia","teryt_terc":"1201011","unit_level":"6","variable_id":"60572"},{"year":2006,"value":72.3,"attr_id":1,"unit_id":"011212001011","unit_name":"Bochnia","teryt_terc":"1201011","unit_level":"6","variable_id":"60572"},{"year":2007,"value":72.9,"attr_id":1,"unit_id":"011212001011","unit_name":"Bochnia","teryt_terc":"1201011","unit_level":"6","variable_id":"60572"},{"year":2008,"value":73,"attr_id":1,"unit_id":"011212001011","unit_name":"Bochnia","teryt_terc":"1201011","unit_level":"6","variable_id":"60572"},{"year":2009,"value":73.5,"attr_id":1,"unit_id":"011212001011","unit_name":"Bochnia","teryt_terc":"1201011","unit_level":"6","variable_id":"60572"}],"record_count":null,"data_size_bytes":null,"dataset_count":null,"query_examples":[{"url":"https://bdl.stat.gov.pl/api/v1/data/by-variable/60572?unit-level=6&page-size=10&format=json&lang=en","curl":"curl -s 'https://bdl.stat.gov.pl/api/v1/data/by-variable/60572?unit-level=6&page-size=10&format=json&lang=en'","label":"Values of one variable across territorial units","method":"GET","description":"Yearly values of variable 60572 (average useful floor area of dwelling [m2]) per territorial unit. Filters: unit-level=0–6, year=YYYY, unit-parent-id={12-digit unit id}; page-size ≤ 100. Anonymous limits: 5 req/s, 100 req/15 min."},{"url":"https://api.stat.gov.pl/Home/BdlApi","curl":"curl -s 'https://api.stat.gov.pl/Home/BdlApi'","label":"Documentation","method":"GET","description":"GUS BDL API reference (endpoints, parameters, limits, CC BY 4.0 licence)."}],"status":"ok","error_message":null,"profiled_at":"2026-09-04T11:56:48.004Z","run_id":"1dcd4b6f-7592-4686-a3ee-855cea78f059","created_at":"2026-07-25T14:47:04.997Z","updated_at":"2026-09-04T11:56:48.004Z","license_raw":"CC BY 4.0 (GUS BDL)","license_id":"cc-by-4.0","consecutive_failure_count":0,"last_error_at":null,"last_error_message":null,"previewable":true,"personal_data":{"status":"none","basis":"no_person_column_cited","grain":"none","allowed":true,"columns":{"direct_identifiers":[],"family_names":[],"given_names":[],"attributes":[],"unresolved_names":[],"measures":[],"entity_identifiers":[]},"publication":null,"publication_evidence":null,"notice":"personal data: no cited column names a natural person (the cited columns are all this reads)"}},"datasets":[],"limits":[],"manifest":{"answer_sha256":"2f529199068954be87652016f1c154b8a73647c0ffef0bc4984f129204db1e93","answer_sha256_rule":"sha256 (hex, UTF-8) of JSON.stringify(this body) after deleting the keys listed in manifest.stamped_keys from manifest, and deleting manifest itself if it is then empty. The hash was computed before the stamp existed, so no field of the stamp is inside it.","stamped_keys":["answer_sha256","answer_sha256_rule","stamped_keys","row_count","row_count_basis","live","live_basis","created_at","created_at_basis","durable_citation"],"row_count":29,"row_count_basis":"Objects that are elements of a JSON array anywhere in this body, excluding manifest. Not a claim about which collection is the answer. Largest single collection: data_profile.fields[] (8 rows).","live":false,"live_basis":"This body was replayed from the worker edge cache (x-edge-cache: hit); the bytes, and therefore answer_sha256, are those of the execution that filled the cache.","created_at":"2026-09-08T21:51:59.568Z","created_at_basis":"When this response body was assembled, deliberately OUTSIDE the hashed bytes so the same answer hashes identically on every request. Not the upstream read time — that is provenance[].retrieved_at. A zone-cached replay carries the assembly time, not your receipt time.","durable_citation":"This manifest is produced at response time and is NOT stored. A durable, replayable citation is persisted only on an explicit cite: GET /api/v1/entries/{id-or-slug}/evidence, or the MCP cite_query tool. Both are entry-scoped, because evidence_manifests is entry-shaped; a domain answer spanning several sources has no single entry and cannot be persisted through that path."}}