Discover/OpenTable API
live

OpenTable APIopentable.ca

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

This API takes change requests — .
Endpoint health
verified 2d ago
get_restaurant_availability
get_top_restaurants
search_restaurants
get_metro_areas
get_booking_count
6/6 passing latest checkself-healing
Endpoints
6
Updated
23d ago

What is the OpenTable API?

This API exposes 6 endpoints covering OpenTable Canada's restaurant data, from full-text search to real-time slot availability. Use search_restaurants to query by city, cuisine, party size, and date, receiving back restaurant IDs, coordinates, price bands, and ratings. Other endpoints cover curated metro-level lists, per-restaurant profiles with menus and gallery photos, live booking slots, and today's booking counts.

This call costs2 credits / call— charged only on success
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-08-29T19%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, get booking counts, browse metros."""
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=3):
    print(restaurant.name, restaurant.restaurant_id, restaurant.primary_cuisine)

# Get the "Booked N times today" stat for a restaurant by slug
booking = client.booking_counts.get(slug="general-public-toronto")
print(booking.name, booking.booked_today, booking.booked_today_text)

# Can also look up by restaurant_id from search results
first = client.restaurants.search(term="Toronto", limit=1).first()
if first:
    count = client.booking_counts.get(restaurant_id=first.restaurant_id)
    print(count.name, count.slug, count.booked_today)

# List available metro areas
for metro in client.metro_areas.list(limit=3):
    print(metro.name, metro.top_location_link)

# 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 / booking_counts.get / metro_areas.list / restaurant_details.get")
All endpoints · 6 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

Restaurant Search and Discovery

The search_restaurants endpoint accepts a required term (city, neighborhood, cuisine, or restaurant name) alongside optional covers and date_time parameters. It returns an array of restaurant objects containing restaurantId, name, primaryCuisine, neighborhood, priceBand, coordinates, address, and statistics. The total field gives the overall match count. The restaurantId values returned here are the keys you need for availability lookups.

Restaurant Details and Metro Listings

get_restaurant_details takes a slug — the URL path segment after /r/ — and returns the full restaurant profile: description, dining style, operating hours, menus, gallery photos, editorial list memberships, private dining info, and a bundled availability state object. get_top_restaurants takes a city name and returns module_lists organized by category (top booked, premium marketplace, mealtime), along with metro-level FAQ data. get_metro_areas requires no parameters and returns the full list of supported Canadian metro areas with their topLocationLink and landmarkLinks, useful for seeding calls to get_top_restaurants.

Real-Time Availability and Booking Signals

get_restaurant_availability is the core booking-readiness endpoint. It requires date (YYYY-MM-DD), time (HH:MM), and a comma-separated restaurant_ids string. The response contains per-restaurant availabilityDays arrays with individual time slots, restaurantAvailabilityToken values, seating types, and experience information. get_booking_count accepts a slug, restaurant_id, or restaurant name and returns booked_today (integer) and booked_today_text (the raw label string), giving a demand signal without requiring a full availability call.

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
2d ago
Latest check
6/6 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 restaurant-finder app that filters by cuisine, party size, and date using search_restaurants results including priceBand and neighborhood.
  • Display live table availability across multiple Toronto or Vancouver restaurants by batching IDs into get_restaurant_availability.
  • Aggregate curated dining lists per Canadian city using get_top_restaurants module categories like top booked and premium marketplace.
  • Power a restaurant profile page with menus, gallery photos, and hours pulled from get_restaurant_details.
  • Track demand signals for specific restaurants by polling get_booking_count and recording booked_today over time.
  • Seed a metro-aware search UI by first calling get_metro_areas to enumerate supported Canadian regions, then querying top restaurants per metro.
  • Compare price bands and ratings across neighborhood restaurants using statistics and priceBand fields from search_restaurants.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. 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 offers a limited affiliate and restaurant-partner API, but it is not publicly available for general developer use. Details are at developer.opentable.com, though access is restricted to approved partners. This Parse API covers the Canadian OpenTable catalog without requiring partner credentials.
What does `get_restaurant_availability` return for each time slot?+
For each restaurant in the request, it returns an availabilityDays array. Each day entry contains time slots with offset values relative to the requested time, a restaurantAvailabilityToken for use in booking flows, seating type identifiers, and associated experience information. Party size affects which slots are returned.
Does `search_restaurants` return results beyond the first page?+
The endpoint returns the first page of results along with a total count and page metadata in the meta object. Subsequent pages are not currently exposed through this endpoint. You can fork the API on Parse and revise it to add an offset or page parameter to retrieve deeper result sets.
Is waitlist or reservation completion data available?+
Not currently. The API covers availability slots, booking counts, and restaurant profile data, but does not expose waitlist state or reservation confirmation flows. You can fork it on Parse and revise it to add an endpoint targeting that data.
How do I find a restaurant's slug for use with `get_restaurant_details`?+
Slugs appear in the response objects from search_restaurants. They correspond to the path segment after /r/ in any OpenTable Canada restaurant URL — for example, general-public-toronto. You can also pass a slug directly to get_booking_count instead of a numeric ID.
Page content last updated . Spec covers 6 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.
tabelog.com API
Search for restaurants and view detailed information like menus, ratings, and reviews on Tabelog, then instantly check real-time table availability to book your ideal dining experience. Get comprehensive restaurant profiles including cuisine type, price range, and customer feedback to make informed dining decisions.
thefork.com API
Search for restaurants and check real-time table availability to find and book your next dining reservation. Get detailed information about restaurants including menus, pricing, and reservation slots 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.
exploretock.com API
Search for restaurants and dining experiences on Tock, then view detailed venue information, menus, and real-time availability including specific dates, time slots, and prix-fixe pricing to book your reservation. Get comprehensive restaurant details with all offerings to help you find and reserve your perfect dining experience.
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.