Resy API and MCP server Let your AI agent handle your Resy bookings.

Read Resy reservations and venue availability with an agent or script. Use MCP or REST to prepare dining shortlists and a personal reservation brief.

  • Free 7-day trial, no card
  • Unofficial, not affiliated with Resy or American Express
Resy logo Resy Cloud Browser

11 tools Read and write

Diner side

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

  • Find open tables by date and party size

  • Book the slot you pick, after your OK

  • Move a reservation to another time

  • Warn you before cancellation fees start

  • Set Notify alerts for full restaurants

  • Clear out old Notify alerts

No public API

Does Resy have an MCP server or an API? An official app, in two chat apps only.

Resy has no public API (checked 27 Oct 2026). American Express runs an official Resy MCP app that only Claude and ChatGPT can connect to: it finds tables and, in ChatGPT, books one. Cotlet runs 11 Resy tools hosted, over MCP for agents and REST for scripts, including the ones the official app leaves out.

  • In Claude, the Resy app shows live availability and then sends you to the Resy app or website to finish the booking (American Express guide, launched 23 Apr 2026).
  • In ChatGPT, since 10 Aug 2026, you can pick a time and confirm the reservation in the chat. Neither app lists, changes or cancels your reservations or sets Notify alerts.
  • The Resy OS API is for restaurants' technology partners such as Toast and Square, by agreement with Resy. Zapier, Make and n8n have no Resy app.
Resy's official AI apps and Cotlet compared
What you need Resy in ClaudeResy in ChatGPTCotlet
Search tables with live availability Yes, US Yes, US Yes
Book a table Hands off to Resy Yes Yes, after your OK
See, change or cancel your reservations No No Yes
Set or remove Notify alerts In the Resy app In the Resy app Yes
Use from another agent, n8n or a script Claude only ChatGPT only Yes
Allowed by Resy's terms Yes, official Yes, official Not approved by Resy

Checked 27 Oct 2026. Sources: Resy newsroom: Resy restaurants in the U.S. are now discoverable in Claude · Resy newsroom: Resy launches reservations in ChatGPT · American Express: Find Resy restaurants in Claude (PDF) · Resy Help: change or cancel a reservation

Set up once

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

  1. 1Sign in to Resy

    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 Resy password, and no table is booked, moved or cancelled until you approve it. Who can see your session

Any MCP client

Connect Resy 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

    Log in to Resy in Cotlet. Create a Cotlet account, sign in to Resy in its Cloud Browser and switch on Enable for agents.

  2. 2

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

  3. 3

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

Resy sits on the shared address https://cotlet.dev/mcp/v1 with your other apps. You can keep Resy's own app in Claude or ChatGPT connected next to it; give the two different names so your agent knows which one to call.

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

Claude Code:
claude mcp add --transport http cotlet-resy \
  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-resy": {
      "url": "https://cotlet.dev/mcp/v1",
      "headers": { "Authorization": "Bearer ${env:COTLET_API_KEY}" }
    }
  }
}
Codex
# ~/.codex/config.toml
[mcp_servers.cotlet-resy]
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: resy_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: resy_write
Scripts and HTTP

How to use the Resy REST API

Create your Cotlet API key

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

Sign in to Resy in its Cotlet Cloud Browser and enable the app for agents. Use your Resy diner account; some restaurants require a card on file for reservations.

Make your first Resy API request

REST
curl https://cotlet.dev/api/v1/resy/reservations \
  -H "Authorization: Bearer $COTLET_API_KEY"

Read reservations and their policies

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": "resy",
  "tool": "list_reservations",
  "result": {
    "reservations": [
      {
        "reservation_id": "r_70412",
        "venue": "Trattoria Esempio",
        "date": "2026-11-14",
        "time": "19:00",
        "party_size": 4
      }
    ]
  }
}

Read result.reservations for your upcoming bookings, soonest first. Use the past status for previous reservations; this list has no cursor or limit input.

Use reservation IDs with get_reservation for cancellation deadlines, fees and currency. Tock bookings do not appear in this Resy list.

Availability reads reserve nothing and slots can disappear. The reporting workflows below do not book, cancel or change Notify requests.

