Expedia Group Room Type API

Manage room types

Operations 5

GET /properties/{propertyId}/roomTypes Expedia Group Obtain a list of room types for a given property #
POST /properties/{propertyId}/roomTypes Expedia Group Creates a new room type #
GET /properties/{propertyId}/roomTypes/{roomTypeId} Expedia Group Read a single room type from a given property #
PUT /properties/{propertyId}/roomTypes/{roomTypeId} Expedia Group Modify an existing room type #
PATCH /properties/{propertyId}/roomTypes/{roomTypeId} Expedia Group Patch an existing room type #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/expedia-group-room-type-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

expedia-group-room-type-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Expedia Group Product Room Type API
  description: 'The Product API will enable Expedia lodging partners to read, create and edit room types and rate plans via APIs, without having to use Partner Central or contact their market manager. </br><br/>To start experimenting, please use your existing EQC credentials and properties.

    '
  contact:
    name: Lodging Connectivity
    url: https://expediaconnectivity.com/developer
    email: eqcss@expedia.com
  version: '2.0'
servers:
- url: https://services.expediapartnercentral.com/
tags:
- name: Room Type
  description: Manage room types
paths:
  /properties/{propertyId}/roomTypes:
    get:
      tags:
      - Room Type
      summary: Expedia Group Obtain a list of room types for a given property
      operationId: getRoomTypes
      parameters:
      - name: propertyId
        in: path
        description: Expedia Property ID
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/vnd.expedia.eps.product-v3+json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RoomType'
        default:
          description: Error
          content:
            application/vnd.expedia.eps.product-v3+json:
              schema:
                $ref: '#/components/schemas/Errors'
      security:
      - Basic: []
    post:
      tags:
      - Room Type
      summary: Expedia Group Creates a new room type
      operationId: createRoomType
      parameters:
      - name: propertyId
        in: path
        description: Expedia Property ID
        required: true
        schema:
          type: string
      requestBody:
        description: roomType
        content:
          application/vnd.expedia.eps.product-v3+json:
            schema:
              $ref: '#/components/schemas/RoomType'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/vnd.expedia.eps.product-v3+json:
              schema:
                $ref: '#/components/schemas/RoomType'
        default:
          description: Error
          content:
            application/vnd.expedia.eps.product-v3+json:
              schema:
                $ref: '#/components/schemas/Errors'
      security:
      - Basic: []
      x-codegen-request-body-name: roomType
  /properties/{propertyId}/roomTypes/{roomTypeId}:
    get:
      tags:
      - Room Type
      summary: Expedia Group Read a single room type from a given property
      operationId: getRoomType
      parameters:
      - name: propertyId
        in: path
        description: Expedia Property ID
        required: true
        schema:
          type: string
      - name: roomTypeId
        in: path
        description: Room type resource ID
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/vnd.expedia.eps.product-v3+json:
              schema:
                $ref: '#/components/schemas/RoomType'
        default:
          description: Error
          content:
            application/vnd.expedia.eps.product-v3+json:
              schema:
                $ref: '#/components/schemas/Errors'
      security:
      - Basic: []
    put:
      tags:
      - Room Type
      summary: Expedia Group Modify an existing room type
      operationId: updateRoomType
      parameters:
      - name: propertyId
        in: path
        description: Expedia Property ID
        required: true
        schema:
          type: string
      - name: roomTypeId
        in: path
        description: Room type resource ID
        required: true
        schema:
          type: string
      requestBody:
        description: roomType
        content:
          application/vnd.expedia.eps.product-v3+json:
            schema:
              $ref: '#/components/schemas/RoomType'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/vnd.expedia.eps.product-v3+json:
              schema:
                $ref: '#/components/schemas/RoomType'
        default:
          description: Error
          content:
            application/vnd.expedia.eps.product-v3+json:
              schema:
                $ref: '#/components/schemas/Errors'
      security:
      - Basic: []
      x-codegen-request-body-name: roomType
    patch:
      tags:
      - Room Type
      summary: Expedia Group Patch an existing room type
      operationId: patchRoomType
      parameters:
      - name: propertyId
        in: path
        description: Expedia Property Id
        required: true
        schema:
          type: string
      - name: roomTypeId
        in: path
        description: Room type resource ID
        required: true
        schema:
          type: string
      requestBody:
        description: JSON message of partially updated room type
        content:
          application/vnd.expedia.eps.product-v3+json:
            schema:
              $ref: '#/components/schemas/RoomType'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/vnd.expedia.eps.product-v3+json:
              schema:
                $ref: '#/components/schemas/RoomType'
        default:
          description: Error
          content:
            application/vnd.expedia.eps.product-v3+json:
              schema:
                $ref: '#/components/schemas/Errors'
      security:
      - Basic: []
      x-codegen-request-body-name: roomTypeBody
