OpenTable API and MCP server Let your AI agent get you the table.

Read OpenTable saved restaurants and reservations through MCP or REST. Connect your diner account to an agent or a personal planning workflow.

  • Free 7-day trial, no card
  • Unofficial, not affiliated with OpenTable
OpenTable logo OpenTable Cloud Browser

13 tools Read and write

Diners and restaurants

What can you automate in OpenTable? Use an AI agent, a workflow or a script.

  • Find open tables for a group

  • Watch a full restaurant for a table

  • Move or cancel before the fee

  • Keep your saved restaurants

  • Brief the floor on tonight's guests

  • Text the next party on the waitlist

Partners only

Does OpenTable have an MCP server or an API? An API for partners, booking inside ChatGPT.

OpenTable has no public API and no MCP server (checked 27 Oct 2026). Its Booking, Sync and CRM APIs go to approved integration partners and work per restaurant, not on your diner account. Cotlet runs 13 OpenTable tools hosted, over MCP for agents and REST for scripts.

  • ChatGPT can search OpenTable and reserve a table in the chat since 10 Aug 2026. Changes and cancellations go back to OpenTable, and it works only inside ChatGPT.
  • No partner endpoint lists the reservations or saved restaurants on your own account. The Online Booking API handles the bookings a partner made.
  • Zapier and n8n have no OpenTable app. Make has one built by a third party, not by OpenTable.
OpenTable's partner API, the booking in ChatGPT and Cotlet compared
What you need Partner APIChatGPT bookingCotlet
Find open tables and book After approval Yes Yes, after your OK
List, move or cancel your reservations Partner bookings only Sent to OpenTable Yes
Watch a full restaurant on a schedule After approval No Yes
Read the reservation book and guest notes Sync and CRM tiers No Yes
Use from Claude, n8n or a script Your own code ChatGPT only Yes
Allowed by OpenTable's terms Yes, official Yes, official partner Uses the website

Checked 27 Oct 2026. Sources: OpenTable API documentation · OpenTable's API and Partner FAQs · OpenAI: ChatGPT release notes, 10 Aug 2026 · Make: OpenTable community app

Set up once

How does Cotlet connect to OpenTable? One account, two ways to connect.

  1. 1Sign in to OpenTable

    Use your own account in its Cotlet Cloud Browser.

  2. 2Choose MCP or REST

    Connect your agent or create a Cotlet API key.

  3. 3Run your workflow

    Ask your agent or send an HTTP request.

We never keep your OpenTable password, and no booking reaches a restaurant until you approve it. Who can see your session

Any MCP client

Connect OpenTable to your agent or workflow

Use MCP with your AI agent, or HTTP requests in n8n, Make, Zapier and scripts. Follow the MCP setup below or jump to the REST guide.

  1. 1

    Turn on OpenTable for agents. Create a Cotlet account, sign in to OpenTable in its Cloud Browser, then press Enable for agents.

  2. 2

    Add the MCP address. Paste https://cotlet.dev/mcp/v1 into your agent as an MCP server or connector.

  3. 3

    Allow the connection. Chat apps open a Cotlet sign-in. Code editors, n8n and scripts take an API key from the console.

The shared address https://cotlet.dev/mcp/v1 carries OpenTable next to the other apps you enable. Turned OpenTable on after you connected? Refresh the connector and its tools appear.

Claude
Settings > Connectors > Add custom connector
URL: https://cotlet.dev/mcp/v1/connect

Claude Code:
claude mcp add --transport http cotlet-opentable \
  https://cotlet.dev/mcp/v1 \
  --header "Authorization: Bearer $COTLET_API_KEY"
