CLARA docs

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.

CityCountryHistoricalReal-time ForecastReportsMapGeocoding
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.