ResDiary API and MCP server Let your AI agent run the diary with you.

Bookings, open times, guest profiles and the W8LIST of your ResDiary venue. Use it in ChatGPT, Claude or any AI agent over MCP, or in n8n, Make and scripts over REST.

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

12 tools Read and write

Venue managers

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

  • Brief the floor on tonight's bookings

  • Keep allergies on guest profiles

  • Find open times for a party

  • Move a booking when the party changes

  • Chase unconfirmed bookings

  • Tag regulars with a customer type

By application

Does ResDiary have an MCP server or an API? An API for approved integrations, no MCP server.

ResDiary has no MCP server, and its APIs are for approved integrations (checked 31 Oct 2026). A venue or developer applies, states a purpose and passes certification, and the API licence then covers that purpose only. Cotlet runs 12 ResDiary tools hosted, in your own venue login, over MCP for agents and REST for scripts.

  • ResDiary lists a Consumer API, a Data Extract API and an EPOS API, with webhooks for API accounts. Access is on "bespoke commercial terms" and starts at the help center page "Explore and request your ResDiary API".
  • The API licence allows one agreed purpose and bans "distribute, publish, or allow access or linking to the APIs". A tool that hands API access to others does not fit it, which is why Cotlet works in your own login instead.
  • We found no ResDiary app on Zapier, Make or n8n. A community MCP server on GitHub uses the public booking widget and cannot read your diary.
ResDiary's approved APIs, the GitHub server and Cotlet compared
What you need Approved APIGitHub serverCotlet
Read the bookings of a date After approval No Yes
Find open times and book After approval As a guest Yes, after your OK
Move or cancel a booking After approval Cancel as a guest Yes, after your OK
Read guest profiles and notes After approval No Yes
Add guest notes and customer types Not in the docs No Yes
Allowed by ResDiary's terms Yes, official Public widget Second login

Checked 31 Oct 2026. Sources: Access ResDiary API documentation · Explore and request your ResDiary API · ResDiary API License Terms · ResDiary Terms of Service

Set up once

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

  1. 1Sign in to ResDiary

    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 ResDiary password, and no booking change reaches a guest until you approve it. Who can see your session

Any MCP client

Connect ResDiary 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 ResDiary for agents. Create a Cotlet account, sign in to ResDiary in its Cloud Browser with your venue login, then press Enable for agents.

  2. 2

    Add the Cotlet 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 ResDiary next to the other apps you enable. Turned ResDiary 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-resdiary \
  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-resdiary": {
      "url": "https://cotlet.dev/mcp/v1",
      "headers": { "Authorization": "Bearer ${env:COTLET_API_KEY}" }
    }
  }
}
Codex
# ~/.codex/config.toml
[mcp_servers.cotlet-resdiary]
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: resdiary_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: resdiary_write
Scripts and HTTP

How to use the ResDiary REST API

Create your Cotlet API key

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

Connect ResDiary in Cotlet and enable it for agents. Account access: your own ResDiary venue login with access to the diary and the customer database. No ResDiary API key is needed, and Cotlet never reads guest contact details.

Make your first ResDiary API request

REST
curl "https://cotlet.dev/api/v1/resdiary/bookings?date=2026-10-31&status=Unconfirmed" \
  -H "Authorization: Bearer $COTLET_API_KEY"

Read the diary and apply the operation limits

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": "resdiary",
  "tool": "list_bookings",
  "result": {
    "date": "2026-10-31",
    "bookings": [
      {
        "booking_id": "bk_21047",
        "reference": "BHCQ70M",
        "time": "19:15",
        "party_size": 4,
        "status": "Unconfirmed",
        "guest": "Sam Lee",
        "customer_id": "cu_9120",
        "booking_note": "Deposit due"
      }
    ]
  }
}

Returns the bookings your diary shows for that date in time order, with party size, status, guest and the booking note. Walk-ins have no customer_id.

status is optional. Leave it out to read every booking of the date, including cancelled ones.

The call has a limit input and no cursor. Read one date at a time and compare changed statuses and notes as well as booking IDs when you refresh.

Replace the date with the day you need. A Bumped booking is one staff still have to put back on a table.

ResDiary workflows for agents and automations

