Discover/Michelin API
live

Michelin APIguide.michelin.com

Access Michelin Guide restaurant listings, star ratings, Bib Gourmand awards, hotel data, and editorial articles via 7 structured endpoints.

Endpoint health
verified 3d ago
list_restaurants
list_hotels
get_restaurant_detail
get_cuisine_types
list_countries_and_regions
7/7 passing latest checkself-healing
Endpoints
7
Updated
22d ago

What is the Michelin API?

The Michelin Guide API gives programmatic access to the full Guide Michelin dataset across 7 endpoints, covering starred restaurants, Bib Gourmand listings, selected hotels, and editorial articles. The list_restaurants endpoint lets you filter by country, city, cuisine, price tier, and distinction level — returning fields like distinction, cuisines, slug, and nbHits — while get_restaurant_detail returns contact details, opening hours, facilities, and the restaurant's full description.

Try it
Page number (0-indexed)
Results per page
Search keyword (e.g. city name, restaurant name, cuisine)
api.parse.bot/scraper/70808de2-3170-4ee9-8819-d781d6b15701/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/70808de2-3170-4ee9-8819-d781d6b15701/search_restaurants?page=0&limit=5&query=paris' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace guide-michelin-com-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: Michelin Guide SDK — search restaurants, browse by filters, drill into details."""
from parse_apis.michelin_guide_api import MichelinGuide, Distinction, PriceCategory, RestaurantNotFound

client = MichelinGuide()

# Search restaurants by keyword — limit caps total items fetched across pages.
for restaurant in client.restaurants.search(query="tokyo", limit=3):
    print(restaurant.name, restaurant.city.name, restaurant.distinction.slug if restaurant.distinction else "no distinction")

# Browse 3-star restaurants in France using enum filters.
three_star = client.restaurants.list(
    country="fr", distinction=Distinction.THREE_STARS, limit=3
).first()
if three_star:
    print(three_star.name, three_star.phone, three_star.michelin_award)

# Get full restaurant detail by slug — typed error catch for not-found.
try:
    detail = client.restaurants.get(slug="le-gabriel476630")
    print(detail.name, detail.main_desc[:80] if detail.main_desc else "")
    for cuisine in detail.cuisines:
        print(f"  cuisine: {cuisine.label}")
except RestaurantNotFound as exc:
    print(f"Restaurant not found: {exc.slug}")

# Browse hotels with keyword search.
hotel = client.hotels.list(query="paris", limit=1).first()
if hotel:
    print(hotel.name, hotel.neighborhood, hotel.num_rooms)

# Get cuisine types and geographic coverage (singleton resources).
cuisine_counts = client.cuisinecounts.get()
print(f"Total cuisine types tracked: {len(cuisine_counts.counts)}")

coverage = client.coverages.get()
print(f"Countries covered: {len(coverage.countries)}, Regions: {len(coverage.regions)}")

print("exercised: restaurants.search / restaurants.list / restaurants.get / hotels.list / cuisinecounts.get / coverages.get")
All endpoints · 7 totalmissing one? ·

Full-text search over Michelin Guide restaurants by keyword. Matches against restaurant names, cities, and cuisines. Paginates via zero-indexed page number. Each hit includes name, slug, city, country, distinction, cuisines, price category, and contact details.

Input
ParamTypeDescription
pageintegerPage number (0-indexed)
limitintegerResults per page
queryrequiredstringSearch keyword (e.g. city name, restaurant name, cuisine)
Response
{
  "type": "object",
  "fields": {
    "hits": "array of restaurant objects with name, slug, city, country, distinction, cuisines, price_category, phone, website, and other details",
    "page": "integer current page number",
    "nbHits": "integer total number of matching restaurants",
    "nbPages": "integer total number of pages"
  }
}

About the Michelin API

Restaurant Search and Browsing

The search_restaurants endpoint accepts a free-text query parameter matched against restaurant names, cities, and cuisines, returning paginated hits arrays with name, slug, city, country, distinction, and cuisines fields alongside nbHits and nbPages for pagination control. The list_restaurants endpoint exposes the same result shape but with structured filter parameters: distinction accepts slugs like 1-star-michelin, 2-stars-michelin, 3-stars-michelin, and bib-gourmand; cuisine accepts slugs like french or japanese; and price accepts slugs like budget or luxury. Both endpoints are 0-indexed via the page parameter.

Restaurant Detail

get_restaurant_detail takes a slug obtained from either listing endpoint and returns a richer record: main_desc (full editorial description), phone, website, facilities (array of facility objects), cuisines (array with label and slug), and a distinction object with both a human-readable label and its slug. Passing an unrecognised slug returns a stale_input error rather than an empty result.

Hotels and Editorial Content

