overlay: 1.0.0
info:
title: API Evangelist enhancements for Booking.com Demand API
version: 1.0.0
extends: openapi/booking-com-demand-api-3-1-openapi.yml
x-generated: '2026-09-17'
x-method: generated
x-source: Enhancements authored by API Evangelist against the provider-published contract; the original in openapi/
is never mutated.
actions:
- target: $
description: Attach the provider documentation page this contract is published on.
update:
externalDocs:
description: Booking.com Demand API 3.1 reference
url: https://developers.booking.com/demand/docs/open-api/3.1/demand-api
- target: $.info
description: Attach the support contact Booking.com publishes for this programme.
update:
contact:
name: Booking.com Developer Support
url: https://developers.booking.com
- target: $.info
description: Attach the terms of service the API is offered under.
update:
termsOfService: https://www.booking.com/content/terms.html
- target: $.components.securitySchemes
description: Declare the X-Affiliate-Id header. Booking.com requires it on every Demand API request (https://developers.booking.com/demand/docs/development-guide/authentication)
but does not declare it as a security scheme, so a client generated from the unmodified contract always receives
401.
update:
AffiliateId:
type: apiKey
in: header
name: X-Affiliate-Id
description: The affiliate ID of the API user. REQUIRED alongside the bearer token on every request, in production
and sandbox alike.
- target: $
description: Record the sandbox host alongside production so a client can switch environments.
update:
x-environments:
production: https://demandapi.booking.com
sandbox: https://demandapi-sandbox.booking.com
note: Same credentials in both. Sandbox is capped at 50 requests per minute and car rentals are not available
in it.
- target: $
description: Record the absence of a client-supplied idempotency mechanism on the order write path.
update:
x-idempotency:
coverage: none
affected:
- /orders/create
- /orders/modify
- /orders/cancel
guidance: Re-read /orders/details after a timeout rather than retrying a write.
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.