ChatGPT
Settings > Apps & Connectors > Create
MCP server URL: https://cotlet.dev/mcp/v1/connect
Authentication: OAuth
Cursor
// ~/.cursor/mcp.json
{
  "mcpServers": {
    "cotlet-opentable": {
      "url": "https://cotlet.dev/mcp/v1",
      "headers": { "Authorization": "Bearer ${env:COTLET_API_KEY}" }
    }
  }
}
Codex
# ~/.codex/config.toml
[mcp_servers.cotlet-opentable]
url = "https://cotlet.dev/mcp/v1"
bearer_token_env_var = "COTLET_API_KEY"
n8n
MCP Client Tool (inside an AI Agent)
Transport: HTTP Streamable
URL: https://cotlet.dev/mcp/v1
Auth: Bearer, <your key>
Tool: opentable_read
Make, Zapier
Make: MCP Client > Call a tool
Zapier: MCP Client by Zapier > Run Tool
Server URL: https://cotlet.dev/mcp/v1
Token: <your key>
Tool: opentable_write
Scripts and HTTP

How to use the OpenTable REST API

Create your Cotlet API key

Sign in to OpenTable in its Cotlet Cloud Browser and enable the app for agents. Use your diner login for saved restaurants; restaurant-book and Guestbook reads require a separate OpenTable for Restaurants login with access.

Create a Cotlet API key with access to OpenTable and its read operations. Store it as COTLET_API_KEY in your environment or automation platform's credential store.

Make your first OpenTable API request

cURL: list_saved_restaurants

curl https://cotlet.dev/api/v1/opentable/saved-restaurants \
  -H "Authorization: Bearer $COTLET_API_KEY"

Read saved restaurant IDs before availability

A successful REST call puts the tool output in result. This illustrative response excerpt omits call IDs, messages and credit details.

Illustrative response excerpt

{
  "status": "success",
  "app": "opentable",
  "tool": "list_saved_restaurants",
  "result": {
    "saved": [
      {
        "restaurant_id": "rid_120771",
        "name": "Harbor Room",
        "cuisine": "Seafood",
        "neighborhood": "Embarcadero"
      }
    ]
  }
}

Read result.saved; saved restaurants have no pagination inputs. Use a returned restaurant ID for availability on your selected date and party size.

Diner reservation lists accept status and a limit without a cursor or a documented numeric maximum. A limited list is not an unlimited historical export.

Restaurant reservation-book reads are a separate account role. Availability checks reserve nothing, and table inventory can change between calls.

OpenTable workflows for agents and automations

OpenTable workflows you configure
ToolConnect throughExample workflow
n8nHTTP RequestRead saved restaurants and dated availability into a dining shortlist without making reservations.
MakeHTTP > Make a requestRead diner reservations into a personal itinerary and compare timing on refresh.
Python or Node.jsREST APIWith restaurant access, read the reservation book and guest records into a shift brief with visit-specific tags.

Send Authorization: Bearer <your Cotlet API key> in request headers. You configure the schedule, destination and record comparisons.

Cotlet reads OpenTable; your workflow steps write to your chosen destination. These HTTP workflows do not require a native Cotlet connector or a prebuilt template.

Python and Node.js can use the same HTTP requests without an AI agent. Keep access keys in credentials, outside shared workflow exports.

The API and MCP reference lists operations and inputs. The REST API guide explains authentication, errors and approvals.

7 read, 6 write

OpenTable API endpoints and MCP tools

Find a table4

