Discover/OpenTable API
live

OpenTable APIopentable.ca

Search restaurants, check real-time table availability, and retrieve menus, reviews, and curated dining lists across Canadian metro areas via the OpenTable Canada API.

Endpoint health
verified 10h ago
get_restaurant_details
get_restaurant_availability
search_restaurants
get_top_restaurants
get_metro_areas
3/5 passing latest checkself-healing
Endpoints
5
Updated
10d ago

What is the OpenTable API?

The OpenTable Canada API exposes 5 endpoints covering restaurant search, real-time slot availability, detailed profiles, and curated metro-level dining lists. The search_restaurants endpoint accepts a free-text term alongside party size and date/time filters, returning paginated restaurant listings with cuisine, price band, neighborhood, coordinates, and photos. The get_restaurant_availability endpoint returns time-specific booking slots with seating type and experience details for one or more restaurant IDs simultaneously.

Try it
Search term — a city name, neighborhood, cuisine, or restaurant name.
Number of people in the party.
Preferred date and time in ISO format (e.g., 2026-06-20T19:00:00). Omitting returns results for the current time.
api.parse.bot/scraper/f956bcfe-cab2-4cec-a73e-37b56c6835cf/<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/f956bcfe-cab2-4cec-a73e-37b56c6835cf/search_restaurants?term=Toronto&covers=2&date_time=2026-07-14T19%3A00%3A00' \
  -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 opentable-ca-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: OpenTable SDK — search restaurants, browse curated picks, get details."""
from parse_apis.OpenTable_Scraper_API import OpenTable, City, RestaurantNotFound

client = OpenTable()

# Search for restaurants in Toronto — limit caps total items fetched
for restaurant in client.restaurants.search(term="Italian Toronto", limit=5):
    print(restaurant.name, restaurant.primary_cuisine, restaurant.rating)

# Browse curated top restaurants for a city using the City enum
top = client.restaurants.top(city=City.TORONTO)
if top.module_lists:
    for module in top.module_lists[:2]:
        print(module.module_key, module.id)

# Fetch full restaurant details by slug
detail = client.restaurant_details.get(slug="general-public-toronto")
print(detail.name, detail.dining_style, detail.hours_of_operation)

# Typed error handling — catch when a slug doesn't exist
try:
    client.restaurant_details.get(slug="nonexistent-restaurant-xyz-999")
except RestaurantNotFound as exc:
    print(f"Not found: {exc.slug}")

print("exercised: restaurants.search / restaurants.top / restaurant_details.get")
All endpoints · 5 totalmissing one? ·

Full-text search for restaurants by location, keyword, date, and party size. Returns restaurant listings with name, cuisine, rating, price band, neighborhood, address, coordinates, and photos. Results are server-paginated but this endpoint returns the first page. Each restaurant carries a restaurantId usable for availability lookups and a slug (from the profile URL) for detail fetches.

Input
ParamTypeDescription
termrequiredstringSearch term — a city name, neighborhood, cuisine, or restaurant name.
coversintegerNumber of people in the party.
date_timestringPreferred date and time in ISO format (e.g., 2026-06-20T19:00:00). Omitting returns results for the current time.
Response
{
  "type": "object",
  "fields": {
    "meta": "object with page metadata",
    "term": "string echoing the search term",
    "total": "integer total count of matching restaurants or null",
    "restaurants": "array of restaurant objects with restaurantId, name, primaryCuisine, neighborhood, statistics, priceBand, coordinates, address, photos, diningStyle, description"
  }
}

About the OpenTable API

Search and Discovery

The search_restaurants endpoint accepts a required term parameter (city, neighborhood, cuisine type, or restaurant name) plus optional covers (party size) and date_time (ISO 8601 format) inputs. Each result object includes restaurantId, name, primaryCuisine, neighborhood, priceBand, statistics, coordinates, address, and photo URLs. The total field gives the count of all matching restaurants, though only the first page is returned per request.

The get_top_restaurants endpoint takes a city string and returns curated module_lists organized into named categories such as "top booked" or "premium marketplace", plus metro-level FAQ data and a best_restaurants_by_category array. The get_metro_areas endpoint requires no inputs and returns every supported Canadian metro with metroId, restaurantCount, sub-region (macros) details, and canonical URLs — useful for building location pickers.