ResDiary workflows you configure
ToolConnect throughExample workflow
n8nHTTP RequestEach morning, read the guest profile of every booking with get_customer and post the allergy notes to your team channel.
MakeHTTP > Make a requestRead the open times for a party of 4 with list_available_times and add the earliest to a shortlist your manager approves.
Python or Node.jsREST APIRead tomorrow's unconfirmed bookings with list_bookings and print a deposit chase list.

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

Cotlet reads ResDiary; 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, 6 write

ResDiary API endpoints and MCP tools

Diary and open times4

Reads of your diary and the times your venue would offer. Nothing is held until a booking is created.

  • list_bookings Read the bookings in your diary for one date, with party size, status and notes. read

    Returns the bookings the diary shows for that date in time order, each with booking_id, reference, visit time, party size, status, guest name, customer_id and the booking note. Walk-ins appear without a customer_id. A Bumped booking is one a staff member still has to put back on a table. It changes nothing.

    MCP callresdiary_read → list_bookings

    REST endpointGET https://cotlet.dev/api/v1/resdiary/bookings

    Parameters

    Parameters: list_bookings
    NameTypeDescription
    date string required string Visit date in YYYY-MM-DD.
    status string string Booking status to keep, for example Booked, Confirmed, Unconfirmed, Cancelled or Bumped. Defaults to all.
    limit integer integer How many bookings to return.

    Example input

    {
      "date": "date"
    }

    Example response

    {
      "date": "2026-10-31",
      "bookings": [
        {
          "booking_id": "bk_21041",
          "reference": "BHCQ66D",
          "time": "18:30",
          "party_size": 2,
          "status": "Confirmed",
          "guest": "Alex Rivera",
          "customer_id": "cu_8812",
          "booking_note": "Anniversary"
        },
        {
          "booking_id": "bk_21047",
          "reference": "BHCQ70M",
          "time": "19:15",
          "party_size": 4,
          "status": "Unconfirmed",
          "guest": "Sam Lee",
          "customer_id": "cu_9120",
          "booking_note": "Deposit due"
        },
        {
          "booking_id": "bk_21052",
          "reference": "BHCQ74T",
          "time": "20:00",
          "party_size": 6,
          "status": "Confirmed",
          "guest": "Harper Lane",
          "customer_id": "cu_7304",
          "booking_note": ""
        }
      ]
    }
  • get_booking Read one booking with its guest, notes and reminders. read

    Returns the booking as the diary shows it: visit date and time, party size, status, booking note, internal reminders with their due dates, and the guest with customer_id. Contact details are left out of the response. It changes nothing.

    MCP callresdiary_read → get_booking

    REST endpointGET https://cotlet.dev/api/v1/resdiary/bookings/{booking_id}

    Parameters

    Parameters: get_booking
    NameTypeDescription
    booking_id string required string A booking_id from list_bookings.

    Example input

    {
      "booking_id": "booking_8c41d2"
    }

    Example response

    {
      "booking_id": "bk_21047",
      "reference": "BHCQ70M",
      "date": "2026-10-31",
      "time": "19:15",
      "party_size": 4,
      "status": "Unconfirmed",
      "booking_note": "Deposit due",
      "reminders": [
        {
          "text": "Collect deposit",
          "due": "2026-10-30"
        }
      ],
      "guest": {
        "customer_id": "cu_9120",
        "name": "Sam Lee"
      }
    }
  • list_available_times List the open times in your diary for a date and party size. read

    Returns the times your venue would offer for that party size on that date, as its online booking shows them, with the service name where there is one. It holds no table: a time can be gone by the time you book. Your own limits, such as maximum online covers, still apply.

    MCP callresdiary_read → list_available_times

    REST endpointGET https://cotlet.dev/api/v1/resdiary/available-times

    Parameters

    Parameters: list_available_times
    NameTypeDescription
    date string required string Visit date in YYYY-MM-DD.
    party_size integer required integer Number of guests.
    time string string Time in HH:MM to search around. Defaults to 19:00.

    Example input

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

    Example response

    {
      "date": "2026-11-07",
      "party_size": 4,
      "times": [
        {
          "time": "19:30",
          "service": "Dinner"
        },
        {
          "time": "20:00",
          "service": "Dinner"
        },
        {
          "time": "20:15",
          "service": "Dinner"
        }
      ]
    }
  • list_waitlist Read the parties on your W8LIST for a date. read

    Returns each waiting party with its booking_id, guest name, party size, the time it asked for and its W8LIST status, in the order your diary shows them. It reads the queue only: it does not text anyone. It changes nothing.

    MCP callresdiary_read → list_waitlist

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

    Parameters

    Parameters: list_waitlist
    NameTypeDescription
    date string required string Date in YYYY-MM-DD.

    Example input

    {
      "date": "date"
    }

    Example response

    {
      "date": "2026-10-31",
      "waitlist": [
        {
          "booking_id": "bk_21090",
          "guest": "Jordan Park",
          "party_size": 2,
          "requested_time": "19:00",
          "status": "Queued"
        },
        {
          "booking_id": "bk_21093",
          "guest": "Taylor Green",
          "party_size": 5,
          "requested_time": "19:30",
          "status": "Queued"
        }
      ]
    }