Resy workflows for agents and automations

Resy workflows you configure
ToolConnect throughExample workflow
n8nHTTP RequestRead reservations and details into a personal dining calendar with cancellation deadlines and fees.
MakeHTTP > Make a requestCombine venue search, venue details and availability into a dated shortlist without reserving a table.
Python or Node.jsREST APIRead existing Notify requests into a review list without adding or changing alerts.

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

Cotlet reads Resy; 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.

6 read, 5 write

Resy API endpoints and MCP tools

Your reservations5

Booking, moving and cancelling reach the restaurant, so all three wait for your OK. The restaurant's cancellation policy applies as it does in the app.

  • list_reservations List your upcoming or past Resy reservations. read

    Returns the reservations from Reservations in your Resy profile, soonest first for upcoming ones, each with its reservation_id, restaurant, date, time and party size. Bookings made through Tock for a restaurant listed on Resy are not in your Resy account and do not show up.

    MCP callresy_read → list_reservations

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

    Parameters

    Parameters: list_reservations
    NameTypeDescription
    status string string upcoming or past. Defaults to upcoming.

    Example response

    {
      "reservations": [
        {
          "reservation_id": "r_70412",
          "venue": "Trattoria Esempio",
          "date": "2026-10-30",
          "time": "19:00",
          "party_size": 4
        },
        {
          "reservation_id": "r_70388",
          "venue": "Bistro Modello",
          "date": "2026-10-31",
          "time": "20:30",
          "party_size": 2
        },
        {
          "reservation_id": "r_70355",
          "venue": "Sushi Campione",
          "date": "2026-11-04",
          "time": "18:45",
          "party_size": 6
        }
      ]
    }
  • get_reservation Read one reservation with its address, table type, special request and cancellation policy. read

    Returns what Manage Reservation shows: restaurant, address and phone, date, time, party size, table type, your special request and the cancellation policy with its deadline and fee per guest. The restaurant sets the policy, and Resy points questions about fees to the restaurant.

    MCP callresy_read → get_reservation

    REST endpointGET https://cotlet.dev/api/v1/resy/reservations/{reservation_id}

    Parameters

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

    Example input

    {
      "reservation_id": "reservation_8c41d2"
    }

    Example response

    {
      "reservation_id": "r_70412",
      "venue": "Trattoria Esempio",
      "address": "12 Example Street, New York, NY",
      "date": "2026-10-30",
      "time": "19:00",
      "party_size": 4,
      "table_type": "Dining Room",
      "special_request": "Birthday dinner",
      "cancellation_policy": {
        "deadline": "2026-10-29T14:00:00-04:00",
        "fee_per_guest": 25,
        "currency": "USD"
      }
    }
  • book_reservation Book an open slot from get_availability for your Resy account. writeasks first

    Books the table under your name and returns the reservation_id; Resy then sends its usual confirmation email from noreply@resy.com. Restaurants with a cancellation fee need a card on file, and the slot's cancellation policy applies from the moment you book. A slot someone else took in the meantime fails the call without booking. By default you confirm each call; you can switch that off for this tool.

    MCP callresy_write → book_reservation

    REST endpointPOST https://cotlet.dev/api/v1/resy/slots/{slot_id}/reservations

    Parameters

    Parameters: book_reservation
    NameTypeDescription
    slot_id string required string A slot_id from get_availability.
    special_request string string A note for the restaurant, for example "Birthday dinner".

    Example input

    {
      "slot_id": "slot_8c41d2"
    }

    Example response

    {
      "reservation_id": "r_70412",
      "status": "confirmed",
      "venue": "Trattoria Esempio",
      "date": "2026-10-30",
      "time": "19:00",
      "party_size": 4
    }
  • change_reservation Move a reservation to another open slot at the same restaurant: date, time or party size. writeasks first

    Does what Change Reservation does in Resy and returns the reservation as it is after the change. The new slot's cancellation policy replaces the old one. If the new slot is gone, the call fails and the old reservation stays. By default you confirm each call; you can switch that off for this tool.

    MCP callresy_write → change_reservation

    REST endpointPATCH https://cotlet.dev/api/v1/resy/slots/{slot_id}/reservations/{reservation_id}

    Parameters

    Parameters: change_reservation
    NameTypeDescription
    reservation_id string required string A reservation_id from list_reservations.
    slot_id string required string The new slot_id from get_availability for the new date, time or party size.

    Example input

    {
      "reservation_id": "reservation_8c41d2",
      "slot_id": "slot_8c41d2"
    }

    Example response

    {
      "reservation_id": "r_70388",
      "status": "confirmed",
      "venue": "Bistro Modello",
      "date": "2026-10-31",
      "time": "21:30",
      "party_size": 2
    }
  • cancel_reservation Cancel one of your reservations, showing any cancellation fee first. writeasks first

    Cancels the booking the way Cancel does in Manage Reservation. When you cancel after the restaurant's deadline, its policy can charge a fee per guest, and the approval shows that fee before you confirm. A cancelled reservation cannot be restored; the table goes back to other diners. By default you confirm each call; you can switch that off for this tool.

    MCP callresy_write → cancel_reservation

    REST endpointPOST https://cotlet.dev/api/v1/resy/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": "r_70355",
      "status": "cancelled",
      "venue": "Sushi Campione",
      "fee_charged": false
    }