Restaurant Profiles and Availability

The get_restaurant_details endpoint takes a slug (the path segment after /r/ in an OpenTable URL) and returns a restaurantProfile object containing description, dining style, operating hours, address, contact info, gallery photos, menu data, editorial list memberships, private dining info, and aggregated reviews. An availability object with the current state and an attribution token is included alongside restaurant-specific FAQs.

For real-time booking slots, get_restaurant_availability accepts a date (YYYY-MM-DD), time (HH:MM), optional party_size, and a comma-separated list of restaurant_ids. The response contains one entry per restaurant with restaurantAvailabilityToken, and availabilityDays listing individual time slots with offsets from the requested time, seating type, and experience metadata. Restaurant IDs can be obtained from search_restaurants results.

Reliability & maintenanceVerified

The OpenTable API is a managed, monitored endpoint for opentable.ca — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when opentable.ca 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 opentable.ca 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
10h ago
Latest check
3/5 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 dining concierge app that queries search_restaurants by cuisine and neighborhood then shows open slots via get_restaurant_availability.
  • Aggregate curated lists from get_top_restaurants to populate a "best of Toronto" or "best of Vancouver" editorial feature.
  • Display full restaurant profiles — menus, gallery photos, hours, and reviews — sourced from get_restaurant_details in a travel itinerary tool.
  • Populate a city selector using get_metro_areas to enumerate all supported Canadian metros and their restaurant counts.
  • Monitor real-time availability across multiple restaurant IDs to surface last-minute openings for a specific date and party size.
  • Extract price band, cuisine, and neighborhood data from search_restaurants to build a filterable restaurant directory for a specific city.
  • Surface FAQ content and editorial metadata from get_restaurant_details to enrich restaurant landing pages with structured dining context.
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 OpenTable have an official developer API?+
OpenTable does not offer a public developer API for restaurant search or availability. Their integration programs are directed at reservation system partners rather than general developers.
What does `get_restaurant_availability` return and how specific are the time slots?+
The endpoint returns an array of per-restaurant objects, each containing a restaurantAvailabilityToken and availabilityDays. Within each day, individual slots include a time offset relative to your requested time, along with seating type and experience details. You can query multiple restaurants in one call by passing a comma-separated list of IDs in restaurant_ids.
Does `search_restaurants` return all matching results or just the first page?+
It returns only the first page of results. The total field in the response indicates how many restaurants matched the query overall. Pagination across additional pages is not currently exposed. You can fork this API on Parse and revise it to add offset or page-based pagination endpoints.
Is reservation booking or cancellation supported?+
No booking or cancellation actions are currently covered. The API surfaces availability data and restaurant details but does not include endpoints for creating, modifying, or cancelling reservations. You can fork this API on Parse and revise it to add a booking endpoint if that workflow is needed.
Are all Canadian cities covered, or only major metros?+
Coverage is limited to the metro areas and sub-regions returned by get_metro_areas, which lists each supported market with its metroId and restaurantCount. Smaller markets not represented in OpenTable Canada's listings will not appear in search or curated results.
Page content last updated . Spec covers 5 endpoints from opentable.ca.
Related APIs in Food DiningSee all →
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.
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.
resy.com API
Search for restaurants across cities and check real-time availability to find open reservation slots on Resy. Discover trending and top-rated venues with detailed information about dining options, menus, and available time slots across selected dates.
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.
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.
tock.com API
Search for restaurants on Tock and discover detailed information including their accolades, FAQs, menus, and contact details all in one place. Find the perfect dining experience with comprehensive restaurant profiles and booking options.
toasttab.com API
Search for restaurants on ToastTab.com by location and keyword. Retrieve restaurant profiles, contact details, hours, and full menus — including item names, prices, descriptions, and customization options.
sevenrooms.com API
Search for available restaurant tables across any SevenRooms venue, view venue details and open dates, and complete reservations all in one place. Whether you're planning ahead or booking last-minute, you can check real-time availability and secure your table at thousands of restaurants on the SevenRooms platform.