Error codes
Errors are RFC 9457 problem+json; your program should branch on the code field.
| code | HTTP | Meaning |
|---|---|---|
| subscription_has_bookings | 409 | The subscription cannot end while you have a running hold or a reservation whose stay has not ended. |
| hold_ref_required | 400 | A hold needs holdRef: your own hold / request number. |
| external_ref_required | 400 | A reservation needs externalRef: its number in your own system. |
| extra_unknown | 400 | A chosen paid amenity does not exist on the property (or in that room). See extraOptions of the availability answer. |
| extension_too_early | 409 | A hold can only be extended in its last five minutes. |
| extension_too_long | 400 | The extension is longer than the hold limit the owner set for this property. |
| extension_limit | 409 | This hold was already extended three times. |
| queue_waiting | 409 | Another agency is queued for these nights, so the hold cannot be extended. |
| queue_priority | 409 | The first agency in the queue has these nights to itself for a few minutes. |
| dates_available | 409 | Nothing to queue for: the nights are free, place the hold. |
| waitlist_full | 409 | You already have five open queue entries for this property. |
| waitlist_entry_not_found | 404 | No such queue entry of yours. |
| api_key_missing | 401 | No Authorization: Bearer … header. |
| api_key_invalid | 401 | The key is malformed or unknown. |
| api_key_revoked | 401 | The key was revoked. |
| api_key_expired | 401 | The key passed its expiry date. |
| ip_not_allowed | 403 | The call came from an address outside the key's allow-list. |
| scope_missing | 403 | The key lacks the scope this endpoint needs (named in detail). |
| agency_not_approved | 403 | Live keys work only for agencies staff have approved. |
| account_suspended | 403 | The account is suspended. |
| not_subscribed | 403 | You have no active subscription to this property. |
| property_not_found | 404 | No such property in this mode (a test key never sees live properties, nor the reverse). |
| dates_unavailable | 409 | The nights are not free (any longer). |
| subscription_exists | 409 | You already have an open subscription or request. |
| hold_expired | 409 | The hold ran out of time. |
| reservation_not_active | 409 | The reservation is already cancelled or over. |
| stay_rules_violated | 422 | The stay breaks the property's rules; violations lists them. |
| rate_limited | 429 | Too many requests; wait retryAfter seconds (see the RateLimit-* headers). |