Skip to content

Migration Guide: Get all reservations

This guide is intended to assist API users to migrate away from the obsolete API Operation Get all reservations (ver 2017-04-12) which is long deprecated and will be permanently discontinued.

We’re committed to ensuring a smooth transition from the old 2017 version of ‘Get all reservations’ to the newer 2023 version. To better support you, we’d love to hear about your migration plans and any potential blockers you may be facing.

  • Migration timeline – When do you plan to complete your migration?
  • Feature parity – Is there any missing functionality preventing your transition?

After consulting the details in this Migration Guide, please take a moment to fill out this short survey and share your feedback. If you need further assistance or would like to discuss your migration plans, please contact our Technical Partnerships team at partnersuccess@mews.com.

API Operation Get all reservations (ver 2017-04-12) is replaced by Get all reservations (ver 2023-06-06). The original operation became increasingly complex and the combination of extents along with backward compatibility requirements resulted in unpredictable performance and frequent timeouts. The new operation performs the same basic function to fetch reservations from Mews, however there are substantial differences that you need to be aware of. The major differences are as follows:

  • The new operation doesn’t support extents
  • The new operation requires pagination
  • The new operation supports filtering by more time intervals
  • The new operation supports Portfolio Access Tokens
  • If you previously used extents, you will need to change your implementation to make additional calls to the API to get the same information.
  • You will need to change your implementation to support pagination, including supplying the mandatory Limitation parameter in your request.
  • Filtering by time intervals offers new opportunities to make your calls more efficient.
  • Portfolio Access Tokens again offers new opportunities to users taking advantage of the Mews Multi-Property feature.

Extents: Extents are a way to fetch related entities with a single API request. For example, when fetching reservations in the original Get all reservations operation, you were able to receive data about related customers and resources in the same resources. While this simplified some use cases, it frequently resulted in request timeouts and overfetching of rarely updated data. Furthermore, contract changes in related entities complicated tracking changes to the operation. See also Best practices.

  1. Check the usage of request parameters and map the original request parameters to their new equivalents.
  2. Replace extents in request parameters (if used) with calls to additional operations.
  3. Map original response parameters to their new equivalents.
  4. Ensure your implementation supports pagination.

The following table maps request parameters from Get all reservations (ver 2017-04-12) to the equivalent request parameters in Get all reservations (ver 2023-06-06).

Original propertyNew propertyNotes
ServiceIdsServiceIdsNo longer required.
GroupIdsReservationGroupIds-
ReservationIdsReservationIdsNo change.
CustomerIdsAccountIdsAccounts are more general than Customers and include Companies as well.
AssignedResourceIdsAssignedResourceIdsNo change.
RateIdsn/aCurrently not supported.
BusinessSegmentIdsn/aCurrently not supported.
ChannelNumbersChannelNumbersReduced to maximum of 100 items.
NumbersNumbersNo change.
StartUtcSee Time filters-
EndUtcSee Time filters-
TimeFilterSee Time filters-
Currencyn/aCurrently not supported.
StatesStatesUses Service order state instead of Service order state (ver 2017-04-12): Enquired has been renamed to Inquired.
LimitationLimitationRequired for all requests.

The combination of the request properties TimeFilter, StartUtc and EndUtc has been replaced by individual Time interval properties. For example, instead of "TimeFilter":"Colliding" use CollidingUtc request property.

Original request to Get all reservations (ver 2017-04-12):

[PlatformAddress]/api/connector/v1/reservations/getAll
{
"ClientToken": "E0D439EE522F44368DC78E1BFB03710C-D24FB11DBE31D4621C4817E028D9E1D",
"AccessToken": "C66EF7B239D24632943D115EDE9CB810-EA00F8FD8294692C940F6B5A8F9453D",
"Client": "Sample Client 1.0.0",
"StartUtc": "2023-04-01T00:00:00Z",
"EndUtc": "2023-05-05T00:00:00Z",
"TimeFilter": "Colliding"
}

Migrated request to Get all reservations (ver 2023-06-06):