Notify alerts3

Resy itself watches for the opening and alerts you; the tools only set and remove your place on the list.

  • list_notify List your active Notify alerts: restaurant, date, time range and party size. read

    Returns the Notify requests Resy shows next to your reservations, each with its notify_id. A Notify alert is not a reservation: Resy sends a push or email when a matching table opens, and the table still has to be booked.

    MCP callresy_read → list_notify

    REST endpointGET https://cotlet.dev/api/v1/resy/notifies

    Parameters

    No parameters.

    Example response

    {
      "notify": [
        {
          "notify_id": "n_3301",
          "venue": "Torrisi",
          "date": "2026-10-30",
          "time_from": "19:00",
          "time_to": "21:00",
          "party_size": 2
        },
        {
          "notify_id": "n_3297",
          "venue": "Torrisi",
          "date": "2026-10-24",
          "time_from": "19:00",
          "time_to": "21:00",
          "party_size": 2
        }
      ]
    }
  • add_notify Join a restaurant's Notify list for a date, time range and party size. write

    Sets the same alert as the Notify button in Resy and returns its notify_id. Resy, not the agent, watches for an opening and alerts you by push or email; it books nothing. Eligible American Express Card Members with Global Dining Access get Priority Notify and are alerted first. The alert reaches no one and remove_notify undoes it, so it runs without asking you.

    MCP callresy_write → add_notify

    REST endpointPOST https://cotlet.dev/api/v1/resy/venues/{venue_id}/notifies

    Parameters

    Parameters: add_notify
    NameTypeDescription
    venue_id string required string A venue_id from search_venues.
    date string required string Date as YYYY-MM-DD.
    time_from string required string Start of the time range, HH:MM.
    time_to string required string End of the time range, HH:MM.
    party_size integer required integer Number of guests.

    Example input

    {
      "venue_id": "v_44102",
      "date": "2026-10-30",
      "time_from": "19:00",
      "time_to": "21:00",
      "party_size": 2
    }

    Example response

    {
      "notify_id": "n_3301",
      "venue": "Torrisi",
      "date": "2026-10-30",
      "time_from": "19:00",
      "time_to": "21:00",
      "party_size": 2
    }
  • remove_notify Take yourself off a restaurant's Notify list. write

    Removes one Notify request and returns it as removed. It touches only your own alert and add_notify sets it again, so it runs without asking you. Your reservations stay as they are.

    MCP callresy_write → remove_notify

    REST endpointDELETE https://cotlet.dev/api/v1/resy/notifies/{notify_id}

    Parameters

    Parameters: remove_notify
    NameTypeDescription
    notify_id string required string A notify_id from list_notify.

    Example input

    {
      "notify_id": "notify_8c41d2"
    }

    Example response

    {
      "notify_id": "n_3297",
      "status": "removed"
    }
