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.

Run with Naftiko Expedia GroupManage Booking

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

expedia-rapid-manage-booking.yaml Raw ↑
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: $.