Resos REST API capabilities and limits

In this article
  1. API capabilities and limits
  2. Getting updates: polling, not webhooks
  3. Checking availability before you book
  4. Deciding whether the guest gets a confirmation e-mail
  5. Rate limits and page sizes
  6. Exporting a large data set
  7. Trying the API before you commit
  8. With Resos’ API, you can…

This assumes you already have an API key, see how to use Resos REST API first for how to generate one. Before you plan an integration, it helps to know what the API does for you and where its edges are.

API capabilities and limits

Getting updates: polling, not webhooks

Resos offers no webhooks that you can set up yourself. There is no screen where you register a callback address, so an integration that needs to know about new, changed, or cancelled bookings asks the bookings endpoint on a schedule you decide.

Poll the service window you care about. The list endpoint takes a date range, and both ends have to be sent for the range to apply:

GET /v1/bookings?fromDateTime=2026-01-15T00:00:00Z&toDateTime=2026-01-16T00:00:00Z&sort=dateTime:1&limit=100

Keep each run’s result and compare it against the run before. Every booking you read back carries its current status, so cancellations and status changes show up on the next poll of the window they sit in. To pick out the bookings made since your last run, add a filter on createdAt, which is set on every booking when it is created:

GET /v1/bookings?fromDateTime=2026-01-15T00:00:00Z&toDateTime=2026-01-16T00:00:00Z&customQuery=createdAt>2026-01-15T09:00:00Z

URL-encode the filter value if your HTTP client does not do it for you.

There is no “changed since” filter to ask the API for. updatedAt looks like one, but only some booking edits write it: new bookings, cancellations and status changes leave it untouched, so a filter on updatedAt misses exactly the changes you are polling for. Compare each poll against your own copy instead.

Checking availability before you book

Three read-only endpoints answer availability questions, so you do not have to rebuild your booking rules in your own system:

  • GET /v1/bookingFlow/dates lists the dates your restaurant is open in a range.
  • GET /v1/bookingFlow/times lists the bookable times on a date for a given party size.
  • GET /v1/bookingFlow/availableTables lists the tables that are free in a time window.

They work with the ordinary API key you generated in how to use Resos REST API. Partner keys, the shared keys we issue to integration partners, need the booking-flow:read scope on the key.

Deciding whether the guest gets a confirmation e-mail

When you create or update a booking, the guest object accepts notificationEmail and notificationSms flags. Both are off unless you send true, so a booking created through the API does not e-mail or text the guest by default. Send notificationEmail as true when you want the guest to receive the normal Resos confirmation, and leave it off when your own system already confirms to the guest. notificationSms also needs the SMS messages add-on active and a phone number on the booking, or it stays off.

Rate limits and page sizes

The API allows 60 requests per 60 seconds, counted per IP address. Every response carries X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset and Retry-After headers, and a request over the limit gets 429 Too Many Requests back. The limit is the same for every customer and is not raised for individual restaurants, so if several systems call Resos from the same server, they share it.

List endpoints return at most 100 records per request. Use skip and limit to page through anything larger.

Exporting a large data set

The CSV export inside Resos is a separate tool from the API, and it stops at 25,000 rows per export. If you need more than that, narrow the date range and export in several passes, or read the data through the API with paging instead.

Trying the API before you commit

The API add-on is not available on the Free plan. On any paid plan you can switch it on yourself, and the first time you activate it you get a 30 day free trial, with billing starting when the trial ends. How add-on billing and free trials work covers the trial and how to switch the add-on off again.

With Resos’ API, you can…

  • Integrate into an e-mail system such as Mailchimp, Campaign Monitor, etc.
  • Allow for the interaction between Resos and your accounting system.
  • Integrate into a CRM or business intelligence platform.

Please let us know at hi@resos.com if you have questions or if something you need is missing. We are extending the API as needed and per your request.

Line from the Resos support team Support team member Support team member

Still looking for help?

Can't find what you're looking for? Our support team is happy to help.