Hi!
We’re currently building a WordPress extension that integrates with the Mews Distributor API, and we’ve run into recurring issues that I’d like to check if anyone else has solved.
Current situation:
-
We work with multiple bookable services (several
ConfigurationIds
) under one Mews enterprise. -
Our goal is to aggregate all services into a single unified search flow (cabins, apartments, hotels, across locations).
-
We fetch metadata via
configuration/get
(list ofIds
) and then callhotels/getAvailability
for eachConfigurationId
+HotelId
+CategoryIds
.
Problems:
-
Endpoint mismatch:
-
Some documentation and support replies reference
https://app.mews.com/api/distributor/v1/...
while others usehttps://api.mews.com/api/distributor/v1/...
. -
In production, we sometimes get 404 (Cloudflare HTML) on
configuration/get
if we don’t use theapi.mews.com/api/...
form.
-
-
Availability errors:
-
hotels/getAvailability
often returns 400 Invalid CategoryIds even when theCategoryIds
were retrieved viaconfiguration/get
. -
Other times we receive 401 Unauthorized (“Cannot perform operation or session has expired”), despite using the registered
Client
string. -
Even when the call succeeds, we sometimes get empty 200 responses for short stays, while the Mews booking engine shows valid prices for the same period.
-
What we’ve tried:
-
Verified that the
Client
string is consistent across all calls. -
Confirmed that the same calls work fine in demo, but fail intermittently in production.
-
Cross-checked that our RoomCategoryIds map to the expected ConfigurationIds, but still get 400/401.
👉 Question 1: Has anyone successfully implemented a multi-service Distributor API integration (aggregating multiple ConfigurationIds
) that consistently retrieves availability and pricing? If so, how did you structure the API calls and handle CategoryIds validation across services?
👉 Question 2: Does anyone know of an existing vendor or software provider that already supports this kind of multi-service aggregation “out of the box”? We’d be open to looking at external solutions if this is already solved elsewhere.
Any experiences, best practices, or code snippets would be greatly appreciated!
Thanks in advance
Jan Terje