Times are what OpenTable shows at that moment; nothing is held until you book. Saving a restaurant touches only your own list.

  • search_restaurants Find restaurants with open tables for a place, date, time and party size. read

    Returns restaurants in the order OpenTable ranks them for the search, each with its restaurant_id, name, cuisine, neighborhood and the open times near the time you asked for. It searches the same listings as opentable.com. A restaurant with no table near that time can still show up with an empty list of times.

    MCP callopentable_read → search_restaurants

    REST endpointGET https://cotlet.dev/api/v1/opentable/restaurants/search

    Parameters

    Parameters: search_restaurants
    NameTypeDescription
    location string required string A city, neighborhood or address, for example "Union Square, San Francisco".
    date string required string Date in YYYY-MM-DD.
    time string required string Preferred time in HH:MM, 24-hour.
    party_size integer required integer Number of guests.
    query string string Cuisine or restaurant name, for example "italian" or "sushi".
    limit integer integer How many restaurants to return.

    Example input

    {
      "location": "location",
      "date": "date",
      "time": "time",
      "party_size": 1
    }

    Example response

    {
      "restaurants": [
        {
          "restaurant_id": "rid_104822",
          "name": "Trattoria Verde",
          "cuisine": "Italian",
          "neighborhood": "Union Square",
          "times": [
            "19:00",
            "19:30",
            "20:15"
          ]
        },
        {
          "restaurant_id": "rid_118305",
          "name": "Osteria Nove",
          "cuisine": "Italian",
          "neighborhood": "Union Square",
          "times": [
            "19:45"
          ]
        }
      ]
    }
  • get_availability List the open times at one restaurant for a date and party size, with its booking policy. read

    Returns each open time with its seating area where the restaurant shows one, and the booking policy for that time: whether a credit card is required and the cancellation policy text the restaurant set. It reserves nothing; a time can be gone by the time you book. Use the slot_id with book_reservation or modify_reservation.

    MCP callopentable_read → get_availability

    REST endpointGET https://cotlet.dev/api/v1/opentable/restaurants/{restaurant_id}/availability

    Parameters

    Parameters: get_availability
    NameTypeDescription
    restaurant_id string required string A restaurant_id from search_restaurants or list_saved_restaurants.
    date string required string Date in YYYY-MM-DD.
    time string string Time in HH:MM to search around. Defaults to 19:00.
    party_size integer required integer Number of guests.

    Example input

    {
      "restaurant_id": "restaurant_8c41d2",
      "date": "date",
      "party_size": 1
    }

    Example response

    {
      "restaurant_id": "rid_104822",
      "date": "2026-10-30",
      "party_size": 6,
      "slots": [
        {
          "slot_id": "sl_7f21",
          "time": "19:00",
          "area": "Dining room"
        },
        {
          "slot_id": "sl_7f24",
          "time": "19:30",
          "area": "Patio"
        }
      ],
      "credit_card_required": true,
      "cancellation_policy": "Cancel at least 24 hours before your reservation to avoid a fee."
    }
  • list_saved_restaurants List the restaurants saved on your OpenTable account. read

    Returns each saved restaurant with its restaurant_id, name, cuisine and neighborhood. The agent uses them to search where you already like to eat. It does not change the list.

    MCP callopentable_read → list_saved_restaurants

    REST endpointGET https://cotlet.dev/api/v1/opentable/saved-restaurants

    Parameters

    No parameters.

    Example response

    {
      "saved": [
        {
          "restaurant_id": "rid_120771",
          "name": "Harbor Room",
          "cuisine": "Seafood",
          "neighborhood": "Embarcadero"
        },
        {
          "restaurant_id": "rid_104822",
          "name": "Trattoria Verde",
          "cuisine": "Italian",
          "neighborhood": "Union Square"
        }
      ]
    }
  • save_restaurant Add a restaurant to your saved restaurants, or remove it. write

    Returns the restaurant and whether it is saved now. It changes only your own list, reaches no one, and the same call with saved false undoes it, so it runs without asking you.

    MCP callopentable_write → save_restaurant

    REST endpointPOST https://cotlet.dev/api/v1/opentable/restaurants/{restaurant_id}/save

    Parameters

    Parameters: save_restaurant
    NameTypeDescription
    restaurant_id string required string A restaurant_id from search_restaurants.
    saved boolean boolean true to save, false to remove. Defaults to true.

    Example input

    {
      "restaurant_id": "restaurant_8c41d2"
    }

    Example response

    {
      "restaurant_id": "rid_120771",
      "name": "Harbor Room",
      "saved": true
    }