Change bookings3

Creating, moving and cancelling reach the guest, so each waits for your OK. A booking that needs a deposit stays Unconfirmed until the guest completes it.

  • create_booking Add a booking to your diary for a guest. writeasks first

    Adds the booking to the diary the way the Book button does, so the call waits for your approval. ResDiary sends the guest a confirmation email, and a booking that needs a deposit or a stored card stays Unconfirmed until the guest completes it. Returns the booking_id and the reference. By default you confirm each call; you can switch that off for this tool.

    MCP callresdiary_write → create_booking

    REST endpointPOST https://cotlet.dev/api/v1/resdiary/bookings

    Parameters

    Parameters: create_booking
    NameTypeDescription
    date string required string Visit date in YYYY-MM-DD.
    time string required string A time from list_available_times, HH:MM.
    party_size integer required integer Number of guests.
    customer_id string string An existing profile from search_customers. Leave out for a new guest.
    first_name string string Guest first name, for a new guest.
    last_name string string Guest last name, for a new guest.
    mobile string string Guest mobile number, for a new guest.
    booking_note string string A note on the booking, for example "high chair" or "birthday".

    Example input

    {
      "date": "2026-11-07",
      "time": "20:00",
      "party_size": 4,
      "first_name": "Chidi",
      "last_name": "Okafor",
      "mobile": "+447700900123",
      "booking_note": "Birthday dinner"
    }

    Example response

    {
      "booking_id": "bk_21107",
      "reference": "BHCQ81K",
      "date": "2026-11-07",
      "time": "20:00",
      "party_size": 4,
      "status": "Confirmed",
      "guest": "Chidi Okafor"
    }
  • update_booking Change the time, party size or booking note of a booking. writeasks first

    Edits the booking in the diary and the guest sees the change, so the call waits for your approval. A new time must come from list_available_times for the new party size. When the change does not fit, the booking stays as it was and the call returns why. By default you confirm each call; you can switch that off for this tool.

    MCP callresdiary_write → update_booking

    REST endpointPATCH https://cotlet.dev/api/v1/resdiary/bookings/{booking_id}

    Parameters

    Parameters: update_booking
    NameTypeDescription
    booking_id string required string A booking_id from list_bookings.
    time string string A new time from list_available_times, HH:MM. Leave out to keep the time.
    party_size integer integer New number of guests.
    booking_note string string New booking note.

    Example input

    {
      "booking_id": "booking_8c41d2"
    }

    Example response

    {
      "booking_id": "bk_21052",
      "reference": "BHCQ74T",
      "date": "2026-10-31",
      "time": "19:45",
      "party_size": 6,
      "status": "Confirmed"
    }
  • cancel_booking Cancel a booking in your diary. writeasks first

    Sets the booking to Cancelled and frees the table, so the call waits for your approval. A cancelled booking cannot be restored by a tool; create a new booking instead. A deposit already paid is handled in ResDiary, not by this call. By default you confirm each call; you can switch that off for this tool.

    MCP callresdiary_write → cancel_booking

    REST endpointPOST https://cotlet.dev/api/v1/resdiary/bookings/{booking_id}/cancel

    Parameters

    Parameters: cancel_booking
    NameTypeDescription
    booking_id string required string A booking_id from list_bookings.

    Example input

    {
      "booking_id": "booking_8c41d2"
    }

    Example response

    {
      "booking_id": "bk_21047",
      "reference": "BHCQ70M",
      "status": "Cancelled"
    }