components:
  schemas:
    Errors:
      type: object
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ApiError'
    Surcharge:
      title: Surcharge
      required:
      - type
      type: object
      properties:
        amount:
          type: number
          description: If the surcharge type is different than 'Free', must be greater than 0. Otherwise, must not be defined.
          format: double
        type:
          type: string
          description: The type of surcharge applied to the extra bed.
          enum:
          - Free
          - Per Day
          - Per Night
          - Per Week
          - Per Stay
          - Unknown
    ExtraBed:
      title: ExtraBed
      type: object
      properties:
        quantity:
          type: integer
          format: int32
        size:
          type: string
          enum:
          - Crib
          - Full
          - King
          - Queen
          - Twin
          - Twin Xl
        surcharge:
          $ref: '#/components/schemas/Surcharge'
        type:
          type: string
          enum:
          - Crib
          - Day Bed
          - Rollaway Bed
          - Sofa Bed
    RegulatoryRecords:
      title: RegulatoryRecords
      type: object
      properties:
        category:
          type: string
          description: Regulatory Category
          enum:
          - BED_AND_BREAKFAST
          - EVENT
          - HOTEL
          - HOTEL_OR_BNB
          - HOTEL_RYOKAN
          - LONG_TERM_ONLY
          - MINPAKU
          - NO_LICENSE
          - PRIMARY_HOME
          - PRIMARY_HOME_WITH_EXCEPTION
          - PRIMARY_OR_SECONDARY
          - RYOKAN
          - SECONDARY_HOME
          - SHORT_TERM_RENTAL
          - SIMPLE_LODGING
          - SPECIAL
          - VACATION_RENTAL
        records:
          type: array
          description: Registration Records
          items:
            $ref: '#/components/schemas/RegistrationRecord'
    NameAttributes:
      title: NameAttributes
      required:
      - typeOfRoom
      type: object
      properties:
        accessibility:
          type: boolean
          description: Attribute that determines if room is considered wheelchair accessible
        area:
          type: string
          description: Attributed used to highlight the location of the room
        bedroomDetails:
          type: string
          description: Attribute that describes details of the bedroom used to compose the name of the room
        customLabel:
          type: string
          description: Free text that can be appended to the name generated by the attributes. Use of this attribute is discouraged (see full spec). Max 37 characters
        featuredAmenity:
          type: string
          description: Attribute used to highlight a feature of the room on its name
        includeBedType:
          type: boolean
          description: Attribute that determines whether or not to include bed type on the room name
        includeSmokingPref:
          type: boolean
          description: Attribute that determines if room has smoking preference
        roomClass:
          type: string
          description: Attribute that described the class of room, which is used to compose the name
        typeOfRoom:
          type: string
          description: Attribute that determines the type of room, which is used to compose the name
        view:
          type: string
          description: Attribute that gives additional information about the view of the room
    Links:
      title: Links
      type: object
      properties:
        self:
          $ref: '#/components/schemas/Link'
    RoomType:
      title: RoomType
      required:
      - ageCategories
      - bedrooms
      - floorSize
      - maxOccupancy
      - name
      - partnerCode
      - smokingPreferences
      type: object
      properties:
        resourceId:
          type: integer
          description: Expedia ID for this resource. Generated when created. Generated on POST, required on PUT
          format: int64
        partnerCode:
          type: string
          description: Partner room type code/identifier. Max. 40 characters
        status:
          type: string
          description: 'Room type status is derived from the rate plans under the room type: if at least 1 rate plan is active, the room type status will be active. If all rate plans are inactive, then the room type becomes inactive as well.'
          enum:
          - Active
          - Inactive
        name:
          $ref: '#/components/schemas/RoomTypeName'
        ageCategories:
          type: array
          description: Defines the different age categories supported by the room type. At the very least, the 'Adult' category must be defined.
          items:
            $ref: '#/components/schemas/AgeCategory'
        bedrooms:
          type: array
          description: Defines list of bedrooms the room type have
          items:
            $ref: '#/components/schemas/Bedroom'
        extraBedding:
          type: array
          description: Defines the configuration (type, size and quality) of any extra beds the room type may have.
          items:
            $ref: '#/components/schemas/ExtraBed'
        floorSize:
          $ref: '#/components/schemas/Size'
        livingRooms:
          type: array
          description: Defines list of living rooms the room type have
          items:
            $ref: '#/components/schemas/LivingRoom'
        maxOccupancy:
          $ref: '#/components/schemas/Occupancy'
        regulatoryRecords:
          $ref: '#/components/schemas/RegulatoryRecords'
        smokingPreferences:
          type: array
          description: Used to define whether the room type is smoking, nonsmoking, or if both options are available on request. If a single smoking option is provided, then the room is, by default, only available in this configuration. If both options are provided, then a choice will be offered to the customer at the time he makes a reservation, and the customer preference will be sent in electronic booking messages to the partner
          items:
            type: string
            enum:
            - Smoking
            - Non-Smoking
        views:
          type: array
          description: Used to indicate the views available from this room.
          items:
            type: string
            enum:
            - Bay View
            - Beach View
            - Canal View
            - City View
            - Courtyard View
            - Desert View
            - Garden View
            - Golf View
            - Harbor View
            - Hill View
            - Lagoon View
            - Lake View
            - Partial Lake View
            - Marina View
            - Mountain View
            - Ocean View
            - Partial Ocean View
            - Park View
            - Pool View
            - Resort View
            - River View
            - Sea View
            - Partial Sea View
            - Valley View
            - Vineyard View
            - Water View
        wheelchairAccessibility:
          type: boolean
          description: Used to indicate whether the room is configured to be wheelchair accessible or not.
        _links:
          $ref: '#/components/schemas/Links'
    BedOption:
      title: BedOption
      type: object
      properties:
        quantity:
          type: integer
          format: int32
        size:
          type: string
          enum:
          - Crib
          - Full
          - King
          - Queen
          - Twin
          - Twin Xl
        type:
          type: string
          enum:
          - Bunk Bed
          - Full Bed
          - Futon
          - King Bed
          - Murphy Bed
          - Queen Bed
          - Sofa Bed
          - Trundle Bed
          - Twin Bed
          - Twin Xl Bed
          - Water Bed
    RegistrationRecord:
      title: RegistrationRecord
      required:
      - registrationNumber
      type: object
      properties:
        expiry:
          type: string
          description: Registration Number Expiry. Format is YYYY-MM-DD.
        registrationNumber:
          type: string
          description: Registration Number
        registrationNumberType:
          type: string
          description: Registration Number Type
          enum:
          - BUSINESS_LICENSE_NUMBER
          - BUSINESS_TAX_ID
          - HOTEL_LICENSE
          - LICENSE_ID
          - LICENSE_NUMBER
          - OPERATOR_LICENSE_ID
          - PARTIAL_TAX_ID
          - PERMIT_NUMBER
          - PLANNING_NUMBER
          - REGISTRATION_NUMBER
          - RESORT_TAX_ID
          - SHORT_TERM_RENTAL_LICENSE
          - TOURIST_DEVELOPMENT_TAX_ACCOUNT_NUMBER
    Bedroom:
      title: Bedroom
      required:
      - bedding
      - count
      type: object
      properties:
        bedding:
          type: array
          items:
            $ref: '#/components/schemas/BedGroup'
        count:
          type: integer
          format: int32
    Size:
      title: Size
      required:
      - squareFeet
      - squareMeters
      type: object
      properties:
        squareFeet:
          type: integer
          description: Room size in square feet. No decimals.
          format: int32
        squareMeters:
          type: integer
          description: Room size in square meters. No decimals.
          format: int32
    LivingRoom:
      title: LivingRoom
      type: object
      properties:
        bedding:
          type: array
          items:
            $ref: '#/components/schemas/BedGroup'
        count:
          type: integer
          format: int32
    Occupancy:
      title: Occupancy
      type: object
      properties:
        adults:
          type: integer
          format: int32
        children:
          type: integer
          format: int32
        total:
          type: integer
          format: int32
    ApiError:
      type: object
      properties:
        code:
          type: integer
          format: int32
        message:
          type: string
    RoomTypeName:
      title: RoomTypeName
      required:
      - attributes
      - value
      type: object
      properties:
        attributes:
          $ref: '#/components/schemas/NameAttributes'
        value:
          type: string
          description: The custom name provided for the room. Max. 255 characters. Not to be used in conjunction with the attributes
    BedGroup:
      title: BedGroup
      type: object
      properties:
        option:
          type: array
          description: List of bedding option
          items:
            $ref: '#/components/schemas/BedOption'
    AgeCategory:
      title: AgeCategory
      type: object
      properties:
        category:
          type: string
          description: The age category whose occupancy is being defined
          enum:
          - Adult
          - ChildAgeA
          - ChildAgeB
          - ChildAgeC
          - ChildAgeD
          - Infant
        minAge:
          type: integer
          description: Minimum age allowed for the category. Min 0, max 99
          format: int32
    Link:
      title: Link
      type: object
      properties:
        href:
          type: string
          description: The link's URL.
  securitySchemes:
    Basic:
      type: http
      scheme: basic