Expedia Group · Capability
Expedia Group Rapid API — Manage Booking
Expedia Group Rapid API — Manage Booking. 6 operations. Lead operation: Expedia Group Search for and retrieve Bookings with Affiliate Reference Id. Self-contained Naftiko capability covering one Expedia Group business surface.
What You Can Do
GET
Getreservation
— Expedia Group Search for and retrieve Bookings with Affiliate Reference Id
/v1/itineraries
GET
Getreservationbyitineraryid
— Expedia Group Retrieve Booking
/v1/itineraries/{itinerary-id}
DELETE
Deleteheldbooking
— Expedia Group Cancel Held Booking
/v1/itineraries/{itinerary-id}
PUT
Changeroomdetails
— Expedia Group Change details of a room.
/v1/itineraries/{itinerary-id}/rooms/{room-id}
DELETE
Deleteroom
— Expedia Group Cancel a room.
/v1/itineraries/{itinerary-id}/rooms/{room-id}
PUT
Commitchange
— Expedia Group Commit a change of itinerary that may require additional payment or refund.
/v1/itineraries/{itinerary-id}/rooms/{room-id}/pricing
MCP Tools
expedia-group-search-and-retrieve
Expedia Group Search for and retrieve Bookings with Affiliate Reference Id
read-only
idempotent
expedia-group-retrieve-booking
Expedia Group Retrieve Booking
read-only
idempotent
expedia-group-cancel-held-booking
Expedia Group Cancel Held Booking
idempotent
expedia-group-change-details-room
Expedia Group Change details of a room.
idempotent
expedia-group-cancel-room
Expedia Group Cancel a room.
idempotent
expedia-group-commit-change-itinerary
Expedia Group Commit a change of itinerary that may require additional payment or refund.
idempotent
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: Expedia Group Rapid API — Manage Booking
description: 'Expedia Group Rapid API — Manage Booking. 6 operations. Lead operation: Expedia Group Search for and retrieve
Bookings with Affiliate Reference Id. Self-contained Naftiko capability covering one Expedia Group business surface.'
tags:
- Expedia Group
- Manage Booking
created: '2026-05-19'
modified: '2026-05-19'
binds:
- namespace: env
keys:
EXPEDIA_GROUP_API_KEY: EXPEDIA_GROUP_API_KEY
capability:
consumes:
- type: http
namespace: expedia-rapid-manage-booking
baseUri: https://test.ean.com/v3
description: Expedia Group Rapid API — Manage Booking business capability. Self-contained, no shared references.
resources:
- name: itineraries
path: /itineraries
operations:
- name: getreservation
method: GET
description: Expedia Group Search for and retrieve Bookings with Affiliate Reference Id
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: Accept
in: header
type: string
description: Specifies the response format that the client would like to receive back. This must be `application/json`.
required: true
- name: Accept-Encoding
in: header
type: string
description: Specifies the response encoding that the client would like to receive back. This must be `gzip`.
required: true
- name: Customer-Ip
in: header
type: string
description: IP address of the customer, as captured by your integration.<br>
required: true
- name: User-Agent
in: header
type: string
description: The `User-Agent` header string from the customer's request, as captured by your integration. If you
are building an application then the `User-Agent` value shou
required: true
- name: Customer-Session-Id
in: header
type: string
description: Insert your own unique value for each user session, beginning with the first API call.
- name: Test
in: header
type: string
description: The retrieve call has a test header that can be used to return set responses with the following keywords:<br>
- name: affiliate_reference_id
in: query
type: string
description: The affilliate reference id value. This field supports a maximum of 28 characters.
required: true
- name: email
in: query
type: string
description: Email associated with the booking. Special characters in the local part or domain should be encoded.<br>
required: true
- name: include
in: query
type: array
description: Options for which information to return in the response. The value must be lower case.
- name: itineraries-itinerary_id
path: /itineraries/{itinerary_id}
operations:
- name: getreservationbyitineraryid
method: GET
description: Expedia Group Retrieve Booking
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: Accept
in: header
type: string
description: Specifies the response format that the client would like to receive back. This must be `application/json`.
required: true
- name: Accept-Encoding
in: header
type: string
description: Specifies the response encoding that the client would like to receive back. This must be `gzip`.
required: true
- name: Customer-Ip
in: header
type: string
description: IP address of the customer, as captured by your integration.<br>
required: true
- name: Customer-Session-Id
in: header
type: string
description: Insert your own unique value for each user session, beginning with the first API call.
- name: User-Agent
in: header
type: string
description: The `User-Agent` header string from the customer's request, as captured by your integration. If you
are building an application then the `User-Agent` value shou
required: true
- name: Test
in: header
type: string
description: 'The retrieve call has a test header that can be used to return set responses. Passing standard in
the Test header will retrieve a test booking, and passing any '
- name: itinerary_id
in: path
type: string
description: This parameter is used only to prefix the token value - no ID value is used.<br>
required: true
- name: token
in: query
type: string
description: Provided as part of the link object and used to maintain state across calls. This simplifies each subsequent
call by limiting the amount of information required
- name: email
in: query
type: string
description: Email associated with the booking. Special characters in the local part or domain should be encoded.
(Email is required if the token is not provided the request
- name: include
in: query
type: array
description: Options for which information to return in the response. The value must be lower case.
- name: deleteheldbooking
method: DELETE
description: Expedia Group Cancel Held Booking
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: Accept
in: header
type: string
description: Specifies the response format that the client would like to receive back. This must be `application/json`.
required: true
- name: Accept-Encoding
in: header
type: string
description: Specifies the response encoding that the client would like to receive back. This must be `gzip`.
required: true
- name: Customer-Ip
in: header
type: string
description: IP address of the customer, as captured by your integration.<br>
required: true
- name: Customer-Session-Id
in: header
type: string
description: Insert your own unique value for each user session, beginning with the first API call.
- name: User-Agent
in: header
type: string
description: The `User-Agent` header string from the customer's request, as captured by your integration. If you
are building an application then the `User-Agent` value shou
required: true
- name: Test
in: header
type: string
description: The cancel call has a test header that can be used to return set responses with the following keywords:<br>
- name: itinerary_id
in: path
type: string
description: This parameter is used only to prefix the token value - no ID value is used.<br>
required: true
- name: token
in: query
type: string
description: Provided as part of the link object and used to maintain state across calls. This simplifies each subsequent
call by limiting the amount of information required
required: true
- name: itineraries-itinerary_id-rooms-room_id
path: /itineraries/{itinerary_id}/rooms/{room_id}
operations:
- name: changeroomdetails
method: PUT
description: Expedia Group Change details of a room.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: Accept
in: header
type: string
description: Specifies the response format that the client would like to receive back. This must be `application/json`.
required: true
- name: Accept-Encoding
in: header
type: string
description: Specifies the response encoding that the client would like to receive back. This must be `gzip`.
required: true
- name: Content-Type
in: header
type: string
description: This parameter is to specify what format the request body is in. The only supported value is application/json.
required: true
- name: Customer-Ip
in: header
type: string
description: IP address of the customer, as captured by your integration.<br>
required: true
- name: Customer-Session-Id
in: header
type: string
description: Insert your own unique value for each user session, beginning with the first API call.
- name: User-Agent
in: header
type: string
description: The `User-Agent` header string from the customer's request, as captured by your integration. If you
are building an application then the `User-Agent` value shou
required: true
- name: Test
in: header
type: string
description: The change call has a test header that can be used to return set responses with the following keywords:<br>
- name: itinerary_id
in: path
type: string
description: This parameter is used only to prefix the token value - no ID value is used.<br>
required: true
- name: room_id
in: path
type: string
description: Room ID of a property.<br>
required: true
- name: token
in: query
type: string
description: Provided as part of the link object and used to maintain state across calls. This simplifies each subsequent
call by limiting the amount of information required
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: deleteroom
method: DELETE
description: Expedia Group Cancel a room.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: Accept
in: header
type: string
description: Specifies the response format that the client would like to receive back. This must be `application/json`.
required: true
- name: Accept-Encoding
in: header
type: string
description: Specifies the response encoding that the client would like to receive back. This must be `gzip`.
required: true
- name: Customer-Ip
in: header
type: string
description: IP address of the customer, as captured by your integration.<br>
required: true
- name: Customer-Session-Id
in: header
type: string
description: Insert your own unique value for each user session, beginning with the first API call.
- name: User-Agent
in: header
type: string
description: The `User-Agent` header string from the customer's request, as captured by your integration. If you
are building an application then the `User-Agent` value shou
required: true
- name: Test
in: header
type: string
description: The cancel call has a test header that can be used to return set responses with the following keywords:<br>
- name: itinerary_id
in: path
type: string
description: This parameter is used only to prefix the token value - no ID value is used.<br>
required: true
- name: room_id
in: path
type: string
description: Room ID of a property.<br>
required: true
- name: token
in: query
type: string
description: Provided as part of the link object and used to maintain state across calls. This simplifies each subsequent
call by limiting the amount of information required
required: true
- name: itineraries-itinerary_id-rooms-room_id-pricing
path: /itineraries/{itinerary_id}/rooms/{room_id}/pricing
operations:
- name: commitchange
method: PUT
description: Expedia Group Commit a change of itinerary that may require additional payment or refund.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: Accept
in: header
type: string
description: Specifies the response format that the client would like to receive back. This must be `application/json`.
required: true
- name: Accept-Encoding
in: header
type: string
description: Specifies the response encoding that the client would like to receive back. This must be `gzip`.
required: true
- name: Authorization
in: header
type: string
description: The custom generated authentication header. Refer to our [signature authentication](https://developer.expediapartnersolutions.com/reference/signature-authentica
required: true
- name: Content-Type
in: header
type: string
description: This parameter is to specify what format the request body is in. The only supported value is application/json.
required: true
- name: Customer-Ip
in: header
type: string
description: IP address of the customer, as captured by your integration. Send IPV4 addresses only.<br>
required: true
- name: Customer-Session-Id
in: header
type: string
description: Insert your own unique value for each user session, beginning with the first API call.
- name: User-Agent
in: header
type: string
description: The `User-Agent` header string from the customer's request, as captured by your integration. If you
are building an application then the `User-Agent` value shou
required: true
- name: Test
in: header
type: string
description: The change call has a test header that can be used to return set responses with the following keywords:<br>
- name: itinerary_id
in: path
type: string
description: This parameter is used only to prefix the token value - no ID value is used.<br>
required: true
- name: room_id
in: path
type: string
description: Room ID of a property.<br>
required: true
- name: token
in: query
type: string
description: Provided as part of the link object and used to maintain state across calls. This simplifies each subsequent
call by limiting the amount of information required
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: false
authentication:
type: apikey
key: Authorization
value: '{{env.EXPEDIA_GROUP_API_KEY}}'
placement: header
exposes:
- type: rest
namespace: expedia-rapid-manage-booking-rest
port: 8080
description: REST adapter for Expedia Group Rapid API — Manage Booking. One Spectral-compliant resource per consumed operation,
prefixed with /v1.
resources:
- path: /v1/itineraries
name: itineraries
description: REST surface for itineraries.
operations:
- method: GET
name: getreservation
description: Expedia Group Search for and retrieve Bookings with Affiliate Reference Id
call: expedia-rapid-manage-booking.getreservation
with:
Accept: rest.Accept
Accept-Encoding: rest.Accept-Encoding
Customer-Ip: rest.Customer-Ip
User-Agent: rest.User-Agent
Customer-Session-Id: rest.Customer-Session-Id
Test: rest.Test
affiliate_reference_id: rest.affiliate_reference_id
email: rest.email
include: rest.include
outputParameters:
- type: object
mapping: $.
- path: /v1/itineraries/{itinerary-id}
name: itineraries-itinerary-id
description: REST surface for itineraries-itinerary_id.
operations:
- method: GET
name: getreservationbyitineraryid
description: Expedia Group Retrieve Booking
call: expedia-rapid-manage-booking.getreservationbyitineraryid
with:
Accept: rest.Accept
Accept-Encoding: rest.Accept-Encoding
Customer-Ip: rest.Customer-Ip
Customer-Session-Id: rest.Customer-Session-Id
User-Agent: rest.User-Agent
Test: rest.Test
itinerary_id: rest.itinerary_id
token: rest.token
email: rest.email
include: rest.include
outputParameters:
- type: object
mapping: $.
- method: DELETE
name: deleteheldbooking
description: Expedia Group Cancel Held Booking
call: expedia-rapid-manage-booking.deleteheldbooking
with:
Accept: rest.Accept
Accept-Encoding: rest.Accept-Encoding
Customer-Ip: rest.Customer-Ip
Customer-Session-Id: rest.Customer-Session-Id
User-Agent: rest.User-Agent
Test: rest.Test
itinerary_id: rest.itinerary_id
token: rest.token
outputParameters:
- type: object
mapping: $.
- path: /v1/itineraries/{itinerary-id}/rooms/{room-id}
name: itineraries-itinerary-id-rooms-room-id
description: REST surface for itineraries-itinerary_id-rooms-room_id.
operations:
- method: PUT
name: changeroomdetails
description: Expedia Group Change details of a room.
call: expedia-rapid-manage-booking.changeroomdetails
with:
Accept: rest.Accept
Accept-Encoding: rest.Accept-Encoding
Content-Type: rest.Content-Type
Customer-Ip: rest.Customer-Ip
Customer-Session-Id: rest.Customer-Session-Id
User-Agent: rest.User-Agent
Test: rest.Test
itinerary_id: rest.itinerary_id
room_id: rest.room_id
token: rest.token
body: rest.body
outputParameters:
- type: object
mapping: $.
- method: DELETE
name: deleteroom
description: Expedia Group Cancel a room.
call: expedia-rapid-manage-booking.deleteroom
with:
Accept: rest.Accept
Accept-Encoding: rest.Accept-Encoding
Customer-Ip: rest.Customer-Ip
Customer-Session-Id: rest.Customer-Session-Id
User-Agent: rest.User-Agent
Test: rest.Test
itinerary_id: rest.itinerary_id
room_id: rest.room_id
token: rest.token
outputParameters:
- type: object
mapping: $.
- path: /v1/itineraries/{itinerary-id}/rooms/{room-id}/pricing
name: itineraries-itinerary-id-rooms-room-id-pricing
description: REST surface for itineraries-itinerary_id-rooms-room_id-pricing.
operations:
- method: PUT
name: commitchange
description: Expedia Group Commit a change of itinerary that may require additional payment or refund.
call: expedia-rapid-manage-booking.commitchange
with:
Accept: rest.Accept
Accept-Encoding: rest.Accept-Encoding
Authorization: rest.Authorization
Content-Type: rest.Content-Type
Customer-Ip: rest.Customer-Ip
Customer-Session-Id: rest.Customer-Session-Id
User-Agent: rest.User-Agent
Test: rest.Test
itinerary_id: rest.itinerary_id
room_id: rest.room_id
token: rest.token
body: rest.body
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: expedia-rapid-manage-booking-mcp
port: 9090
transport: http
description: MCP adapter for Expedia Group Rapid API — Manage Booking. One tool per consumed operation, routed inline
through this capability's consumes block.
tools:
- name: expedia-group-search-and-retrieve
description: Expedia Group Search for and retrieve Bookings with Affiliate Reference Id
hints:
readOnly: true
destructive: false
idempotent: true
call: expedia-rapid-manage-booking.getreservation
with:
Accept: tools.Accept
Accept-Encoding: tools.Accept-Encoding
Customer-Ip: tools.Customer-Ip
User-Agent: tools.User-Agent
Customer-Session-Id: tools.Customer-Session-Id
Test: tools.Test
affiliate_reference_id: tools.affiliate_reference_id
email: tools.email
include: tools.include
outputParameters:
- type: object
mapping: $.
- name: expedia-group-retrieve-booking
description: Expedia Group Retrieve Booking
hints:
readOnly: true
destructive: false
idempotent: true
call: expedia-rapid-manage-booking.getreservationbyitineraryid
with:
Accept: tools.Accept
Accept-Encoding: tools.Accept-Encoding
Customer-Ip: tools.Customer-Ip
Customer-Session-Id: tools.Customer-Session-Id
User-Agent: tools.User-Agent
Test: tools.Test
itinerary_id: tools.itinerary_id
token: tools.token
email: tools.email
include: tools.include
outputParameters:
- type: object
mapping: $.
- name: expedia-group-cancel-held-booking
description: Expedia Group Cancel Held Booking
hints:
readOnly: false
destructive: true
idempotent: true
call: expedia-rapid-manage-booking.deleteheldbooking
with:
Accept: tools.Accept
Accept-Encoding: tools.Accept-Encoding
Customer-Ip: tools.Customer-Ip
Customer-Session-Id: tools.Customer-Session-Id
User-Agent: tools.User-Agent
Test: tools.Test
itinerary_id: tools.itinerary_id
token: tools.token
outputParameters:
- type: object
mapping: $.
- name: expedia-group-change-details-room
description: Expedia Group Change details of a room.
hints:
readOnly: false
destructive: false
idempotent: true
call: expedia-rapid-manage-booking.changeroomdetails
with:
Accept: tools.Accept
Accept-Encoding: tools.Accept-Encoding
Content-Type: tools.Content-Type
Customer-Ip: tools.Customer-Ip
Customer-Session-Id: tools.Customer-Session-Id
User-Agent: tools.User-Agent
Test: tools.Test
itinerary_id: tools.itinerary_id
room_id: tools.room_id
token: tools.token
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: expedia-group-cancel-room
description: Expedia Group Cancel a room.
hints:
readOnly: false
destructive: true
idempotent: true
call: expedia-rapid-manage-booking.deleteroom
with:
Accept: tools.Accept
Accept-Encoding: tools.Accept-Encoding
Customer-Ip: tools.Customer-Ip
Customer-Session-Id: tools.Customer-Session-Id
User-Agent: tools.User-Agent
Test: tools.Test
itinerary_id: tools.itinerary_id
room_id: tools.room_id
token: tools.token
outputParameters:
- type: object
mapping: $.
- name: expedia-group-commit-change-itinerary
description: Expedia Group Commit a change of itinerary that may require additional payment or refund.
hints:
readOnly: false
destructive: false
idempotent: true
call: expedia-rapid-manage-booking.commitchange
with:
Accept: tools.Accept
Accept-Encoding: tools.Accept-Encoding
Authorization: tools.Authorization
Content-Type: tools.Content-Type
Customer-Ip: tools.Customer-Ip
Customer-Session-Id: tools.Customer-Session-Id
User-Agent: tools.User-Agent
Test: tools.Test
itinerary_id: tools.itinerary_id
room_id: tools.room_id
token: tools.token
body: tools.body
outputParameters:
- type: object
mapping: $.