Guests and reminders5

Profiles, customer notes, customer types and internal reminders. Only your staff see the notes, types and reminders.

  • search_customers Find guest profiles in your customer database by name, email or mobile number. read

    Returns matching profiles with customer_id, name, customer type and the date of the last visit, best match first. Email and mobile number are left out of the response; you search by them but do not read them back. It changes nothing.

    MCP callresdiary_read → search_customers

    REST endpointGET https://cotlet.dev/api/v1/resdiary/customers/search

    Parameters

    Parameters: search_customers
    NameTypeDescription
    query string required string Part of a name, an email address or a mobile number.
    limit integer integer How many profiles to return.

    Example input

    {
      "query": "query"
    }

    Example response

    {
      "customers": [
        {
          "customer_id": "cu_7304",
          "name": "Harper Lane",
          "customer_type": "Regular",
          "last_visit": "2026-10-17"
        },
        {
          "customer_id": "cu_7311",
          "name": "Harper Lowe",
          "customer_type": "",
          "last_visit": "2026-06-02"
        }
      ]
    }
  • get_customer Read one guest profile: customer type, customer notes and booking history. read

    Returns the guest's name, customer type, customer notes (the ones that show every time this guest books), the number of past visits and the last visits with date, party size and status. A profile has one customer type. Contact details are left out of the response.

    MCP callresdiary_read → get_customer

    REST endpointGET https://cotlet.dev/api/v1/resdiary/customers/{customer_id}

    Parameters

    Parameters: get_customer
    NameTypeDescription
    customer_id string required string A customer_id from list_bookings or search_customers.

    Example input

    {
      "customer_id": "customer_8c41d2"
    }

    Example response

    {
      "customer_id": "cu_7304",
      "name": "Harper Lane",
      "customer_type": "Regular",
      "notes": [
        "Prefers the window table"
      ],
      "visits": 11,
      "last_visits": [
        {
          "date": "2026-10-17",
          "party_size": 4,
          "status": "Closed"
        },
        {
          "date": "2026-09-05",
          "party_size": 2,
          "status": "Closed"
        }
      ]
    }
  • add_customer_note Add a customer note to a guest profile. write

    Adds a customer note, the kind that shows every time this guest books. Notes are for your staff, the guest is not told, and you remove the note on the profile in one step, so it runs without asking you. Returns the profile's notes after the change.

    MCP callresdiary_write → add_customer_note

    REST endpointPOST https://cotlet.dev/api/v1/resdiary/customers/{customer_id}/note

    Parameters

    Parameters: add_customer_note
    NameTypeDescription
    customer_id string required string A customer_id from list_bookings or search_customers.
    note string required string Note text, for example "Shellfish allergy" or "Prefers a quiet table".

    Example input

    {
      "customer_id": "customer_8c41d2",
      "note": "note"
    }

    Example response

    {
      "customer_id": "cu_9120",
      "name": "Sam Lee",
      "notes": [
        "Shellfish allergy"
      ]
    }
  • set_customer_type Set the customer type of a guest profile. write

    Sets the profile's customer type, the tag your team sees every time that profile books and that you can segment marketing by. A profile has one customer type, so this replaces the old one; set the old name back to undo it. It only uses types that exist in your venue's list, and nobody outside your team sees it, so it runs without asking you.

    MCP callresdiary_write → set_customer_type

    REST endpointPUT https://cotlet.dev/api/v1/resdiary/customers/{customer_id}/type

    Parameters

    Parameters: set_customer_type
    NameTypeDescription
    customer_id string required string A customer_id from search_customers.
    customer_type string required string A customer type your venue already has under Settings > Customer Types, for example "Regular".

    Example input

    {
      "customer_id": "customer_8c41d2",
      "customer_type": "customer type"
    }

    Example response

    {
      "customer_id": "cu_7311",
      "name": "Harper Lowe",
      "customer_type": "Regular",
      "previous": ""
    }
  • add_booking_reminder Add an internal reminder to a booking. write

    Adds a reminder that only your staff see; it appears in the diary on the due date. The guest is not told, and you delete the reminder on the booking in one step, so it runs without asking you. Returns the reminders on the booking after the change.

    MCP callresdiary_write → add_booking_reminder

    REST endpointPOST https://cotlet.dev/api/v1/resdiary/bookings/{booking_id}/reminder

    Parameters

    Parameters: add_booking_reminder
    NameTypeDescription
    booking_id string required string A booking_id from list_bookings.
    text string required string What staff should do, for example "Collect deposit".
    due_date string required string Due date in YYYY-MM-DD.

    Example input

    {
      "booking_id": "booking_8c41d2",
      "text": "text",
      "due_date": "due date"
    }

    Example response

    {
      "booking_id": "bk_21047",
      "reminders": [
        {
          "text": "Collect deposit",
          "due": "2026-10-30"
        }
      ]
    }
