Coverage
Where CLARA works, and which products work there. Coverage is a list of cities, each with its own model and product set; the list is itself an endpoint, so nothing needs hardcoding.
CLARA builds a hyper-local 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 also say whether your
key is scoped to them. Filter with ?product= when you
only need one, 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 hyper-local model.
- Anywhere else in Belgium, it comes from a lower-resolution
nationwide dataset, with the same quantities and the same scoring
methods.
GET /v1/geocodemarks those addressescovered: national_low_res.
The high-resolution zone is growing: the whole Brussels Capital Region
is announced and in development. GET /v1/cities/brussels
serves that planned boundary next to the current one, and
GET /v1/geocode reports addresses inside it as
covered: high_res_in_development, so an integration can
already tell its users the hyper-local data is coming.
You never choose: send the location and the API picks the best
dataset. meta.dataset says which answered;
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 hyper-local 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 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, and
it is graded rather than a yes or no, because the answer is not the
same everywhere:
high_res: inside a city's current high-resolution zone, the polygon the boundary endpoint serves. Every product that city has works here.high_res_in_development: inside an announced expansion of that zone, the city'splanned_boundary. The hyper-local data is coming but is not published yet, so a UI can say so instead of showing a blank.national_low_res: elsewhere in Belgium, where the nationwide lower-resolution dataset answers historical statistics and reports.false: beyond all of that. No coordinates come back.
The covering city's identifier travels with the first two grades.
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 code can use; never hand-typed, it cannot fall
behind the API. The last column is the metrics each city actually
models, which is not the same list everywhere.
| City | Country | Historical | Real-time | Forecast | Reports | Map | Geocoding | Metrics |
|---|---|---|---|---|---|---|---|---|
| Loading the city list from the API... | ||||||||
The matrix is per city; a Belgian address outside every listed zone still gets historical statistics and reports from the nationwide dataset.