Dining

MICHELIN-recognised restaurants and top-rated dining nearby.

Two endpoints, two distinct signals: MICHELIN prestige and crowd-rated quality. Use one or both.

Endpoints

Tier radius

MICHELIN restaurants are filtered by tier-specific radius: people travel further for higher tiers.

TierRadius
Three-star100 km
Two-star60 km
One-star40 km
Bib Gourmand20 km
Selected15 km

Results are sorted by tier first, then by distance within tier.

Coverage

Currently ~200 UK restaurants + a small international seed (Paris, Modena, Chamonix, Porto). International expansion follows Wikipedia’s regional MICHELIN list articles.

For coords outside covered regions, the response returns applicable: false — use /v1/pulse/restaurants as a fallback.

Example: MICHELIN + fallback

const michelin = await fetch(`/v1/pulse/michelin?lat=${lat}&lng=${lng}`, { headers })
.then(r => r.json());
// Fall back to crowd-rated dining when MICHELIN isn't covered here
const dining = michelin.applicable
? michelin
: await fetch(`/v1/pulse/restaurants?lat=${lat}&lng=${lng}`, { headers })
.then(r => r.json());

Data sources

MICHELIN Guide facts (name, coord, tier, cuisine — no editorial or copyrighted images), open encyclopedia data for UK coverage and photos, and a crowd-rated dining fallback. See Attribution for the full source list.