Clair0.5

A BASEMAP WITH A POINT OF VIEW

Beautiful maps.
One style URL.

Clair is a carefully drawn, multilingual basemap for Protomaps. Warm colors, a clear hierarchy, and just enough detail.

Explore the map & configure your style ↗

Quick start

01

Fetch your Clair style, attach your tile source, then pass it to MapLibre GL JS 6.9 or later.

JavaScript
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.

Style API

02
GET/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.

Configuration

03

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.

Simple licensing

04

Free for noncommercial use. A one-time license for commercial work.

Noncommercial

Free

Personal projects, learning, research and other uses without commercial advantage.

Read the terms

Commercial

$199 USD · once

Up to 10,000 daily users across your projects. One person or company. A perpetual license, with no renewal fee.

Checkout coming soon

Commercial at scale

Over 10,000 daily users

A separate agreement for larger audiences. Contact us to discuss scope and pricing.

Contact us ↗

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.