Hotels
PATCH/v1/hotels/searches/{id}
Refine a search — billable only if it reaches the supplier
Changing dates, destination or occupancy asks the supplier again and counts. Re-sorting or paging does not. X-Search-Billable on the response tells you which it was.
- Auth
- API key
- Scope
- hotels:search
- Rate limit
- SEARCH
- Search quota
- Sometimes counts
- Idempotency
- Not required
Counts as a search only when one of these changes: checkIn, checkOut, destination, latitude, longitude, radiusKm, nearPoi, areaHint, adults, children, childrenAges, rooms, currency. A request that changes nothing else is free.
Path parameters
Request body
HotelSearchPatchDto — required, sent as application/json.
Responses
200 · HotelSearchDto
Errors
Every one of these carries the same envelope. What each error.type means, and whether a retry can succeed, is on the error index — once, for all operations.
Response headers
Set on every response of this operation, successful or not.
Example
curl -sS -X PATCH "$VACABEE_API_URL/v1/hotels/searches/<id>" \
-H "Authorization: Bearer $VACABEE_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'The body above is empty because this operation declares no required fields — not because it takes none. Every field it accepts is optional, and they are listed under HotelSearchPatchDto in the schema catalogue.
Set VACABEE_API_URL to https://api.vacabee.com with a live key, or to https://sandbox-api.vacabee.com with a vcb_test_ key. Binding a host to one kind of key is planned and is not enforced by the host yet, so nothing stops a key from being answered at the wrong base URL — assert the prefix against your configured URL yourself. What the sandbox answers
TypeScript SDK
await vacabee.hotels.refine(…);The typed method sends the right headers, derives the idempotency key where one is required, and returns the response type generated from this document. Installing and using the SDK

