# Resy Booker - MCP Server for AI Restaurant Reservations (`clearpath/resy-booker`) Actor

MCP server for AI assistants to search, book, and manage Resy restaurant reservations. 6 tools: search restaurants, check availability, book slots, view and cancel reservations. Stateful auth, pay-per-action billing, Standby mode.

- **URL**: https://apify.com/clearpath/resy-booker.md
- **Developed by:** [ClearPath](https://apify.com/clearpath) (community)
- **Categories:** Automation, Agents, MCP servers
- **Features:** Limited permissions, Single-tenant, Server interface
- **Stats:** 63 total users, 11 monthly users, 99.9% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.99 / reservation booking

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

[![Let your AI assistant book the table. Find restaurants. Check availability. Reserve on Resy.](https://api.apify.com/v2/key-value-stores/pJ7iaZsTFhR3k9tjV/records/resy-booker-readme-hero-v1.png)](https://console.apify.com/actors/BAhrLmbO6bIpWbLnu/input)

From <strong>Clearpath</strong>, creators of <a href="https://apify.com/clearpath/opentable-booker">OpenTable Booker</a>, <a href="https://apify.com/clearpath/resy-api">Resy Restaurant Scraper</a> and <a href="https://apify.com/clearpath/resy-availability-api">Resy Availability Checker</a>. Restaurant discovery, availability and booking from the same team.

### Why choose this actor?

<strong>Go from a dinner request to a reservation.</strong> Let your connected AI assistant find restaurants, check available times and book your chosen slot on your Resy account.

<strong>Find a table that fits your plans.</strong> Search by city, cuisine or restaurant name, then choose the date and party size. Compare returned times and seating types before booking.

<strong>Manage the booking in the same conversation.</strong> View your current reservations or cancel an existing booking through the assistant. Search, availability and booking are charged separately; see Pricing below.

<a href="https://console.apify.com/actors/BAhrLmbO6bIpWbLnu/input"><img src="https://api.apify.com/v2/key-value-stores/pJ7iaZsTFhR3k9tjV/records/resy-booker-readme-cta-v1.svg" width="258" height="48" alt="Set up Resy Booker"/></a>

### Connect your AI assistant

<a href="https://console.apify.com/actors/BAhrLmbO6bIpWbLnu/input">Open actor input</a> and configure your Resy email and password. Connect an MCP-compatible AI assistant to this endpoint, using your Apify token in the <code>Authorization: Bearer YOUR_APIFY_TOKEN</code> header:

```text
https://clearpath--resy-booker.apify.actor/mcp
```

Then ask:

> Find Italian restaurants in New York for two tonight. Show me the available times, then let me choose a table to book.

A Resy account is required. Booking creates a real reservation on that account. The connection examples below cover supported clients; the first request can be a restaurant search before you choose to book.

<table><tr><td colspan="5" style="background:#FF462D;color:#17100E;padding:10px 14px;font-size:13px;font-weight:700">Clearpath · Restaurant & Reservation Tools</td></tr><tr><td style="background:#FFDED8;padding:8px 10px;border:1px solid #EDCBC5;vertical-align:top"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/DSvMCAwsufMyZeLyt-actor-BAhrLmbO6bIpWbLnu-9aIFloy6go-resy-restaurant-scraper-logo.png" width="20" height="20" alt="" style="display:inline-block;vertical-align:middle;margin:0"/>&nbsp;<a href="https://console.apify.com/actors/BAhrLmbO6bIpWbLnu/input" style="color:#241613;text-decoration:none;font-weight:700;font-size:13px">Resy Booker</a></span><br><span style="color:#66433B;font-size:12px;white-space:nowrap">You are here</span></td><td style="background:#FFF0EE;padding:8px 10px;border:1px solid #EDCBC5;vertical-align:top"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/DSvMCAwsufMyZeLyt-actor-gGWfIJqbEiBKDgTAe-BtlunR0UXD-opentable-mcp-server-logo.png" width="20" height="20" alt="" style="display:inline-block;vertical-align:middle;margin:0"/>&nbsp;<a href="https://apify.com/clearpath/opentable-booker" style="color:#241613;text-decoration:none;font-weight:700;font-size:13px">OpenTable Booker</a></span><br><span style="color:#66433B;font-size:12px;white-space:nowrap">AI reservations</span></td><td style="background:#FFF0EE;padding:8px 10px;border:1px solid #EDCBC5;vertical-align:top"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/DSvMCAwsufMyZeLyt-actor-CVwATRirwWw9odbrp-PfBOKVcVoA-resy-restaurant-scraper-logo.png" width="20" height="20" alt="" style="display:inline-block;vertical-align:middle;margin:0"/>&nbsp;<a href="https://apify.com/clearpath/resy-availability-api" style="color:#241613;text-decoration:none;font-weight:700;font-size:13px">Resy Slots</a></span><br><span style="color:#66433B;font-size:12px;white-space:nowrap">Available tables</span></td><td style="background:#FFF0EE;padding:8px 10px;border:1px solid #EDCBC5;vertical-align:top"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/DSvMCAwsufMyZeLyt-actor-seL7kyUfmf6qnj5ZO-7Tc46618O2-opentable-mcp-server-logo.png" width="20" height="20" alt="" style="display:inline-block;vertical-align:middle;margin:0"/>&nbsp;<a href="https://apify.com/clearpath/opentable-availability-api" style="color:#241613;text-decoration:none;font-weight:700;font-size:13px">OpenTable Slots</a></span><br><span style="color:#66433B;font-size:12px;white-space:nowrap">Reservation times</span></td><td style="background:#FFF0EE;padding:8px 10px;border:1px solid #EDCBC5;vertical-align:top"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/DSvMCAwsufMyZeLyt-actor-y0MtoPJsc8Ye7Xynn-fdn7CGp8ji-resy-restaurant-scraper-logo.png" width="20" height="20" alt="" style="display:inline-block;vertical-align:middle;margin:0"/>&nbsp;<a href="https://apify.com/clearpath/resy-api" style="color:#241613;text-decoration:none;font-weight:700;font-size:13px">Resy Places</a></span><br><span style="color:#66433B;font-size:12px;white-space:nowrap">Restaurant leads</span></td></tr></table>

#### Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

```
clearpath/resy-booker on Apify (Standby actor). Base URL: https://clearpath--resy-booker.apify.actor. Auth: Authorization: Bearer TOKEN. Endpoints: /mcp (MCP server with 6 tools: search_restaurants, check_availability, book_reservation, my_reservations, cancel_reservation, login). Full API spec: GET https://api.apify.com/v2/acts/clearpath~resy-booker/builds/default (Bearer TOKEN) → readme, actorDefinition. Pricing: pay-per-event, search $0.03/call, check availability $0.05/call, book $3.99/booking, login/view/cancel free. Get token: https://console.apify.com/account/integrations
```

### Tools

6 tools available to connected AI agents:

- `search_restaurants`
  - Find restaurants with available time slots in any city
  - Inputs:
    - `city` (string): City name (e.g. "New York", "London", "Athens")
    - `cuisine` (string, optional): Filter by cuisine type
    - `query` (string, optional): Restaurant name or keyword
    - `date` (string, optional): YYYY-MM-DD format (defaults to today)
    - `party_size` (number, optional): Number of guests (default 2)
    - `limit` (number, optional): Max restaurants (default 10, max 25)
    - `sort` (string, optional): "relevance", "rating", "slots", or "name"
  - Returns restaurants with slots. Each slot includes a `config_token` for booking.
  - **~$0.03 per call**

- `check_availability`
  - Check available time slots for a specific restaurant
  - Inputs:
    - `restaurant_url` (string): Full Resy URL (e.g. https://resy.com/cities/new-york-ny/carbone)
    - `date` (string, optional): YYYY-MM-DD format (defaults to today)
    - `party_size` (number, optional): Number of guests (default 2)
  - **~$0.05 per call**

- `book_reservation`
  - Book a time slot using a `config_token` from search or availability results
  - Creates a real reservation on your Resy account
  - Inputs:
    - `config_token` (string): Token from a slot in search/availability results
  - **$3.99 per booking**

- `my_reservations`
  - List your current Resy reservations
  - No inputs required
  - **Free**

- `cancel_reservation`
  - Cancel a reservation by its `resy_token`
  - Inputs:
    - `resy_token` (string): Token from `my_reservations` or `book_reservation` results
  - **Free**

- `login`
  - Authenticate with Resy credentials (auto-called with pre-configured credentials)
  - Inputs:
    - `email` (string): Resy account email
    - `password` (string): Resy account password
  - **Free**

### Quick Start

#### Search for restaurants

```json
{
    "city": "New York",
    "cuisine": "Italian",
    "date": "2026-03-15",
    "party_size": 4
}
```

#### Check a specific restaurant

```json
{
    "restaurant_url": "https://resy.com/cities/new-york-ny/carbone",
    "date": "2026-03-15",
    "party_size": 2
}
```

#### Book a slot

```json
{
    "config_token": "rgs://resy/12345/67890/1/2026-03-15/2026-03-15/19:30/2/Dining+Room"
}
```

### How It Works

1. **Agent connects** to the MCP server endpoint
2. **Auto-login** with pre-configured Resy credentials (or call `login` manually)
3. **Search** for restaurants: `search_restaurants(city="New York", cuisine="Italian")`
4. **Pick a slot** from the results (each slot includes a `config_token`)
5. **Book** with `book_reservation(config_token="rgs://resy/...")`
6. **Verify** with `my_reservations()`

The agent handles the entire flow conversationally. Ask it "find me an Italian restaurant in NYC for 4 people next Friday" and it chains the right tool calls.

***

### Pricing — Pay Per Event (PPE)

You only pay for searches and bookings. Login, viewing, and cancelling are free.

| Action | Cost |
|--------|------|
| Search restaurants | $0.03 |
| Check availability | $0.05 |
| Book a reservation | $3.99 |
| Login, view, cancel | Free |

***

### Configuration

#### Input Parameters

Credentials are configured in the Apify actor input. Your password is stored encrypted using Apify's secret input handling and never logged or exposed in run output. The server auto-logs in on the first tool call.

| Parameter | Type | Description |
|-----------|------|-------------|
| `email` | string | Your Resy account email |
| `password` | string (secret) | Your Resy account password |

The `login` tool is also available for switching accounts or re-authenticating mid-session.

Replace `YOUR_APIFY_TOKEN` in all examples below with your [Apify API token](https://console.apify.com/account/integrations).

#### Usage with ChatGPT

ChatGPT supports MCP servers natively (Plus, Pro, Team, Enterprise plans).

1. Open **Settings > Connectors > Add connector**
2. Set **Name** to `Reddit`
3. Set **MCP Server URL** to:

```
   https://clearpath--resy-booker.apify.actor/mcp
```

4. Set **Authentication** to **API Key** and set the header:
   - Header name: `Authorization`
   - Value: `Bearer YOUR_APIFY_TOKEN`
5. Click **Save**
6. Start a new chat, click **+** near the composer, select **More**, choose **Reddit**

#### Usage with Claude Desktop

Add to your `claude_desktop_config.json`:

- **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
- **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`

```json
{
    "mcpServers": {
        "resy-booker": {
            "type": "http",
            "url": "https://clearpath--resy-booker.apify.actor/mcp",
            "headers": {
                "Authorization": "Bearer YOUR_APIFY_TOKEN"
            }
        }
    }
}
```

Restart Claude Desktop after saving.

#### Usage with Claude Code

```bash
claude mcp add --transport http --scope user resy-booker \
  --header "Authorization: Bearer YOUR_APIFY_TOKEN" \
  https://clearpath--resy-booker.apify.actor/mcp
```

Or add to your project's `.mcp.json`:

```json
{
    "mcpServers": {
        "resy-booker": {
            "type": "http",
            "url": "https://clearpath--resy-booker.apify.actor/mcp",
            "headers": {
                "Authorization": "Bearer ${APIFY_TOKEN}"
            }
        }
    }
}
```

#### Usage with OpenClaw

Add to `~/.openclaw/openclaw.json`:

```json5
{
  "provider": {
    "mcpServers": {
      "resy-booker": {
        "url": "https://clearpath--resy-booker.apify.actor/mcp",
        "headers": {
          "Authorization": "Bearer YOUR_APIFY_TOKEN"
        }
      }
    }
  }
}
```

Then message your OpenClaw bot on Telegram, WhatsApp, or Discord:

> "Find me a table for 2 in Athens this Saturday"

> "What's available at Carbone in New York next Friday?"

> "Book the 7:30 PM slot at that restaurant"

The assistant calls the Resy Booker, searches availability, and books the reservation for you.

#### Other MCP Clients

Any client supporting the Streamable HTTP transport works. Use the MCP endpoint URL with your Apify API token as a Bearer auth header.

***

### Try It Out

Once connected, ask your AI assistant:

> "Find me a table for 2 in Athens this Saturday"

> "What's available at Carbone in New York next Friday?"

> "Book the 7:30 PM slot at that restaurant"

***

### FAQ

**Do I need a Resy account?**
Yes. You need valid Resy credentials (email + password) configured in the actor input.

**Can I use this without an AI assistant?**
Yes. Any MCP client works. You can also call tools programmatically via any MCP SDK.

**What cities are supported?**
All 1,900+ cities on Resy, including New York, Los Angeles, London, Paris, Athens, Tokyo, and more.

**Will it actually book a real reservation?**
Yes. `book_reservation` creates a real reservation on your Resy account. Cancel with `cancel_reservation`.

**What happens if a slot is no longer available?**
The tool returns an error. Search again or try a different time.

**How is this different from the Resy Scraper?**
The scraper extracts restaurant data in bulk. This MCP server is for interactive booking through an AI agent.

***

### Support

- **Email**: max@mapa.slmail.me
- **Bugs**: Issues tab

### Legal

This actor interacts with Resy on behalf of authenticated users. It performs the same actions a user would in the Resy app or website. Users are responsible for complying with Resy's terms of service.

***

*Search, book, and manage Resy reservations through AI agents.*

# Actor input Schema

## `email` (type: `string`):

Your Resy account email for automatic login.

## `password` (type: `string`):

Your Resy account password.

## Actor input object example

```json
{}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("clearpath/resy-booker").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("clearpath/resy-booker").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call clearpath/resy-booker --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,clearpath/resy-booker"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/BAhrLmbO6bIpWbLnu/builds/qyGLOPIkPbUrQt9jd/openapi.json
