Flights
POST/v1/flights/orders/{id}/change-options
Priced alternatives for one leg
Name the slice you want to replace and where you want to go instead; you get back priced options, each with a changeId. Nothing is reissued and no money moves — but it does cost us a supplier call, so it carries the booking rate limit rather than the read one. differenceCents is SIGNED: negative means the new itinerary is cheaper and the difference comes back to you.
- Auth
- API key
- Scope
- flights:book
- Rate limit
- BOOKING
- Search quota
- Free
- Idempotency
- Idempotency-Key
Path parameters
Request headers
Request body
FlightChangeOptionsRequestDto — required, sent as application/json.
Responses
200 · FlightChangeOptionsDto
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 POST "$VACABEE_API_URL/v1/flights/orders/<id>/change-options" \
-H "Authorization: Bearer $VACABEE_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"removeSliceId": "sli_0000A",
"add": {
"origin": "BER",
"destination": "LIS",
"departureDate": "2026-10-04"
}
}'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.flights.changeOptions(…);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

