{"id":"87bdd7c6-d670-4cc7-adc0-151460b782b3","type":"API","name":"Unoccupied apartments in the municipal resource (vacant)","slug":"unoccupied-apartments-in-the-municipal-resource-vacant","description":"HOUSING ECONOMY AND MUNICIPAL INFRASTRUCTURE › DWELLING STOCK. Local Data Bank (BDL) subject P2908: 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#P2908","extraction_confidence":"0.40","created_at":"2026-07-25T14:43:12.851Z","updated_at":"2026-09-08T06:01:23.595Z","last_verified_at":"2026-09-08T02:05:51.731Z","deprecated_at":null,"ranking_score":55,"last_ranked_at":"2026-08-30T11:46:29.810Z","last_seen_at":null,"last_validated_at":null,"last_uptime_at":"2026-09-07T12:49:40.853Z","search_vector":"'access':38B,102B,153B 'accessible':217B 'across':111B,226B 'administr':112B 'administrative':227B 'analysi':106B 'analysis':221B 'and':125B,177B,214B 'apart':2A,52B 'apartments':117A,167B 'api':36B,151B 'authent':104B 'authentication':219B 'bank':17B,47B,132B,162B 'bdl':18B,48B,133B,163B 'by':147B,199B,207B 'categori':65B 'category':180B 'central':96B,211B 'code':87B 'codes':202B 'cover':49B 'covering':164B 'data':16B,46B,131B,161B 'dataset':89B,204B 'down':190B 'dwell':13B,56B 'dwelling':128B,171B 'economi':9B,61B 'economy':124B,176B 'for':139B 'freeli':101B 'freely':216B 'from':187B 'gmina':28B,78B,143B,193B 'gus':93B,208B 'hous':8B,60B,108B 'housing':123B,175B,223B 'id':34B 'identifi':83B 'identified':198B 'ids':149B 'in':118A 'infrastructur':12B,64B 'infrastructure':127B,179B 'is':205B,215B 'it':181B 'key':31B 'keyed':146B 'level':29B,79B,144B,194B 'local':15B,45B,130B,160B 'maintain':91B 'maintained':206B 'municip':5A,11B,55B,63B 'municipal':120A,126B,170B,178B 'of':157B,222B,229B 'offer':67B 'offers':182B 'offic':98B 'office':213B 'p2908':20B,41B,135B,156B 'poland':25B,43B,94B,115B,140B,158B,209B,230B 'provid':37B 'provides':152B 'region':113B 'regions':228B 'resourc':6A 'resource':121A 's':159B,210B 'seri':23B,71B 'series':138B,186B 'statist':81B,97B 'statistical':196B,212B 'stock':14B,57B,129B,172B 'subject':19B,40B,134B,155B 'support':105B 'supporting':220B 'territori':22B,69B,86B 'territorial':137B,184B,201B 'teryt':33B,85B,148B,200B 'the':119A,169B,174B,188B,192B,203B 'this':150B 'time':70B,185B 'to':142B,154B,191B 'trend':110B 'trends':225B 'under':173B 'unit':30B,82B 'units':145B,197B 'unoccupi':1A,50B 'unoccupied':116A,165B 'vacanc':109B 'vacancy':224B 'vacant':7A,51B,122A,166B 'voivodship':26B,74B,141B,189B 'with':195B 'within':53B,168B 'without':103B,218B 'year':21B,68B 'yearly':136B,183B","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-25T20:52:56.957Z","geographic_scope":"NATIONAL","name_en":null,"description_en":"This API provides access to subject P2908 of Poland's Local Data Bank (BDL), covering unoccupied (vacant) apartments within the municipal dwelling stock, under the Housing Economy and Municipal Infrastructure category. It offers yearly territorial time series from the voivodship down to the gmina level, with statistical units identified by TERYT territorial codes. The dataset is maintained by GUS, Poland's Central Statistical Office, and is freely accessible without authentication, supporting analysis of housing vacancy trends across administrative regions of Poland.","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#P2908|unoccupied apartments in the municipal resource (vacant)","upstream_ref":"bdl.stat.gov.pl:subject:P2908","access":{"level":"direct","primary":{"kind":"query","label":"Run verified request","method":"GET","url":"https://bdl.stat.gov.pl/api/v1/subjects/P2908","source":"probe","runnable":true},"actions":[{"kind":"query","label":"Run verified request","method":"GET","url":"https://bdl.stat.gov.pl/api/v1/subjects/P2908","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/1646172?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#P2908","source":"primary_source","runnable":false}],"formats":[]},"maturity":{"entry_id":"87bdd7c6-d670-4cc7-adc0-151460b782b3","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:54:49.469Z"},"api_details":{"id":"c0077ecf-9a93-4aa0-866c-24334151f6c2","entry_id":"87bdd7c6-d670-4cc7-adc0-151460b782b3","base_url":"https://bdl.stat.gov.pl/api/v1/subjects/P2908","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/P2908","created_at":"2026-07-25T14:43:13.010Z","updated_at":"2026-07-25T14:43:13.010Z"},"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":"f9d5d844-d81d-4520-8b32-877ef318f60b","entry_id":"87bdd7c6-d670-4cc7-adc0-151460b782b3","status":"VERIFIED","last_checked_at":"2026-09-08T02:05:51.440Z","p50_latency_ms":2113,"p95_latency_ms":null,"last_error":null,"consecutive_failures":0,"created_at":"2026-07-29T14:55:36.237Z","updated_at":"2026-09-08T02:05:51.440Z","consecutive_successes":9,"probe_url":"https://bdl.stat.gov.pl/api/v1/subjects/P2908","probe_method":"GET","probe_http_status":200,"probe_content_type":"application/json; charset=utf-8","probe_succeeded_at":"2026-09-08T02:05:51.440Z"},"data_profile":{"id":"1630562c-4914-4782-b62f-15c1f96d5bf5","entry_id":"87bdd7c6-d670-4cc7-adc0-151460b782b3","profile_source":"bdl","profile_kind":"dataset","dataset_id":"P2908","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 P2908 (the n1/n2 dimension combination): 1646172=total uninhabited dwelling / dwellings [-]; 1646173=total uninhabited dwelling / useful floor area of dwellings [m2]; 1646174=due to waiting for settlement / dwellings [-]; 1646175=due to waiting for settlement / useful floor area of dwellings [m2]; 1646176=due to the purpose of renovation / dwellings [-]; 1646177=due to the purpose of renovation / useful floor area of dwellings [m2]; 1646178=due to the intended for demolition / dwellings [-]; 1646179=due to the intended for demolition / useful floor area of dwellings [m2]; 1646180=due to poor technical condition / dwellings [-]; 1646181=due to poor technical condition / useful floor area of dwellings [m2]; 1646182=due to other reasons / dwellings [-]; 1646183=due to other reasons / useful floor area of dwellings [m2].","enum_values":["1646172","1646173","1646174","1646175","1646176","1646177","1646178","1646179","1646180","1646181","1646182","1646183"],"description_en":"GUS variable id selecting the measured series (vacancy reason and metric type)."},{"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 yearly data value."},{"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 code identifying the territorial unit."},{"name":"unit_name","type":"string","label":null,"description":null,"description_en":"Name of the territorial unit."},{"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 administrative code derived from the unit id."},{"name":"value","type":"number","label":null,"description":null,"description_en":"Measured value for the selected variable, unit and year."},{"name":"attr_id","type":"integer","label":null,"description":"GUS value-attribute id (data quality/annotation flag).","description_en":"GUS attribute id flagging data quality or annotation status."}],"field_count":8,"sample_records":[{"year":2003,"value":3,"attr_id":1,"unit_id":"011212001011","unit_name":"Bochnia","teryt_terc":"1201011","unit_level":"6","variable_id":"1646172"},{"year":2005,"value":4,"attr_id":1,"unit_id":"011212001011","unit_name":"Bochnia","teryt_terc":"1201011","unit_level":"6","variable_id":"1646172"},{"year":2007,"value":11,"attr_id":1,"unit_id":"011212001011","unit_name":"Bochnia","teryt_terc":"1201011","unit_level":"6","variable_id":"1646172"},{"year":2009,"value":9,"attr_id":1,"unit_id":"011212001011","unit_name":"Bochnia","teryt_terc":"1201011","unit_level":"6","variable_id":"1646172"},{"year":2013,"value":17,"attr_id":1,"unit_id":"011212001011","unit_name":"Bochnia","teryt_terc":"1201011","unit_level":"6","variable_id":"1646172"},{"year":2015,"value":12,"attr_id":1,"unit_id":"011212001011","unit_name":"Bochnia","teryt_terc":"1201011","unit_level":"6","variable_id":"1646172"},{"year":2016,"value":16,"attr_id":1,"unit_id":"011212001011","unit_name":"Bochnia","teryt_terc":"1201011","unit_level":"6","variable_id":"1646172"},{"year":2018,"value":34,"attr_id":1,"unit_id":"011212001011","unit_name":"Bochnia","teryt_terc":"1201011","unit_level":"6","variable_id":"1646172"}],"record_count":null,"data_size_bytes":null,"dataset_count":null,"query_examples":[{"url":"https://bdl.stat.gov.pl/api/v1/data/by-variable/1646172?unit-level=6&page-size=10&format=json&lang=en","curl":"curl -s 'https://bdl.stat.gov.pl/api/v1/data/by-variable/1646172?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 1646172 (total uninhabited dwelling / dwellings [-]) 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-03T11:12:53.066Z","run_id":"dcb8a21f-7772-45c0-9912-6fdd5c5f1a62","created_at":"2026-07-25T14:46:25.721Z","updated_at":"2026-09-03T11:12:53.066Z","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":"106a377f1a4fb2b170d00fb9871c7e25c1e2a091a50bbbdcd74b042b3562e1a3","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:55:15.723Z","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."}}