Your reservations4

Booking, moving and cancelling reach the restaurant, so each waits for your OK. Bookings that need a card end with a link to finish in OpenTable.

  • list_reservations List the upcoming or past reservations on your OpenTable account. read

    Returns each reservation with its reservation_id, restaurant, date and time, party size, status and the confirmation number, upcoming ones soonest first. It reads what your account shows under your reservations. Bookings you made by phone with the restaurant show up only if the restaurant linked them to your OpenTable profile.

    MCP callopentable_read → list_reservations

    REST endpointGET https://cotlet.dev/api/v1/opentable/reservations

    Parameters

    Parameters: list_reservations
    NameTypeDescription
    status string string upcoming or past. Defaults to upcoming.
    limit integer integer How many reservations to return.

    Example response

    {
      "reservations": [
        {
          "reservation_id": "res_55120",
          "restaurant": "Trattoria Verde",
          "date": "2026-10-31",
          "time": "19:00",
          "party_size": 4,
          "status": "confirmed",
          "confirmation": "2048"
        }
      ]
    }
  • book_reservation Book a table at an open time on your OpenTable account. writeasks first

    Books the table in your name and the restaurant sees it in its reservation book, so the call waits for your approval. Where the restaurant requires a credit card, the call stops and returns a link to finish in OpenTable, because Cotlet never enters card details. Returns the reservation_id and the confirmation number. By default you confirm each call; you can switch that off for this tool.

    MCP callopentable_write → book_reservation

    REST endpointPOST https://cotlet.dev/api/v1/opentable/restaurants/{restaurant_id}/reservations

    Parameters

    Parameters: book_reservation
    NameTypeDescription
    restaurant_id string required string A restaurant_id from search_restaurants.
    slot_id string required string A slot_id from get_availability.
    party_size integer required integer Number of guests, the same as in get_availability.
    special_request string string A note for the restaurant, for example "high chair" or "birthday".

    Example input

    {
      "restaurant_id": "rid_104822",
      "slot_id": "sl_7f21",
      "party_size": 6,
      "special_request": "Birthday dinner"
    }

    Example response

    {
      "reservation_id": "res_55120",
      "restaurant": "Trattoria Verde",
      "date": "2026-10-30",
      "time": "19:00",
      "party_size": 6,
      "status": "confirmed",
      "confirmation": "2048"
    }
  • modify_reservation Change the time, date, party size or special request of one of your reservations. writeasks first

    Changes the booking the restaurant sees, so the call waits for your approval. A new time must come from get_availability for the new party size. When the change is not possible, the reservation stays as it was and the call returns why. By default you confirm each call; you can switch that off for this tool.

    MCP callopentable_write → modify_reservation

    REST endpointPOST https://cotlet.dev/api/v1/opentable/reservations/{reservation_id}/modify

    Parameters

    Parameters: modify_reservation
    NameTypeDescription
    reservation_id string required string A reservation_id from list_reservations.
    slot_id string string A new slot_id from get_availability. Leave out to keep the time.
    party_size integer integer New number of guests.
    special_request string string New note for the restaurant.

    Example input

    {
      "reservation_id": "reservation_8c41d2"
    }

    Example response

    {
      "reservation_id": "res_55120",
      "restaurant": "Trattoria Verde",
      "date": "2026-10-31",
      "time": "20:30",
      "party_size": 4,
      "status": "confirmed"
    }
  • cancel_reservation Cancel one of your reservations. writeasks first

    Cancels the booking and frees the table for the restaurant, so the call waits for your approval. OpenTable asks diners to cancel at least 30 minutes ahead, and a restaurant can charge a fee under its own cancellation policy, which get_availability returns. A cancelled reservation cannot be restored; book again instead. By default you confirm each call; you can switch that off for this tool.

    MCP callopentable_write → cancel_reservation

    REST endpointPOST https://cotlet.dev/api/v1/opentable/reservations/{reservation_id}/cancel

    Parameters

    Parameters: cancel_reservation
    NameTypeDescription
    reservation_id string required string A reservation_id from list_reservations.

    Example input

    {
      "reservation_id": "reservation_8c41d2"
    }

    Example response

    {
      "reservation_id": "res_55120",
      "restaurant": "Trattoria Verde",
      "status": "cancelled"
    }

