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 media object has moved from the accommodation level to suppliers.<name>.media, ensuring media assets are associated with their respective suppliers, alongside booking links and related data.
    • Supplier-specific ratings: The rating object has moved from the accommodation level to the respective supplier objects, ensuring ratings are accurately associated with their originating suppliers.
    • Supplier-specific policies: The policies object 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 averageRatings object 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/accommodations accepts optional childrenAges for 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 hotelsearch parameter on GET /v2/accommodations filters results by hotel name. It returns traditional hotels only, ordered by distance from the search location, and takes exactly one location method — address, or lat/lng. It cannot be combined with hotelids, a bounding box, or clustering.

1.2.0 — August 10, 2026

Fixed

  • hotelids lookups now return all matching accommodations consistently.

Added

  • hotelids accepts supplier-prefixed IDs such as booking:18225 to avoid collisions between supplier ID spaces.
  • meta.unresolved lists requested IDs absent from the response.

Changed

  • hotelids accepts up to 100 IDs and returns all matches in one response.

1.1.3 — August 5, 2026

Added

  • Every documented response for GET /v2/accommodations now ships a realistic example body, captured from live responses. The 200 example shows a real multi-supplier result — the suppliers.<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 as property1 for the free-form maps (results[].suppliers, error details) and showed "string" or 0 for every field.

Changed

  • The documented error codes for GET /v2/accommodations now list only the ones this endpoint can return: 400 is LOCATION_REQUIRED, INVALID_DATE_FORMAT or VALIDATION_ERROR, and 401 is INVALID_API_KEY. INVALID_PROVIDER, INVALID_COORDINATES and MISSING_API_KEY were listed but unreachable here — an unknown provider value fails as VALIDATION_ERROR, and the endpoint is open to keyless demo traffic so a missing key is never an error. The codes documented for /v1/accommodations and the reporting endpoints are unchanged.

Fixed

  • The description of results[].type no longer implies a fixed set of values. These are free-form provider display strings (Hotel, Apartment, Bed & breakfast, …) falling back to a generic Accommodation; the lower_snake_case vocabulary belongs to the ?type= filter, not to this field.
  • The quickstart showed _links.next as a bare URL string. Like every other entry in _links, it is an object with an href property.

Removed

  • 503 Service Unavailable is no longer documented for GET /v2/accommodations. This endpoint does not return it. Retry guidance for transient upstream failures is under the documented 502 and 504 responses.
  • meta.message is no longer part of the /v2/accommodations response 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=top mode 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>.price is explicitly null for suppliers that could not be reached — treat null as availability unknown, not sold out and not $0.
  • Requests to GET /v2/accommodations that fail validation now consistently return a single 400 response; previously certain validation failures could destabilize the service.

1.1.0 — July 8, 2026

Added

  • Rating filters for accommodation search (GET /v2/accommodations).
  • cluster=top mode returning the top stays per cluster, and H3 clustering across resolutions r0–r15.
  • Multi-provider filtering via a CSV providers parameter.
  • Conditional GET support: responses include an ETag, and requests with If-None-Match return 304 Not Modified when 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.

On this page