OpenTable restaurant, menu and open times
One OpenTable restaurant: id, name, link, description, review summary, cuisines, dining style, price band, dress code, executive chef, opening hours, full address with cross street, neighborhood, metro, position, phone, website, parking, public transit, entertainment, catering, payment options, additional details, overall, food, service, ambience and value ratings, noise level, review count, bookings today, takeout and delivery partners, private dining, how far ahead it books, experiences, awards, press mentions, FAQs, dining areas, full menus (sections and items with descriptions and prices), photos, recent reviews (ratings, text, reviewer, dates), and the open reservation times for the date, time and party size (up to 7 days ahead with days).
Every response includes credits_used: the credits this call cost.
Parameters
| name | type | description |
|---|---|---|
restaurantrequired | string | An opentable.com/r/<name> link or its <name> part, e.g. patrizias-of-brooklyn. Example: patrizias-of-brooklyn |
date | string | Reservation date (YYYY-MM-DD, default tomorrow). |
time | string | Reservation time, 24-hour HH:MM (default 19:00). |
party_size | integer | Party size (default 2). |
days | integer | Also list times for this many following days (default 0). |
Every endpoint also takes fresh, raw, fields (see lean responses and caching).
Example
curl "https://api.api.sh/opentable/v1/restaurant?restaurant=patrizias-of-brooklyn" \
-H "x-api-key: $APISH_KEY" import os, requests
res = requests.get(
"https://api.api.sh/opentable/v1/restaurant",
params={"restaurant": "patrizias-of-brooklyn"},
headers={"x-api-key": os.environ["APISH_KEY"]},
timeout=120,
)
res.raise_for_status()
data = res.json() const url = new URL("https://api.api.sh/opentable/v1/restaurant");
url.searchParams.set("restaurant", "patrizias-of-brooklyn");
const res = await fetch(url, { headers: { "x-api-key": process.env.APISH_KEY } });
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
const data = await res.json(); Response
A JSON object with the fields described above, plus raw (the source's own data), cached, fetched_at and credits_used. Errors return {"success": false, "error": "…"} with the HTTP status (see errors). A lookup that ran but found nothing (404) costs the price above; refused calls and errors on our side are free (what's charged).