Reservio API documentation v2 https://api.reservio.com/v2

Reservio API v2 (2.0.0)

Download OpenAPI specification:

Welcome to the public Reservio API v2 documentation!

Last updated: 2026-07-17

Authentication (OAuth2)

All requests must be authenticated with a Bearer access token. How you obtain the token depends on whether you are a Reservio customer or a partner.

Customer API access (Pro plan)

API access is included in the Pro plan. To get access, contact our customer care team — they will issue an API access token for your account.

Use the issued token to authenticate every request:

Authorization: Bearer {token}

Partner API access

Partners (integrating with Reservio without being a Reservio customer) receive their own client_id and client_secret. To obtain an access token, send a POST /oauth2/token request with the following body parameters:

  • grant_type with the value client_credentials
  • client_id with the client's ID
  • client_secret with the client's secret
  • scope with a space-delimited list of requested scope permissions

The authorization server responds with a JSON object containing:

  • token_type with the value Bearer
  • expires_in with an integer representing the TTL of the access token
  • access_token — a JWT signed with the authorization server's private key

Use the returned access_token to authenticate every request, the same way as above.

Testing your token

Once you have a token, verify that it works with a simple request:

curl \
    -H "Authorization: Bearer {token}" \
    https://api.reservio.com/v2/users/me

If the response is not HTTP 200, do not send any other requests — they will fail. Contact our support instead.

Sorting, filtering & pagination

This API follows the JSON:API specification.

  • Sorting is done via ?sort=(direction)column, for example ?sort=-createdAt (descending by the createdAt column).
  • Filtering is done via ?filter[name]=Bob or ?filter[booking.event.id]=10.
  • Pagination — collection responses include a top-level links object with first, last, next and prev page links (first can be equal to last, next can be null, etc.).

Webhooks & integrations

Reservio does not currently support webhooks (i.e. sending payloads from Reservio after an event occurs, for example when a booking is created). You can achieve a similar result by polling. For example, list the most recent bookings sorted by createdAt in descending order every hour or so:

https://api.reservio.com/v2/businesses/{businessId}/bookings?sort=-createdAt

Enterprises

Get Enterprise

Authorizations:
bearerAuth
path Parameters
enterpriseId
required
string

Enterprise id.

Responses

Response samples

Content type
application/vnd.api+json
{}

Business Groups

Get Business Group

Authorizations:
bearerAuth
path Parameters
businessGroupId
required
string

Business group id.

Responses

Response samples

Content type
application/vnd.api+json
{}

Businesses

Get Business

Authorizations:
bearerAuth
path Parameters
businessId
required
string

Business id.

Responses

Response samples

Content type
application/vnd.api+json
{}

Services

Get Services

Authorizations:
bearerAuth
path Parameters
businessId
required
string

Business id.

Responses

Response samples

Content type
application/vnd.api+json
{}

Get Service

Authorizations:
bearerAuth
path Parameters
businessId
required
string

Business id.

serviceId
required
string

Service id.

Responses

Response samples

Content type
application/vnd.api+json
{}

Resources

Get Resources

Authorizations:
bearerAuth
path Parameters
businessId
required
string

Business id.

Responses

Response samples

Content type
application/vnd.api+json
{}

Get Resource

Authorizations:
bearerAuth
path Parameters
businessId
required
string

Business id.

resourceId
required
string

Resource id.

Responses

Response samples

Events

Get Events

Authorizations:
bearerAuth
path Parameters
businessId
required
string

Business id.

Responses

Response samples

Content type
application/vnd.api+json
{}

Bookings

Get Bookings

Authorizations:
bearerAuth
path Parameters
businessId
required
string

Business id.

Responses

Response samples

Content type
application/vnd.api+json
{}

Create Booking

Create Appointment Booking — To create an appointment booking, send a new event with the booking. The event is created from the selected time slot and service.

Create Group Booking — To create a group booking, reference an existing group event by its id.

Authorizations:
bearerAuth
path Parameters
businessId
required
string

Business id.

Request Body schema: application/vnd.api+json
required
One of
required
object

Responses

Request samples

Content type
application/vnd.api+json
Example
{
  • "data": {
    • "type": "booking",
    • "attributes": {
      },
    • "relationships": {
      }
    }
}

Response samples

Content type
application/vnd.api+json
Example
{}

Coupons

Get Coupons

Authorizations:
bearerAuth
path Parameters
businessId
required
string

Business id.

Responses

Response samples

Content type
application/vnd.api+json
{}

Get Coupon

Authorizations:
bearerAuth
path Parameters
businessId
required
string

Business id.

couponId
required
string

Coupon id.

Responses

Response samples

Content type
application/vnd.api+json
{}

