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.
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:
- 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.
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.
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.
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.
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:
- name: itinerary_id in: path type: string description: This parameter is used only to prefix the token value - no ID value is used.
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.
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:
- name: itinerary_id in: path type: string description: This parameter is used only to prefix the token value - no ID value is used.
required: true - name: room_id in: path type: string description: Room ID of a property.
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.
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:
- name: itinerary_id in: path type: string description: This parameter is used only to prefix the token value - no ID value is used.
required: true - name: room_id in: path type: string description: Room ID of a property.
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.
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:
- name: itinerary_id in: path type: string description: This parameter is used only to prefix the token value - no ID value is used.
required: true - name: room_id in: path type: string description: Room ID of a property.
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: $.