Catalog / OpenTable

OpenTable API

opentable.com

Search OpenTable restaurants by name and location, then check available reservation times for a restaurant, date, party size, and time window. Returns restaurant identifiers and booking links; does not make reservations.

  • Other
  • restaurants
  • reservations
  • dining
  • availability
  • opentable
2 endpointsDocs updated

Endpoint health

Loading verification…

Connect your agent

Connect through MCP so your agent can find this API, read its docs, and call its endpoints.

Setup guide

Add the server from your terminal.

Claude Code · terminal
claude mcp add --transport http agent-data https://agent-data.motie.dev/mcp

In Claude Code, run /mcp, select agent-data, then Authenticate. Sign in to your agent-data account in the browser.

Then ask your agent to use the OpenTable API for your task.

Call it over HTTP

Get an API key

Sign up free, generate an API key, and set it as AGENT_DATA_API_KEY in your environment. Your first 100 calls each month are free.

Search Restaurants

Provide the city or platform location name you want to search in. This field is required. If you provide a close synonym or spelling variant, the API may normalize it and echo the resolved value.

Optional parameters 12

Use this for broad discovery words such as a restaurant name, dining style, or keyword. Do not rely on `text` alone when you need strict cuisine or geography matching.

Use this when you are trying to find a specific restaurant by identity rather than category.

Provide the two-letter state code when you know it. Include this whenever the city name could be ambiguous.

Provide the neighborhood you want to constrain the search to. Always pair this with `city` and `state` for the most reliable matching.

Provide one or more cuisine labels you want enforced. The API may normalize close variants and will echo the resolved values it applied.

Provide an exact canonical price tier from 1 through 4 when you need an exact price match.

Provide the inclusive minimum price tier when you want a price range instead of an exact tier.

Provide the inclusive maximum price tier when you want a price range instead of an exact tier.

Keep this as `true` when location fields must match returned restaurant metadata exactly after normalization.

Keep this as `true` when cuisine fields must match returned restaurant metadata after normalization.

View call pricing
cURL · Restaurants search
curl --request GET --get 'https://api.agent-data.dev/opentable-com/v1/restaurants/search' \
  --header "Authorization: Bearer $AGENT_DATA_API_KEY"

Endpoints

Inputs and response fields for every endpoint in this API.

GETAvailability/v1/availability

Get Availability

Input

platform_idOptionalQuery · string | null

Use this when you already know the provider-specific restaurant ID. Prefer this field because it avoids an extra name-resolution step.

queryOptionalQuery · string | null

Use this when `platform_id` is unknown. Provide the restaurant name to resolve before fetching availability.

locationOptionalQuery · string | null

Use this with `query` resolution. Provide the city or market needed to disambiguate the restaurant name.

dateRequiredQuery · string (date)

Required. Provide the target dining date in `YYYY-MM-DD` format.

party_sizeRequiredQuery · integer, min: 1, max: 20

Required. Provide the total number of diners as an integer from 1 to 20.

time_startOptionalQuery · string (time) | null

Optional. Use this to keep only slots at or after the specified local time.

time_endOptionalQuery · string (time) | null

Optional. Use this to keep only slots at or before the specified local time.

include_rawOptionalQuery · boolean, default: false

Optional. Set this to `true` only when you need provider raw payload fragments for debugging. Leave it `false` for normal agent use.

Response

datestring (date)
slotsobject[]
slots[].raw?object | null
slots[].datestring (date)
slots[].timestring (time)
slots[].platformstring
slots[].slot_type"standard" | "experience" | "counter" | "outdoor"
slots[].party_sizeinteger, min: 1, max: 20
slots[].table_type?string | null
slots[].booking_urlstring
slots[].restaurant_idstring
slots[].deposit_requiredboolean
slots[].duration_minutes?integer, min: 1 | null
slots[].deposit_amount_cents?integer, min: 0 | null
slots[].platform_restaurant_idstring
errors?object[]
errors[].messagestring
errors[].platformstring
errors[].retryableboolean
errors[].error_type"rate_limited" | "blocked" | "timeout" | "parse_error" | "not_found" | "unknown"
errors[].retry_after_seconds?integer, min: 0 | null
platformstring
party_sizeinteger
queried_atstring (date-time)
restaurant_namestring

Fields marked ? are optional.

Don’t see the endpoint you need?

Ask agent-data to add an endpoint or return more fields. Extensions are free and keep existing endpoints working.