Restaurant side5

Needs an OpenTable for Restaurants login with the reservation book, Guestbook and waitlist. Notes and tags stay inside your team; the waitlist text goes to the guest.

  • list_restaurant_reservations Read your restaurant's reservation book for a date, with party size, status, tags and notes. read

    Returns the reservations OpenTable for Restaurants shows for that date in time order, each with guest name, guest_id, time, party size, status, guest and visit tags, and the visit note. It needs an OpenTable for Restaurants login with access to the reservation book. It changes nothing.

    MCP callopentable_read → list_restaurant_reservations

    REST endpointGET https://cotlet.dev/api/v1/opentable/restaurant-reservations

    Parameters

    Parameters: list_restaurant_reservations
    NameTypeDescription
    date string required string Date in YYYY-MM-DD.
    shift string string A shift name as your restaurant sets it, for example "Dinner". Defaults to all shifts.

    Example input

    {
      "date": "date"
    }

    Example response

    {
      "date": "2026-10-27",
      "reservations": [
        {
          "reservation_id": "rr_88410",
          "time": "18:30",
          "guest": "Alex Rivera",
          "guest_id": "g_30115",
          "party_size": 2,
          "status": "confirmed",
          "tags": [
            "Anniversary"
          ],
          "note": "Celebrating 10 years"
        },
        {
          "reservation_id": "rr_88422",
          "time": "19:15",
          "guest": "Sam Lee",
          "guest_id": "g_30422",
          "party_size": 4,
          "status": "confirmed",
          "tags": [
            "Shellfish allergy"
          ],
          "note": ""
        }
      ]
    }
  • get_guest Read one guest profile from your Guestbook: tags, notes and visit history. read

    Returns the guest's name, guest tags, notes and the number of past visits with the last visit date, as OpenTable for Restaurants shows them. Guest tags stay on the profile for future visits; visit tags belong to one reservation. Contact details are left out of the response.

    MCP callopentable_read → get_guest

    REST endpointGET https://cotlet.dev/api/v1/opentable/guests/{guest_id}

    Parameters

    Parameters: get_guest
    NameTypeDescription
    guest_id string required string A guest_id from list_restaurant_reservations.

    Example input

    {
      "guest_id": "guest_8c41d2"
    }

    Example response

    {
      "guest_id": "g_30115",
      "name": "Alex Rivera",
      "tags": [
        "Regular",
        "Wine lover"
      ],
      "notes": [
        "Prefers a booth"
      ],
      "visits": 9,
      "last_visit": "2026-09-12"
    }
  • add_guest_note Add a note or guest tags to a guest profile in your restaurant's Guestbook. write

    Returns the guest profile with its tags and notes after the change. Notes and tags are internal to your restaurant team; the guest is not told, and you remove them in the Guestbook in one step, so it runs without asking you. It only uses tags that exist in your restaurant's tag list.

    MCP callopentable_write → add_guest_note

    REST endpointPOST https://cotlet.dev/api/v1/opentable/guests/{guest_id}/note

    Parameters

    Parameters: add_guest_note
    NameTypeDescription
    guest_id string required string A guest_id from list_restaurant_reservations.
    note string string Note text, for example "Prefers a quiet table".
    tags array array Names of guest tags your restaurant already has, for example ["Shellfish allergy"].

    Example input

    {
      "guest_id": "guest_8c41d2"
    }

    Example response

    {
      "guest_id": "g_30422",
      "name": "Sam Lee",
      "tags": [
        "Shellfish allergy",
        "Regular"
      ],
      "notes": [
        "Allergy confirmed by phone"
      ]
    }
  • list_waitlist Read the parties on your restaurant's waitlist right now. read

    Returns each waiting party with its waitlist_id, guest name, party size, the time they joined and the quoted wait, in the order OpenTable for Restaurants shows them. It needs a restaurant login with access to the waitlist. It changes nothing.

    MCP callopentable_read → list_waitlist

    REST endpointGET https://cotlet.dev/api/v1/opentable/waitlists

    Parameters

    No parameters.

    Example response

    {
      "waitlist": [
        {
          "waitlist_id": "wl_3011",
          "guest": "Jordan Park",
          "party_size": 2,
          "joined_at": "19:05",
          "quoted_minutes": 25
        },
        {
          "waitlist_id": "wl_3012",
          "guest": "Taylor Green",
          "party_size": 5,
          "joined_at": "19:10",
          "quoted_minutes": 40
        }
      ]
    }
  • notify_waitlist_party Text a party on the waitlist that their table is ready. writeasks first

    Sends the guest the table-ready text message OpenTable for Restaurants sends from the waitlist, so the call waits for your approval. A text cannot be taken back. Returns the party and the time the text went out. By default you confirm each call; you can switch that off for this tool.

    MCP callopentable_write → notify_waitlist_party

    REST endpointPOST https://cotlet.dev/api/v1/opentable/waitlists/{waitlist_id}/party/notify

    Parameters

    Parameters: notify_waitlist_party
    NameTypeDescription
    waitlist_id string required string A waitlist_id from list_waitlist.

    Example input

    {
      "waitlist_id": "waitlist_8c41d2"
    }

    Example response

    {
      "waitlist_id": "wl_3011",
      "guest": "Jordan Park",
      "party_size": 2,
      "notified_at": "19:31"
    }
