SDKs
TypeScript
npm install @zonio/sdkimport { Zonio } from '@zonio/sdk'
const zonio = new Zonio({ apiKey: process.env.ZONIO_API_KEY })
const { results, coverage } = await zonio.scenarios.search('bess_storage', {
region: '30',
params: { min_capacity_mw: 20, substation_km: 5 },
limit: 25,
})
for (const r of results) console.log(r.parcel_id, r.area_sqm, r.score)
const missing = coverage.filter((c) => c.status === 'missing')
if (missing.length) console.warn('Not checked here:', missing.map((c) => c.criterion))Paginate any list with for await:
for await (const tx of zonio.market.transactions({ region: '1261011', since: '2025-01-01' })) {
console.log(tx.date, tx.price_per_sqm_pln)
}Python
pip install zoniofrom zonio import Zonio
zonio = Zonio() # reads ZONIO_API_KEY
result = zonio.search.natural_language(
query="flat plots over 2 ha zoned for industry within 5 km of a 110 kV substation",
region="1863",
)
print(result.interpretation.assumptions)
for parcel in result.results:
regs = zonio.parcels.regulations(parcel.parcel_id)
print(parcel.parcel_id, regs.mpzp.symbol if regs.mpzp else "no MPZP")GeoPandas
gdf = zonio.layers.features("power_substations", bbox=(21.8, 49.9, 22.2, 50.1)).to_geodataframe()
gdf.to_crs(2180).plot()Other languages
Generate a client from the spec with openapi-generator or your favourite tool:
npx @openapitools/openapi-generator-cli generate \
-i https://docs.zonio.tech/openapi.yaml -g go -o ./zonio-go