Coverage
Where CLARA works, and which products work there. Coverage is a list of cities, each with its own model and its own product set, and that list is itself an endpoint, so your code never has to hardcode it.
CLARA builds a street-level simulation per city, modelled at up to 1×1 m, and each city ships with the products its model supports: historical statistics, real-time conditions, forecasts, reports, map layers and the geocoding helper. A city can have any combination, and the set grows as models are extended. The index is public:
curl -sS https://api.clara.city/v1/cities
Each entry carries the city identifier, its bounding box and one
boolean per product. Called with a key, entries additionally say
whether your key is scoped to them. Filter with
?product= when you only care about one product, for
example ?product=map.
Belgium, nationwide
Two products go beyond city limits. In Belgium, historical statistics and reports serve any address in the country, not only the covered cities. The mechanics:
- Inside the Brussels high-resolution zone, central Brussels as served by the boundary endpoint, the answer comes from the street-level model.
- Anywhere else in Belgium, it comes from a lower-resolution nationwide dataset, with the same quantities and the same scoring methods.
You never choose between the two: send the location and the API picks
the best dataset available for it. meta.dataset in the
response tells you which one answered, and city is
present only when the location falls inside a covered city. The
high-resolution zone is expanding toward the full Brussels Capital
Region.
Real-time, forecast and map layers stay city products: they need the live street-level model, so they answer only inside the covered cities that have them.
Boundaries
The exact edge of a city's coverage is not its bounding box. Ask for the city and you get the boundary as a GeoJSON polygon, ready to draw on a map or to pre-filter your locations before spending data requests:
curl -sS https://api.clara.city/v1/cities/brussels
The geocoding helper does this check for you: every
GET /v1/geocode result carries covered,
whether it lies inside a high-resolution zone, and the covering
city's identifier when it does. Locations outside every covered area
receive 422 outside_coverage from the data endpoints,
which partner UIs should treat as "not covered yet", never as an
error state.
City and product matrix
The matrix below is read live from
GET /v1/cities, the same endpoint your own code can use.
It is never hand-typed, so it cannot fall behind the API.
| City | Country | Historical | Real-time | Forecast | Reports | Map | Geocoding |
|---|---|---|---|---|---|---|---|
| Loading the city list from the API... | |||||||
The matrix is per city. Remember the nationwide rule above: a Belgian address outside every listed zone still gets historical statistics and reports, from the nationwide dataset.