Encrypted, revocable

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

  • What we store

    Your logged-in Resy profile, encrypted with AES-256-GCM, in Finland. Not the password.

  • What your agent gets

    The 11 Resy tools. Never the cookie or your card.

  • What the session sees

    Your reservations, Notify list, profile and the card Resy keeps on file.

  • What no tool touches

    Your card, name, phone, email, password and the account itself.

  • If Resy asks to verify

    A new login can ask for a one-time code. You type it in, we never do.

  • How to cut access

    Disable for agents, reset the browser, or log out of Resy everywhere.

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.

High account risk

Is it against Resy's terms? Account safety Resy does not allow unapproved agents, and it has closed accounts for it.

"When we identify behavior that violates the Resy Terms of Service, we disable user accounts and all associated reservations."
Resy Security Center

Resy's terms forbid using automated software to crawl its pages, and Resy told CNN on 23 Sep 2026 that it does not permit unapproved third-party bots or agents. That month it disabled at least two accounts whose AI agents scanned for open tables, one at about 200 requests an hour, and cancelled their upcoming reservations; both were restored later. Cotlet is not an agent Resy has approved. Using it is your decision, and the risk is to your Resy account.

How the tools stay close to a person

  • Your own Resy account, logged in by you
  • One read per call, no loop that polls for a table
  • Full restaurants go through Resy's own Notify list
  • Bookings, changes and cancellations wait for your OK
  • If Resy objects, we pause the Resy tools for everyone within 24 h

Never point it at a restaurant's release minute. Both closed accounts were caught racing for hard tables.

Tested every 12 h

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

between tests of the Resy search and reservation reads
12 h
for a call to a Resy tool paused for repair
$0

When Resy moves a button or renames a field, we fix it on our side and your prompts keep working. status.cotlet.dev watches the site, console and API every 3 minutes.

3 tools ask first

Approvals, undo and mistakes No table changes hands until you say so.

  1. 01 Reads the options Open slots, table type and each slot's cancellation policy.
  2. 02 Picks with you It shows the slots that match your time and party size.
  3. 03 Waits for your OK The booking, change or cancellation shows up in your Cotlet console first.
  4. 04 Reports back Restaurant, date, time, guests and the fee deadline.
Which Resy actions can be undone
ActionUndo
Set a Notify alertremove_notify, one call
Remove a Notify alertadd_notify sets it again
Book a tablecancel_reservation, free before the restaurant's deadline
Change a reservationChange it again if the old slot is still open
Cancel a reservationNone. The table goes back to other diners

3 of 11 tools ask first: book_reservation, change_reservation and cancel_reservation. Each reaches the restaurant, and a late cancellation can cost a fee per guest, which the approval shows. Notify alerts reach nobody, so they run at once. Switching the wait off is your choice, per tool.

A cancelled table cannot be taken back. Read the restaurant name in the approval, not after.

MCP call
{
  "name": "add_notify",
  "arguments": {
    "venue_id": "v_44102",
    "date": "2026-10-30",
    "time_from": "19:00",
    "time_to": "21:00",
    "party_size": 2
  }
}
REST
curl -X POST https://cotlet.dev/api/v1/resy/venues/v_44102/notifies \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"date":"2026-10-30","time_from":"19:00","time_to":"21:00","party_size":2}'
Tool output
{
  "notify_id": "n_3301",
  "venue": "Torrisi",
  "date": "2026-10-30",
  "time_from": "19:00",
  "time_to": "21:00",
  "party_size": 2
}

A cron job or script calls the same tools over REST at /api/v1/resy, with the same key and price, for example a morning check of cancellation deadlines. A failed call costs nothing. The tools table lists the REST path of each tool.

Pay per call

How much does the Resy MCP server cost?

About $17 a monthfor a diner who books about once a week, 2,870 credits. Resy itself is free for diners; restaurants' cancellation fees stay theirs.

A month of Resy jobs for one diner, in credits
JobCallsCredits
Find and book a table4 × 4160
Notify alerts for a full restaurant6 × 2120
Move a reservation3 × 130
Morning cancellation deadline check3 × 30900
Weekly Notify cleanup4 × 4160
Cloud Browser, 30 days1,500
Total2,870
  • Free 7-day trial, no card
  • 10 credits per successful call, MCP or REST
  • 50 credits a day for the Cloud Browser
  • No Amex card or Resy plan needed