[PlatformAddress]/api/connector/v1/reservations/getAll/2023-06-06
{
"ClientToken": "E0D439EE522F44368DC78E1BFB03710C-D24FB11DBE31D4621C4817E028D9E1D",
"AccessToken": "C66EF7B239D24632943D115EDE9CB810-EA00F8FD8294692C940F6B5A8F9453D",
"Client": "Sample Client 1.0.0",
"CollidingUtc": {
"StartUtc": "2023-04-01T00:00:00Z",
"EndUtc": "2023-05-05T00:00:00Z"
}
}

The following table maps the original TimeFilter value to the equivalent properties for Get all reservations (ver 2023-06-06):

TimeFilter valueRequest propertyNotes
CollidingCollidingUtc-
CreatedCreatedUtc-
UpdatedUpdatedUtc-
StartScheduledStartUtcClarified behavior of filtering by the scheduled time of reservation.
EndScheduledEndUtc-
Overlappingn/aDropped due to low usage, use CollidingUtc instead.
Canceledn/aDropped due to low usage. Can be emulated with the combination of UpdatedUtc and States set to [“Canceled"] filters.

The new Get all reservations (ver 2023-06-06) operation doesn’t support extents. Instead, separate API Operations to retrieve respective entities should be used.

The following example request to Get all reservations (ver 2017-04-12) uses extents to retrieve Reservations, Customers, and Resources in a single request:

[PlatformAddress]/api/connector/v1/reservations/getAll
{
"ClientToken": "E0D439EE522F44368DC78E1BFB03710C-D24FB11DBE31D4621C4817E028D9E1D",
"AccessToken": "C66EF7B239D24632943D115EDE9CB810-EA00F8FD8294692C940F6B5A8F9453D",
"Client": "Sample Client 1.0.0",
"StartUtc": "2023-04-01T00:00:00Z",
"EndUtc": "2023-05-05T00:00:00Z",
"TimeFilter": "Updated",
"Extent": {
"Reservations": true,
"Customers": true,
"Resources": true
}
}

With Get all reservations (ver 2023-06-06) the request needs to be broken down into 3 separate requests:

  1. Get all reservations (ver 2023-06-06) to retrieve reservations including AccountId and AssignedResourceIds properties of individual reservations.
  2. Get all customers to retrieve customers’ details using the CustomerIds filter with AccountId values retrieved in the first step (where AccountType is "Customer").
  3. Get all resources to retrieve resources’ details using the ResourceIds filter with AssignedResourceIds values retrieved in the first step. Alternatively, Get all resources can be regularly requested without filters and cached, since resources’ details don’t change frequently.

First request to Get all reservations (ver 2023-06-06):

[PlatformAddress]/api/connector/v1/reservations/getAll/2023-06-06
{
"ClientToken": "E0D439EE522F44368DC78E1BFB03710C-D24FB11DBE31D4621C4817E028D9E1D",
"AccessToken": "C66EF7B239D24632943D115EDE9CB810-EA00F8FD8294692C940F6B5A8F9453D",
"Client": "Sample Client 1.0.0",
"UpdatedUtc": {
"StartUtc": "2023-04-01T00:00:00Z",
"EndUtc": "2023-05-05T00:00:00Z"
},
"Limitation": { "Count": 2 }
}

Returns the following response with two reservations:

{
"Reservations": [
{
"Id": "0f515589-99b4-423d-b83a-b237009f0509",
"AccountId": "fadd5bb6-b428-45d5-94f8-fd0d89fece6d",
"AccountType": "Customer",
"AssignedResourceId": "20e00c32-d561-4008-8609-82d8aa525714"
// other properties removed for clarity
},
{
"Id": "bdf1138f-6d47-4f30-9d5a-02c65344f396",
"AccountId": "06ab4938-9675-4f3b-a198-012ed8abc1a6",
"AccountType": "Customer",
"AssignedResourceId": "ed705d9e-ec6d-4ba7-9ffb-a25de7fbfb52"
// other properties removed for clarity
}
],
"Cursor": "bdf1138f-6d47-4f30-9d5a-02c65344f396"
}

Second request to Get all customers passes value of AccountId to CustomerIds filter only from the first reservation as AccountType is "Customer":

[PlatformAddress]/api/connector/v1/customers/getAll
{
"ClientToken": "E0D439EE522F44368DC78E1BFB03710C-D24FB11DBE31D4621C4817E028D9E1D",
"AccessToken": "C66EF7B239D24632943D115EDE9CB810-EA00F8FD8294692C940F6B5A8F9453D",
"Client": "Sample Client 1.0.0",
"CustomerIds": ["fadd5bb6-b428-45d5-94f8-fd0d89fece6d"],
"Limitation": { "Count": 10 }
}

Third request to Get all resources uses values from AssignedResourceId in ResourceIds filter from both reservations:

[PlatformAddress]/api/connector/v1/resources/getAll
{
"ClientToken": "E0D439EE522F44368DC78E1BFB03710C-D24FB11DBE31D4621C4817E028D9E1D",
"AccessToken": "C66EF7B239D24632943D115EDE9CB810-EA00F8FD8294692C940F6B5A8F9453D",
"Client": "Sample Client 1.0.0",
"ResourceIds": [
"20e00c32-d561-4008-8609-82d8aa525714",
"ed705d9e-ec6d-4ba7-9ffb-a25de7fbfb52"
],
"Limitation": { "Count": 10 }
}

The following table links individual extents together with their replacement API Operations.

ExtentAPI operationNotes
Reservationsn/aOperation always returns reservations.
ReservationGroupsGet all reservation groupsUse GroupId response property in ReservationGroupIds request parameter.
CustomersGet all customersUse AccountId response property where AccountType is “Customer”.
CustomerAdresses (sic)Get all addressesUse AccountId response property where in AccountIds parameter.
CustomerIdentityDocumentsGet all identity documentsUse AccountId response property where AccountType is “Customer”
ServicesGet all servicesUse ServiceId response property.
ProductsGet all productsUse ServiceId response property.
BusinessSegmentsGet all business segmentsUse BusinessSegmentId response property.
ResourcesGet all resourcesUse AssignedResourceIds response property.
ResourceCategoriesGet all resource categoriesUse RequestedResourceCategoryId response property.
ResourceCategoryAssignmentsGet all resource category assignmentsUse AssignedResourceIds property in ResourceIds request parameter.
RatesGet all ratesUse RateId response property.
ItemsGet all payments
Get all order items
Payments: Use Id response property in ReservationIds request parameter.
Order items: Use Id response property in ServiceOrderIds request parameter.
OrderItemsGet all order itemsUse Id response property in ServiceOrderIds request parameter.
NotesGet all service order notesUse Id response property in ServiceOrderIds request parameter.
QrCodeDatan/aUse QrCodeData response property.
CompaniesGet all companiesUse AccountId response property where AccountType is "Company".
AccountingStatesGet all payments
Get all order items
Use AccountingStates request parameter for both operations.

The following table maps the response properties from the original Reservation (ver 2017-04-12) entity to the properties of Reservation (ver 2023-06-06). Only the changed properties are listed.

Original propertyNew propertyNotes
ChannelManagerGroupNumbern/aNo longer supported.
ChannelManagern/aReplaced by Get reservations channel manager details.
StateStateUses Service order state instead of Service order state (ver 2017-04-12): Enquired has been renamed to Inquired.
OriginOriginOperations-specific values moved to CommanderOrigin (see Commander origin).
PurposePurposeNo longer required.
StartUtcScheduledStartUtc
ActualStartUtc
Early check-ins changed StartUtc value. Check-in time and scheduled start time are now provided in separate properties.
EndUtcScheduledEndUtc
ActualEndUtc
Check-outs changed EndUtc value. Check-out time and scheduled end time are now provided in separate properties.
RequestedCategoryIdRequestedResourceCategoryId-
CompanyIdPartnerCompanyId-
CancellationReasonCancellationReasonOptional, previously incorrectly marked as required.
OwnerIdAccountId-
OptionsOptionsUses Service order options.
AssignedSpaceIdAssignedResourceIdPreviously deprecated.
AssignedSpaceLockedAssignedResourceLockedPreviously deprecated.
AdultCountPersonCountsPreviously deprecated.
ChildCountPersonCountsPreviously deprecated.
CustomerIdAccountIdPreviously deprecated.
CompanionIdsn/aPreviously deprecated, replaced by Get all companions.
ChannelManagerIdChannelManagerNumberPreviously deprecated.

The Add reservation and Update reservation operations work with older versions of request and response properties corresponding to Reservation (ver 2017-04-12) entity. An updated versions of these operations will be published in H2/2025.