Encrypted, revocable

Who can see my OpenTable session, and how do I revoke it?

  • What we store

    Your signed-in OpenTable profile, AES-256-GCM encrypted, in Finland. No password.

  • What your agent gets

    The 13 OpenTable tools. Never the cookie itself.

  • What the session sees

    Your reservations, saved restaurants and profile; for a restaurant login, its book and Guestbook.

  • What no tool touches

    Card details, card holds, gift cards, your password and deleting the account.

  • If OpenTable sends a code

    Signing in can ask for a code by text or email. You type it, we never do.

  • How to cut access

    Disable for agents, reset the browser, or sign out in OpenTable.

Our site scores A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory (live results). There is no SOC 2 report or third-party pentest yet.

Account risk

Is it against OpenTable's terms? Account safety Its terms name AI assistants that use your browser.

"You agree not to (and not to allow any third party to): (1) use any deep-link, robot, spider, scraper, generative AI or other AI technology including, but not limited to, those that operate by interacting with or otherwise making use of your browser, such as automated assistants or other automatic or manual device, process, or means to access, copy, search, or monitor any portion of the Services or OpenTable Content, except as expressly authorized by OpenTable."
OpenTable Terms of Use, section 13, revised 22 Jul 2026

This is the plainest ban on our way of working we have read in any app's terms. OpenTable lets AI book through partners it chose (ChatGPT, Gemini, Copilot, Perplexity, Alexa+), not through your own agent. The same section lets OpenTable cancel reservations and close accounts at its discretion. In public it enforces resale of reservations and no-shows: four no-shows in 12 months suspend an account. We found no case of a diner account closed for using an AI agent (checked 27 Oct 2026). Use these tools knowing the risk is yours.

How we keep your account looking like you

  • Your own OpenTable account, signed in by you
  • One Cloud Browser with its own IP and cookies, not a new device on every call
  • Bookings, changes and cancellations wait for your OK
  • No tool books to resell or holds tables you will not use
  • If OpenTable objects, we pause the OpenTable tools for everyone within 24 h

