Skip to content
Zonio Developers

Core concepts

Parcels and parcel ids

A parcel (działka ewidencyjna) is the unit of land ownership in the national cadastre, EGiB. Zonio holds all ~38.7 M of them; see the cadastral parcels layer on zonio.tech. Each has a nationally unique id:

126101_1.0018.AR_1.100/1
└──┬───┘ └┬─┘ └─┬─┘ └─┬─┘
   │      │     │     └ parcel number (may contain "/")
   │      │     └ map sheet (optional)
   │      └ cadastral precinct (obręb)
   └ cadastral unit (jednostka ewidencyjna, TERYT-based)

Because parcel numbers contain /, URL-encode it in paths: 100/1 → 100%2F1. In JSON bodies, send the id as-is.

Regions and TERYT codes

Poland has 16 voivodeships (województwa), 380 powiats and ~2,477 gminas. Every one of them has its own page on the Zonio national map. Every unit has a TERYT code: 2 digits for a voivodeship, 4 for a powiat, 7 for a gmina. Wherever the API takes a region, pass a TERYT code. Gmina names repeat across the country (there are several Ostrów), so resolve names with GET /regions or let the natural-language search do it for you.

Planning instruments

InstrumentWhat it isIn the API
MPZP (miejscowy plan zagospodarowania przestrzennego)The binding local zoning plan. Covers roughly a third of Poland. Defines zones (e.g. MN single-family, MW multi-family, U services, P production) and parameters such as max height and coverage.regulations.mpzp
Plan OgólnyThe new general plan every gmina must adopt. It replaces the Studium and gates development permits outside an MPZP. What it changes.regulations.plan_ogolny
StudiumThe legacy, non-binding directional study. Still informative where no Plan Ogólny exists yet.regulations.studium
WZ (warunki zabudowy)A case-by-case building permit outside an MPZP.inferred via Plan Ogólny zone

Zone symbols are not standardised between gminas. Zonio maps every raw symbol to a common category (residential_single_family, industrial, renewable_energy, …) and keeps the original symbol, so you can filter nationally and still show the user the exact legal designation.

Constraints

A constraint is anything that limits what can be built: Natura 2000 and other protected areas, flood-risk zones, heritage protection, mining areas, aviation obstacle limitation surfaces, groundwater protection zones, statutory wind-turbine setbacks, forest land. Each is reported with a severity: blocking, restrictive or informational.

Coverage

Not every public dataset covers all of Poland. Local plans are published by each gmina; some layers are only available for some regions. Zonio never treats "no data" as "no constraint". Every search and report returns a coverage block that tells you, criterion by criterion, whether it was checked:

"coverage": [
  { "criterion": "zone_residential", "mode": "requires", "status": "available" },
  { "criterion": "no_env_risk_nearby", "mode": "screens", "status": "available" },
  { "criterion": "not_contaminated", "mode": "screens", "status": "missing" }
]

requires criteria with missing data block the search (blocked: true) rather than returning nothing. screens criteria with missing data still return results, flagged as unscreened. Agents are instructed to tell users about every missing criterion. See Coverage & freshness.

Coordinates

PurposeCRSWhere you see it
Storage and every calculationEPSG:2180 (PUWG 1992)distances, areas, buffers, always metres
Wire formatEPSG:4326 (WGS84)all GeoJSON, all lng/lat inputs and outputs
RenderingEPSG:3857inside vector tiles only

You send and receive WGS84. Zonio measures in metres on Poland's national grid, where scale error stays below 0.1 % country-wide. Degree-based buffers would under-reach east–west by 34–42 % at Polish latitudes.

Scenarios

A scenario is a named, tunable site-selection screen (solar_farm_site, bess_storage, housing_estate_site) made of hard filters (all must pass), parameters with sensible defaults (e.g. max distance to a substation) and ranking signals with default weights. See the scenario catalogue.