The month is our example: 4 bookings, Notify alerts for 2 full restaurants, 1 change, a deadline check every morning and a weekly Notify cleanup. Resy publishes no bookings-per-diner figure, so the volume is our assumption. The daily check is most of the calls; run it weekly and the month costs less. 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

Resy MCP server on GitHub, Zapier or hosted: which to use Several on GitHub, all run on your computer.

Other Resy agent tools, checked 27 Oct 2026
OptionWhat it doesWhere it stops
chrischall/resy-mcpSearch, book, list and cancel reservations, favorites and Priority Notify through Resy's private web endpoints. In the MCP Registry. MIT, 2 stars, last push 25 Oct 2026.Runs on your computer with a Resy token, your password or a browser extension. Its own README warns that Resy can ban accounts.
Kirch2/coversTypeScript CLI and MCP server: search, book, cancel and watch for openings. MIT, 6 stars, last push 16 Jul 2026.Local only. Watching for openings by polling is what got accounts closed.
jrklein343-svg/restaurant-mcpOne MCP server for Resy and OpenTable reservations. 4 stars.No license, last push 9 Feb 2026.
Hosted scraper marketplacesPaid Resy endpoints for search and availability.Not your account: they do not see or manage your reservations.
Resy in Claude and ChatGPTResy's own apps: search and availability, booking in ChatGPT.Only in those two apps, and nothing after the booking.

To find a table inside Claude or ChatGPT, Resy's own app is the safe choice, and it is free. Cotlet is for the jobs after the booking, and for agents, n8n and scripts outside those two apps. A GitHub server does the same for free if you keep it running and accept the same account risk.

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. Its founders are Bart Krawczyk (Co-founder, CTO) and Jake Slugocki (Co-founder, SEO, sales and marketing). Questions about the Resy tools go to contact@cotlet.dev.

Resy API and MCP: questions

Can I use the Resy 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?

Make a free account at https://cotlet.dev, open Resy under Integrations in the console and log in to Resy in its Cloud Browser. The trial starts right away, with no card.

Can Resy close my account for using an agent?

Resy says it disables accounts and their reservations when it sees behavior that breaks its Terms of Service, and that automated activity must not put excessive demand on its systems or stop other diners from booking (Resy Security Center). In September 2026 Resy told CNN it does not permit unapproved third-party agents, after it disabled an account whose agent checked one restaurant about 200 times an hour. Cotlet's tools read Resy once per call and use Resy's own Notify list for full restaurants instead of checking again and again. Read Resy's terms before you connect your account.

Is Resy's own app in Claude or ChatGPT enough?

For finding a table, often yes. The Resy app in Claude shows live availability and sends you to Resy to book (American Express guide, April 2026), and the Resy app in ChatGPT can book in the chat (Resy newsroom, August 2026). Neither lists, changes or cancels your reservations or sets Notify alerts, and neither works in other agents, n8n or scripts.

Who charges a cancellation fee?

The restaurant sets its own deadline and fee per guest, and the policy is in your confirmation email. Restaurants charge the fee themselves in Resy OS; for Global Dining Access bookings Resy charges eligible fees weekly (Resy Help: Cancellation fee charges; Global Dining Access cancellation policy FAQ). cancel_reservation shows the fee before you approve.

Can it get me Priority Notify?

Only if your account already has it. Resy gives Priority Notify to eligible American Express Card Members with Global Dining Access (Resy Help: Notify). add_notify sets the same alert you would set in the app, so a card member's alert keeps its priority.

Does it work outside the US?

It works with your own Resy account wherever Resy lists restaurants. Resy's official apps in Claude and ChatGPT cover US restaurants only (Resy newsroom, 2026).

Does it see bookings I made on Tock?

No. Resy says reservations at restaurants that book through Tock are not in your Resy account, so list_reservations does not show them.

Is the MCP server different from the REST API?

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

Is Cotlet affiliated with Resy?

No. Cotlet is independent and not affiliated with Resy or American Express.

Give your agent access to Resy.

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