Opening Hours

Get Opening Hours Collection

Authorizations:
bearerAuth
path Parameters
businessId
required
string

Business id.

Responses

Response samples

Content type
application/vnd.api+json
{}

Get Opening Hours

Authorizations:
bearerAuth
path Parameters
businessId
required
string

Business id.

openingHoursId
required
string

Opening hours id.

Responses

Response samples

Content type
application/vnd.api+json

Rosters

Get Rosters

Authorizations:
bearerAuth
path Parameters
businessId
required
string

Business id.

Responses

Response samples

Content type
application/vnd.api+json
{}

Get Roster

Authorizations:
bearerAuth
path Parameters
businessId
required
string

Business id.

rosterId
required
string

Roster id.

Responses

Response samples

Content type
application/vnd.api+json
{}

Availability

Get Booking Slots

Returns the available booking time slots for the given date range.

Authorizations:
bearerAuth
path Parameters
businessId
required
string
Example: b04965e6-a9bb-591f-8f8a-1adcb2c8dc39

Business id.

query Parameters
filter[from]
required
string <date>
Example: filter[from]=2016-01-01

Generate slots starting at this date.

filter[to]
required
string <date>
Example: filter[to]=2016-01-01

Generate slots ending at this date.

filter[serviceId]
required
string
Example: filter[serviceId]=b04965e6-a9bb-591f-8f8a-1adcb2c8dc39

Filter by service.

filter[resourceId]
string
Example: filter[resourceId]=b04965e6-a9bb-591f-8f8a-1adcb2c8dc39

Filter by resource.

Responses

Response samples

Content type
application/vnd.api+json
{}

Get Booking Days

Checks whether there is any available booking time slot in the given date range. Results are aggregated by date.

Authorizations:
bearerAuth
path Parameters
businessId
required
string
Example: b04965e6-a9bb-591f-8f8a-1adcb2c8dc39

Business id.

query Parameters
filter[from]
required
string <date>
Example: filter[from]=2016-01-01

Generate slots starting at this date.

filter[to]
required
string <date>
Example: filter[to]=2016-01-01

Generate slots ending at this date.

filter[serviceId]
required
string
Example: filter[serviceId]=b04965e6-a9bb-591f-8f8a-1adcb2c8dc39

Filter by service.

filter[resourceId]
string
Example: filter[resourceId]=b04965e6-a9bb-591f-8f8a-1adcb2c8dc39

Filter by resource.

Responses

Response samples

Content type
application/vnd.api+json
{
  • "meta": {
    • "total": 7
    },
  • "links": {},
  • "data": [
    • {
      },
    • {
      },
    • {
      },
    • {
      },
    • {
      },
    • {
      },
    • {
      }
    ]
}

Get Event Days

Checks whether there is any event available for booking in the given date range. Results are aggregated by date.

Authorizations:
bearerAuth
path Parameters
businessId
required
string
Example: b04965e6-a9bb-591f-8f8a-1adcb2c8dc39

Business id.

query Parameters
filter[from]
required
string <date>
Example: filter[from]=2016-01-01

Generate slots starting at this date.

filter[to]
required
string <date>
Example: filter[to]=2016-01-01

Generate slots ending at this date.

filter[resourceId]
string
Example: filter[resourceId]=b04965e6-a9bb-591f-8f8a-1adcb2c8dc39

Filter by resource.

Responses

Response samples

Content type
application/vnd.api+json
{
  • "meta": {
    • "total": 7
    },
  • "links": {},
  • "data": [
    • {
      },
    • {
      },
    • {
      },
    • {
      },
    • {
      },
    • {
      },
    • {
      }
    ]
}

Get Availability Report

Returns the availability report for the given date range.

Authorizations:
bearerAuth
path Parameters
businessId
required
string
Example: b04965e6-a9bb-591f-8f8a-1adcb2c8dc39

Business id.

query Parameters
type
required
string
Example: type=hourly

Type of the report.

filter[from]
required
string <date>
Example: filter[from]=2016-01-01

Generate the report starting at this date.

filter[to]
required
string <date>
Example: filter[to]=2016-01-01

Generate the report ending at this date.

filter[serviceId]
string
Example: filter[serviceId]=b04965e6-a9bb-591f-8f8a-1adcb2c8dc39

Filter by service.

filter[resourceId]
string
Example: filter[resourceId]=b04965e6-a9bb-591f-8f8a-1adcb2c8dc39

Filter by resource.

Responses

Response samples

Content type
application/vnd.api+json
{
  • "meta": {
    • "total": 24
    },
  • "links": {},
  • "data": [
    • {
      },
    • {
      },
    • {
      }
    ]
}