Encrypted, revocable

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

  • What we store

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

  • What your agent gets

    The 12 ResDiary tools. Never the cookie itself.

  • What the session sees

    The diary, customer database and W8LIST your venue login can open.

  • What no tool touches

    Card details, deposits and refunds, billing, user management and your password.

  • If ResDiary asks for more

    A code or a security question is typed by you. We never do.

  • How to cut access

    Disable for agents, reset the browser, or change the password in ResDiary.

Make a ResDiary login for the agent if your venue allows more than one, and give it only the diary and customers. 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.

Read the clause

Is it against ResDiary's terms? Account safety The terms limit logins from other devices and IP addresses.

"Multiple logins from different devices or IP addresses with the same username and password are not permitted."
ResDiary Terms of Service, about the Services

Cotlet signs in from its own Cloud Browser, a different IP address than your venue's. That fits the clause badly, so the risk is yours. The terms do not name bots, scripts or AI agents for the venue login; the only bot clause is "Accounts registered by 'bots' or other automated methods are not permitted", and Cotlet registers no ResDiary account. The terms also say you answer for all use of your login by third parties you authorise, and that ResDiary may alter, suspend or terminate an account for a breach. We found no public case of a venue cut off for automation (checked 31 Oct 2026).

How we keep your account looking like you

  • Your own ResDiary login, signed in by you
  • One Cloud Browser with its own IP and cookies, not a new device on every call
  • Booking changes wait for your OK
  • Reads once a day or on request, not a loop every minute
  • If ResDiary objects, we pause the ResDiary tools for everyone within 24 h

Ask your ResDiary contact whether a second login for an assistant is fine. Written yes beats our reading of the clause.

Tested every 12 h

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

between tests of the ResDiary reads
12 h
for a call to a ResDiary tool paused for repair
$0

When ResDiary renames a field or moves a screen, we change the tool and your prompts keep working. status.cotlet.dev checks the site, console and API every 3 minutes.

3 tools ask first

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

  1. 01 Finds the times Reads the diary and the open times for the party.
  2. 02 Shows you the change Guest, time, party size and note.
  3. 03 Waits for your OK The change sits in your Cotlet console first.
  4. 04 Reports the booking Reference, time, party size and status.
Which ResDiary actions can be undone
ActionUndo
Add a customer noteDelete the note on the guest profile
Set a customer typeset_customer_type with the old type, one call
Add a booking reminderDelete the reminder on the booking
Create or move a bookingupdate_booking or cancel_booking, after your OK
Cancel a bookingNone by tool; create a new booking if the time is open

3 of 12 tools ask first: create_booking, update_booking and cancel_booking. Each one changes what a guest holds. Reads, customer notes, customer types and reminders run at once, because only your staff see them and each is undone in one step. Switching the wait off is your choice, per tool.

A booking that needs a deposit or a stored card stays Unconfirmed until the guest completes it. Cotlet never types card numbers.

MCP call
{
  "name": "create_booking",
  "arguments": {
    "date": "2026-11-07",
    "time": "20:00",
    "party_size": 4,
    "first_name": "Chidi",
    "last_name": "Okafor",
    "mobile": "+447700900123",
    "booking_note": "Birthday dinner"
  }
}
REST
curl -X POST https://cotlet.dev/api/v1/resdiary/bookings \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"date":"2026-11-07","time":"20:00","party_size":4,"first_name":"Chidi","last_name":"Okafor","mobile":"+447700900123","booking_note":"Birthday dinner"}'
Tool output
{
  "booking_id": "bk_21107",
  "reference": "BHCQ81K",
  "date": "2026-11-07",
  "time": "20:00",
  "party_size": 4,
  "status": "Confirmed",
  "guest": "Chidi Okafor"
}

