Noncommercial
Free
Personal projects, learning, research and other uses without commercial advantage.
Read the termsA BASEMAP WITH A POINT OF VIEW
Clair is a carefully drawn, multilingual basemap for Protomaps. Warm colors, a clear hierarchy, and just enough detail.
Explore the map & configure your style ↗Fetch your Clair style, attach your tile source, then pass it to MapLibre GL JS 6.9 or later.
import * as maplibregl from 'maplibre-gl';
import 'maplibre-gl/dist/maplibre-gl.css';
const response = await fetch(
'https://clair.benmaps.fr/styles/0.5.2/light.json?lang=en'
);
if (!response.ok) throw new Error('Could not load Clair');
const style = await response.json();
// Your tile provider is configured in your app.
const key = 'YOUR_PROTOMAPS_KEY';
style.sources.protomaps.tiles = [
`https://api.protomaps.com/tiles/v4/{z}/{x}/{y}.mvt?key=${encodeURIComponent(key)}`
];
new maplibregl.Map({
container: 'map',
style,
center: [2.35, 48.86],
zoom: 13,
});
Add <div id="map"></div> and give it a height, such as
#map { height: 100vh; }. Map data is served by Protomaps and billed
separately.
/styles/0.5.2/light.json
The endpoint returns a MapLibre style with fonts, sprites and an empty vector tile
source. No key or account is needed to fetch the style. Set
style.sources.protomaps.tiles in your app before creating the map.
URLs pin the style release. Styles and Clair assets are cached for one year; an existing release does not silently change. Keep the full URL, including your configuration options, when caching it yourself.
The style and its map data are separate. Use your own Protomaps token, or point
style.sources.protomaps.tiles to self-hosted MVT tiles using the Protomaps
v4 schema: ['https://tiles.example.com/{z}/{x}/{y}.mvt']. No Protomaps
token is needed for self-hosted tiles. Retain the applicable data attribution. Clair’s
demo uses its own token, which is never included in the exported style.
Supports GET, HEAD, CORS and ETag revalidation.
Invalid or unknown options return 400; an unknown release returns
404.
All options are optional. Use the configurator to preview changes and copy your URL.
| Parameter | Default | Values |
|---|---|---|
lang |
en |
Language tag, or local for local names |
bilingual |
0 |
1 adds distinct local names |
density |
balanced |
balanced or quiet POIs |
icons |
soft |
soft or line |
3d |
0 |
1 enables building extrusions |
height |
9 |
Missing building height, 0–100 metres |
relief, trees, peaks |
1 |
0 hides the corresponding detail |
buildings, labels, pois |
1 |
0 hides the corresponding layer group |
Translations fall back to available names. Tree, address and building detail depends on
source coverage. The fallback building height is an estimate. Set your map’s
pitch to see extrusions; camera settings are separate from the style.
Free for noncommercial use. A one-time license for commercial work.
Free
Personal projects, learning, research and other uses without commercial advantage.
Read the terms$199 USD · once
Up to 10,000 daily users across your projects. One person or company. A perpetual license, with no renewal fee.
Buy lifetime license ↗Checkout coming soonOver 10,000 daily users
A separate agreement for larger audiences. Contact us to discuss scope and pricing.
Daily users are distinct people who use a Clair map. Qualifying noncommercial use remains free at any audience size.
The license covers Clair, including modifications and use in client projects. It does not include tile hosting or guarantee lifetime API availability. Standalone resale of the style is excluded. See the full terms and third-party notices.