Bulk API
Account and Bulk API on one form. One card entry, key in your inbox, first call in about a minute.
The CleanZone research grid is 103 measured metrics per cell drawn from 40 public sources — air, water, radon, noise, masts, flights, light, seismic, land, hazard points — and the Bulk API is the door that opens all of it: cells by bounding box, one cell by coordinate, its history, aggregates over your own polygon, and the native-resolution rasters underneath. Cells, GeoJSON or CSV, whichever your pipeline eats.
What it looks like
No SDK to install, no OAuth dance, no sandbox that behaves differently from production. A key in a header against a documented REST endpoint, and the same numbers the map draws.
# every cell in a bounding box, as GeoJSON curl -H "X-API-Key: $CZ_KEY" \ "https://cleanzone-api/v1/cells?bbox=-9.5,36,3.4,43.8&format=geojson" # one cell, every stored metric curl -H "X-API-Key: $CZ_KEY" \ "https://cleanzone-api/v1/cell/41.375/2.125" # native resolution under the 0.25° grid curl -H "X-API-Key: $CZ_KEY" \ "https://cleanzone-api/v1/native?layer=light_norm&bbox=2.0,41.2,2.4,41.6"
| Endpoint | What comes back |
|---|---|
/v1/cells | Every cell in a bounding box — cells, GeoJSON or CSV |
/v1/cell/<lat>/<lon> | One cell, every stored metric, with units and source per field |
/v1/cell/<lat>/<lon>/history | What that cell has done over time, where history is recorded |
/v1/native | The finer rasters under the grid — soil 1 km, light 460 m, forest 110 m, flights adaptive |
/v1/aggregate | Your polygon in, one set of numbers out |
/v1/metrics, /v1/regions, /v1/dataset | What exists, where, and which release you are reading |
/v1/cite | A citation line for the exact dataset version you pulled |
The real host and the full endpoint reference come with your key. Rate limit is per key, counted per day, and resets at UTC midnight. Licence terms per source travel with the data — a handful of layers are non-commercial, and they are marked.
Who this is for
Pull a country, a biome or a coastline into your own notebook and work on it there. Cite the dataset version you actually read.
Score every listing you hold on a schedule, not one address at a time when a user asks.
Screen hundreds of candidate parcels against air, water, radon, noise, flights, seismic and hazard proximity before anyone visits one.
Feed a map, a model or a product of your own. 150,000 calls a day is a lot of room to be wrong in while you find the shape of it.
Who it isn't for: if you need one reading for one address, this is the wrong door — the free report or a certificate costs a fraction of it. If you want the map to look at rather than the data to compute on, take a plan — plans are for using CleanZone, not for building on it.
One form. Your account and the Bulk API together — no joining first and adding it on afterwards.
Card entered once, on Stripe. The account and the API key are created the moment the payment clears and the sign-in details are emailed to you. The plan renews yearly and the Bulk API monthly; either can be cancelled from your account, and cancelling the API leaves the account alone. 7-day money-back guarantee on the account.
Straight answers
0.25° — about 25 km across at the equator, narrower as you go north. Flights, population, light and soil sharpen further under /v1/native.
Yes, per key per UTC day, and the counter is atomic — no surprise overage bill, the 150,001st call gets a 429 and a reset time.
Your fee buys access to the service, not ownership of the sources. Per-source licences travel with the data and the non-commercial ones are flagged — read the terms before you build a product on a flagged layer.
Published, not hidden. A cell without a measurement returns null rather than a modelled guess, and coverage below half the score inputs returns no score at all.
Still deciding? Ask for a trial key from your account and spend 1,000 calls on it — the real endpoints, the real data, no card. That is an evaluation, not a licence: production and commercial use start here. A plan on its own does not carry API access.