Scripts and cron jobs call the same tools over REST at /api/v1/resdiary, 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 ResDiary MCP server cost?

About $25 a monthfor one venue with a daily floor briefing and a daily check of unconfirmed bookings, 4,240 credits. ResDiary itself is a separate subscription.

A month of ResDiary jobs for one venue, in credits
JobCallsCredits
Brief the floor, daily3 × 30900
Copy allergies to guest notes, weekdays3 × 20600
Move a booking4 × 10400
Fill a gap in the diary3 × 8240
Chase unconfirmed bookings, daily2 × 30600
Cloud Browser, 30 days1,500
Total4,240
  • Free 7-day trial, no card
  • 10 credits per successful call, MCP or REST
  • 50 credits a day for the Cloud Browser
  • Same price on every ResDiary plan

The month is our example: a daily floor briefing, guest notes on 20 weekdays, 10 moved bookings, 8 new bookings and a daily check of unconfirmed bookings. ResDiary publishes no figure for calls per venue, so the volume is our assumption. Your ResDiary plan is priced by bookings per month (resdiary.com/pricing) and is not part of this. 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

ResDiary MCP server on GitHub, approved API or hosted: which to use One small server exists, none from ResDiary.

Other ResDiary agent routes, checked 31 Oct 2026
OptionWhat it doesWhere it stops
matuspavliscak/resdiary-mcpMCP server on the public booking widget: check availability, book and cancel as a guest at any ResDiary venue. MIT, last commit 16 Mar 2026.Personal project, no stars. Guest side only: no diary, guest notes or W8LIST. You run it on your computer.
Thalvik/resdiary-api-clientPHP client for the ResDiary API.Last commit 12 Apr 2018. Needs API credentials, which ResDiary gives by application.
ResDiary Consumer, Data Extract and EPOS APIsOfficial: availability, bookings, customers and webhooks for approved integrations.Needs an application, an agreed purpose and certification. The licence bans passing access to others.
ResPhone, ResDiary add-onTakes bookings by phone when nobody picks up, £35 a month.A phone line, not an agent that reads your diary or keeps guest notes.

If you build a booking product for many venues, apply for the official API: it is the route ResDiary supports. Cotlet is for one venue or group whose manager wants an agent in the diary now, hosted, with approvals.

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 ResDiary tools go to contact@cotlet.dev.

ResDiary API and MCP: questions

How do I get access?

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

How do I connect ResDiary to ChatGPT or Claude?

Sign up at cotlet.dev, log in to ResDiary once in its Cloud Browser and add Cotlet to ChatGPT or Claude, following the steps in your console. No API key is needed. ChatGPT and Claude then work in your ResDiary account through Cotlet, in their phone apps too.

What can ChatGPT do in ResDiary?

With Cotlet, ChatGPT, Claude and other AI agents handle jobs like these in ResDiary: brief the floor on tonight\; copy allergies from booking notes to guest profiles; fill a gap in the diary. You ask in plain words, and anything that reaches other people waits for your OK first.

Do I need ResDiary API access?

No. Cotlet works in your own venue login, so you do not apply for API access. ResDiary gives API access to approved integrations for one agreed purpose and forbids passing it on (ResDiary API License Terms, sections 2.1 and 4.1).

Does ResDiary allow a second login on the same account?

ResDiary's Terms of Service say multiple logins from different devices or IP addresses with the same username and password are not permitted. Cotlet signs in from its own Cloud Browser, which is another IP address than your venue's, so use a login you could give up if ResDiary objects, and keep your own use of that login in mind.

Which plan do I need?

ResDiary says its plans carry the same core features and differ in the number of bookings (resdiary.com/pricing). Cotlet works in the web login of any plan; add-ons such as SMS or Order & Pay change what your venue has, not what the tools read.

Can it read my guests' phone numbers and emails?

No. search_customers takes a name, an email or a mobile number to find a profile, and no tool returns contact details.

Is the MCP server different from the REST API?

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

Is Cotlet affiliated with ResDiary?

No. Cotlet is independent and not affiliated with ResDiary or The Access Group.

Can I use the ResDiary 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.

Give your agent access to ResDiary.

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