Keep it to what you would do by hand: a check once a day on a restaurant, not a loop every minute, and cancel what you will not use.

Tested every 12 h

What happens when OpenTable changes? We repair the tool; your prompts stay the same.

between tests of the OpenTable searches and reads
12 h
for a call to an OpenTable tool paused for repair
$0

When OpenTable renames a field or changes its booking steps, we change the tool and your prompts keep working. status.cotlet.dev checks the site, console and API every 3 minutes.

4 tools ask first

Approvals, undo and mistakes A restaurant hears from you only after your OK.

  1. 01 Finds the times Searches, reads open times and the cancellation policy.
  2. 02 Shows you the pick Restaurant, time, party size and any card rule.
  3. 03 Waits for your OK The booking sits in your Cotlet console first.
  4. 04 Reports the booking Confirmation number, time and party size.
Which OpenTable actions can be undone
ActionUndo
Save a restaurantsave_restaurant with saved false, one call
Add a guest note or tagRemove it in the Guestbook
Book or move a reservationmodify_reservation or cancel_reservation, after your OK
Cancel a reservationNone; book again if the time is still open
Text a waitlist partyNone; a text cannot be taken back

4 of 13 tools ask first: book_reservation, modify_reservation, cancel_reservation and notify_waitlist_party. Each one reaches a restaurant or a guest. Searches, saved restaurants and internal guest notes run at once. Switching the wait off is your choice, per tool.

Where a restaurant needs a card to hold the table, the booking stops with a link to finish in OpenTable. Cotlet never types card numbers.

MCP call
{
  "name": "book_reservation",
  "arguments": {
    "restaurant_id": "rid_104822",
    "slot_id": "sl_7f21",
    "party_size": 6,
    "special_request": "Birthday dinner"
  }
}
REST
curl -X POST https://cotlet.dev/api/v1/opentable/restaurants/rid_104822/reservations \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"slot_id":"sl_7f21","party_size":6,"special_request":"Birthday dinner"}'
Tool output
{
  "reservation_id": "res_55120",
  "restaurant": "Trattoria Verde",
  "date": "2026-10-30",
  "time": "19:00",
  "party_size": 6,
  "status": "confirmed",
  "confirmation": "2048"
}

Scripts and cron jobs call the same tools over REST at /api/v1/opentable, with the same key and price. A failed call costs nothing. Each tool in the list above shows its REST path.

Pay per call

How much does the OpenTable MCP server cost?

About $12 a monthfor one diner with a daily watch on one restaurant, 1,990 credits. An OpenTable diner account is free.

A month of OpenTable jobs for one diner, in credits
JobCallsCredits
Find and book a table4 × 3120
Watch a full restaurant, daily1 × 30300
Move a reservation3 × 130
Check what is booked1 × 440
Cloud Browser, 30 days1,500
Total1,990
  • Free 7-day trial, no card
  • 10 credits per successful call, MCP or REST
  • 50 credits a day for the Cloud Browser
  • Same price for a diner or a restaurant login

The month is our example: 3 bookings, 1 change, a daily check on one fully booked restaurant and 4 looks at what is booked. OpenTable publishes no reservations-per-diner figure, so the volume is our assumption. A restaurant that runs a daily floor briefing makes more calls. Dollars at the $29 pack rate.

Cotlet credit packs: price, credits and calls at 10 credits each
Credits Price, one time Calls at 10 credits Per 1,000 credits
5,000 $29 500 $5.80
15,000 $79 1,500 $5.27
32,000 $149 3,200 $4.66
60,000 $249 6,000 $4.15

Only successful calls use credits; failed calls and timeouts cost nothing. At a balance of 0 calls pause, never a surprise charge. Authenticate with the Authorization: Bearer header.

Other options

OpenTable MCP server on GitHub, Apify or hosted: which to use Several small ones exist, none from OpenTable.

