CLARA docs

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/geocode marks those addresses covered: 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's planned_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.

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