Changelog
Notable changes to the Stay22 Direct Travel API.
1.5.0 — October 16, 2026
Added
- Accommodations API v3: Introducing
GET /v3/accommodations, with expanded multi-supplier capabilities and improvements to the response structure. Here are the key changes introduced in v3:- Multi-supplier support: v3 restores multi-supplier functionality previously available in v2. Clients can specify one or more providers, or omit the provider filter to retrieve all available suppliers for each accommodation.
- Supplier-specific media: The
mediaobject has moved from the accommodation level tosuppliers.<name>.media, ensuring media assets are associated with their respective suppliers, alongside booking links and related data. - Supplier-specific ratings: The
ratingobject has moved from the accommodation level to the respective supplier objects, ensuring ratings are accurately associated with their originating suppliers. - Supplier-specific policies: The
policiesobject has moved from the accommodation level to the respective supplier objects, ensuring supplier-specific policies are accurately represented and respected in accordance with each supplier's Terms of Service. - Aggregated accommodation ratings: A new
averageRatingsobject at the accommodation level provides a unified rating, calculated as a weighted average of ratings across all available suppliers for each accommodation.
Migration Notice — v2 Deprecation
We strongly recommend migrating to v3 immediately. While v2 is planned for deprecation, the exact timeline has not yet been confirmed. We will communicate the deprecation schedule in advance to allow existing clients sufficient time to migrate.
1.4.0 — September 20, 2026
Added
GET /v2/accommodationsaccepts optionalchildrenAgesfor supplier prices and booking links. Supply comma-separated ages at check-in from 0 to 17, with exactly one age per child. Invalid ages or mismatched counts return HTTP 400; omitting ages keeps provider defaults.
1.3.1 — August 13, 2026
Fixed
- Dated searches with price filters now retain accommodations when one supplier
fails to respond, since that supplier may still satisfy the requested price
range. Pagination totals and cluster counts include these results with
price: null.
1.3.0 — August 11, 2026
Added
- New
hotelsearchparameter onGET /v2/accommodationsfilters results by hotel name. It returns traditional hotels only, ordered by distance from the search location, and takes exactly one location method —address, orlat/lng. It cannot be combined withhotelids, a bounding box, or clustering.
1.2.0 — August 10, 2026
Fixed
hotelidslookups now return all matching accommodations consistently.
Added
hotelidsaccepts supplier-prefixed IDs such asbooking:18225to avoid collisions between supplier ID spaces.meta.unresolvedlists requested IDs absent from the response.
Changed
hotelidsaccepts up to 100 IDs and returns all matches in one response.
1.1.3 — August 5, 2026
Added
- Every documented response for
GET /v2/accommodationsnow ships a realistic example body, captured from live responses. The200example shows a real multi-supplier result — thesuppliers.<name>map with per-supplier ids, deeplinks, brand assets and quotes — and each error response shows the body you actually receive. Previously the reference invented placeholder keys such asproperty1for the free-form maps (results[].suppliers, errordetails) and showed"string"or0for every field.
Changed
- The documented error codes for
GET /v2/accommodationsnow list only the ones this endpoint can return:400isLOCATION_REQUIRED,INVALID_DATE_FORMATorVALIDATION_ERROR, and401isINVALID_API_KEY.INVALID_PROVIDER,INVALID_COORDINATESandMISSING_API_KEYwere listed but unreachable here — an unknownprovidervalue fails asVALIDATION_ERROR, and the endpoint is open to keyless demo traffic so a missing key is never an error. The codes documented for/v1/accommodationsand the reporting endpoints are unchanged.
Fixed
- The description of
results[].typeno longer implies a fixed set of values. These are free-form provider display strings (Hotel,Apartment,Bed & breakfast, …) falling back to a genericAccommodation; the lower_snake_case vocabulary belongs to the?type=filter, not to this field. - The quickstart showed
_links.nextas a bare URL string. Like every other entry in_links, it is an object with anhrefproperty.
Removed
503 Service Unavailableis no longer documented forGET /v2/accommodations. This endpoint does not return it. Retry guidance for transient upstream failures is under the documented502and504responses.meta.messageis no longer part of the/v2/accommodationsresponse schema. It was never populated.
1.1.2 — July 15, 2026
Changed
- Default rate limit for authenticated API keys raised from 120 to 150 requests per minute. Demo (keyless) requests are unchanged at 5 per minute.
Fixed
- Accommodation results in
cluster=topmode are now spread across the whole requested bounding box. Previously, in dense areas where inventory exceeded the search budget, results could all cluster on one side of the viewport.
1.1.1 — July 13, 2026
Changed
- Default rate limit for authenticated API keys raised from 100 to 120 requests per minute.
Fixed
- Dated accommodation searches no longer return an empty or misleading page
during supplier pricing outages. Results are kept, and
suppliers.<name>.priceis explicitlynullfor suppliers that could not be reached — treatnullas availability unknown, not sold out and not $0. - Requests to
GET /v2/accommodationsthat fail validation now consistently return a single400response; previously certain validation failures could destabilize the service.
1.1.0 — July 8, 2026
Added
- Rating filters for accommodation search (
GET /v2/accommodations). cluster=topmode returning the top stays per cluster, and H3 clustering across resolutions r0–r15.- Multi-provider filtering via a CSV
providersparameter. - Conditional GET support: responses include an
ETag, and requests withIf-None-Matchreturn304 Not Modifiedwhen unchanged.
Changed
- Rate limiting now applies per endpoint bucket for fairer quota usage.
1.0.0 — May 12, 2026
Added
- Initial public release of the Direct Travel API: accommodation search
(
GET /v2/accommodations), partner transaction reporting (GET /v1/reporting/transactions), API-key authentication, and rate limiting.