Other OpenTable agent tools, checked 27 Oct 2026
OptionWhat it doesWhere it stops
chrischall/opentable-mcpMCP server that sends each request through your signed-in Chrome tab with a browser extension. Search, slots, book, modify, cancel, favorites. MIT, last commit 25 Oct 2026.Alpha (v0.3.0), no stars yet. Works only while your own Chrome is open on your computer.
markswendsen-code/mcp-opentableCommunity MCP server that drives the OpenTable website with Playwright: search and book.Last commit 21 Apr 2026. OpenTable's bot protection answers scripted browsers with a challenge.
jtur671/opentable-watcher-mcpWatches a restaurant for open times and alerts you. MIT, last commit 25 Jul 2026.Watch and alert only; it does not book.
Apify OpenTable BookerHosted actor with MCP: search, availability, book, view and cancel. Paid per event, $3.99 per booking.Diner side only. No restaurant book, Guestbook or waitlist.
Bright Data OpenTable MCPPaid scraping of public OpenTable pages.Public data only. It does not sign in or book.
ChatGPT restaurant bookingSearch and reserve inside ChatGPT, through OpenTable as a partner.Inside ChatGPT only; changes and cancellations go back to OpenTable.

If you only book now and then from ChatGPT, its built-in booking is the official route and the safest one. Cotlet is for the rest: moving and cancelling, watching a full restaurant on a schedule, the restaurant side, and any agent besides ChatGPT, hosted.

EU company, since 2019

Who runs Cotlet A company you can look up.

Take Group sp. z o.o. runs Cotlet, a software company registered in Poland, EU (VAT PL6342984273), working since 2019 and founded by Bart Krawczyk (Co-founder, CTO) and Jake Slugocki (Co-founder, SEO, sales and marketing). Questions about the OpenTable tools go to contact@cotlet.dev.

OpenTable API and MCP: questions

Can I use the OpenTable API without an AI agent?

Yes. Call Cotlet's REST API from a script or an HTTP step in n8n, Make or Zapier with your Cotlet key. MCP is the alternative for AI agents; you do not need to connect an agent to use REST.

How do I get access?

Create a free account at https://cotlet.dev, open OpenTable under Integrations in the console and sign in to OpenTable in its Cloud Browser. The trial starts with your first app, no card asked.

Does ChatGPT already book OpenTable?

Yes, for search and booking. Since 10 Aug 2026 ChatGPT can show OpenTable times and reserve a table in the chat, and sends you to OpenTable when a credit card is required (OpenAI Help Center release notes). It does not list, change or cancel the reservations on your account, and it does not work in Claude Code, n8n or a script. Cotlet does all of these on your own account.

What happens if I do not show up?

OpenTable asks diners to cancel reservations they cannot honor at least 30 minutes ahead, and a restaurant can set its own cancellation policy with a fee (OpenTable Terms of Use). get_availability returns that policy before you book, and cancel_reservation cancels in one call after your OK.

Which login does the restaurant side need?

An OpenTable for Restaurants login with access to the reservation book, the Guestbook and the waitlist. Guest tags stay on a guest profile for future visits, and visit tags stay on one reservation (OpenTable Support: Understand guest needs with custom tags).

Can it get a table at a fully booked restaurant?

It can check one restaurant on a schedule and book after your OK when a time opens. It cannot create tables that are not offered. OpenTable's terms ban reselling reservations, and a resold or unused booking puts the account at risk.

Does it work outside the US?

It works in your own OpenTable account on the OpenTable site of your country. Restaurants, times and card rules are what that site shows.

Is the MCP server different from the REST API?

Only the way in differs. Both carry the same 13 tools, inputs and answers, with one API key and one price. Agents use MCP; scripts and HTTP steps use REST.

Is Cotlet affiliated with OpenTable?

No. Cotlet is independent and not affiliated with OpenTable or Booking Holdings.

Give your agent access to OpenTable.

Free 7-day trial with 2,000 credits, no card needed.