list_hotels returns Michelin-selected hotels with name, slug, city, country, and amenities fields, filterable by keyword via the query parameter. list_articles similarly surfaces Guide Michelin magazine content — each hit includes title, slug, excerpt, content, tags, and published_date.

Reference Lookups

Two reference endpoints require no inputs. get_cuisine_types returns a flat object mapping each cuisine slug to an integer restaurant count, useful for building filter UIs. list_countries_and_regions returns two sub-objects — countries and regions — each mapping slugs to restaurant counts, showing the full geographic scope of the Guide's current coverage.

Reliability & maintenanceVerified

The Michelin API is a managed, monitored endpoint for guide.michelin.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when guide.michelin.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official guide.michelin.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
3d ago
Latest check
7/7 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a starred-restaurant finder that filters by distinction slug and city to surface Michelin-starred options in a specific destination.
  • Populate a travel app's dining section with Bib Gourmand listings using the bib-gourmand distinction filter on list_restaurants.
  • Create a cuisine-type breakdown dashboard using the get_cuisine_types response to visualise restaurant distribution by category.
  • Aggregate website and phone contact data from get_restaurant_detail for a hospitality CRM or reservation tool.
  • Monitor geographic coverage gaps by diffing list_countries_and_regions results over time to track when new markets are added.
  • Index Michelin editorial content and tags from list_articles to enrich a food media recommendation engine.
  • Filter Michelin-selected hotels by location keyword using list_hotels to supplement a luxury travel itinerary builder.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does Michelin Guide have an official developer API?+
Michelin does not offer a publicly documented developer API for the Guide Michelin restaurant and hotel data. There is no published REST or GraphQL API with keys or documentation available to third-party developers.
How do I retrieve only three-star Michelin restaurants in a specific country?+
Use list_restaurants with distinction set to 3-stars-michelin and country set to the relevant country slug (e.g. fr for France or jp for Japan). The response includes nbHits so you can determine whether to paginate using the page parameter.
Does the API return user reviews or ratings for restaurants?+
No user-generated reviews or numerical ratings are exposed. The API returns Michelin's own editorial distinction data (distinction object with label and slug), the main_desc editorial description from get_restaurant_detail, and structured metadata like cuisines and facilities. You can fork this API on Parse and revise it to add an endpoint targeting any review-adjacent data the Guide surfaces publicly.
Does the API cover opening hours or reservation links?+
Opening hours are not currently returned as a structured field in the get_restaurant_detail response, and reservation links are not exposed. The endpoint does return website and phone for contact purposes. You can fork this API on Parse and revise it to add those fields if the source exposes them.
How complete is the geographic coverage across the listing endpoints?+
Coverage reflects the countries and regions where the Michelin Guide actively publishes selections. The list_countries_and_regions endpoint returns the full set of covered country and region slugs with restaurant counts, so you can check current scope before building country-specific features. Markets not yet covered by the Guide will not appear in those results.
Page content last updated . Spec covers 7 endpoints from guide.michelin.com.
Related APIs in Food DiningSee all →
thefork.it API
Search and discover Italian restaurants by cuisine, location, or ratings, then access detailed information like menus, reviews, and availability across major cities in Italy. Find top-rated dining options and compare restaurant details to plan your perfect meal.
resy.com, opentable.com API
Search and compare restaurants across Resy and OpenTable by cuisine, location, and price range, then sort results by price or ratings to find the best dining option. Retrieve comprehensive restaurant details including addresses, contact information, descriptions, and customer ratings all in one place.
theinfatuation.com API
Access restaurant reviews, ratings, and guides from The Infatuation. Search by keyword and location, browse cities and neighborhoods, and retrieve detailed review data including cuisine type, address, pricing, and editorial ratings.
openrice.com API
Search for restaurants across Hong Kong and discover detailed information including reviews, cuisines, districts, and award-winning establishments. Browse new restaurant openings and filter by location or cuisine type to find exactly what you're looking for.
opentable.com API
Search for restaurants across the US with ratings, reviews, photos, and pricing information, plus get real-time availability and autocomplete suggestions as you type. Check reservation openings and explore detailed restaurant features to find and book your perfect dining experience.
opentable.ca API
Search and discover restaurants on OpenTable, view detailed information like menus and reviews, and check real-time dining availability across metro areas. Find top-rated restaurants in your location and instantly see which tables are open for your preferred date and time.
ubereats.com API
Search for restaurants by cuisine or location and browse their menus, prices, ratings, and delivery times. Get detailed information about specific restaurants and menu items to find exactly what you want to order.
food.grab.com API
Search for GrabFood restaurants by location and retrieve complete menu listings with prices and details for any store. Access real-time restaurant information and full dining options using a guest token obtained from the browser.