Engine Lodging Shopping Service API

The LodgingShoppingService API from Engine — 2 operation(s) for lodgingshoppingservice.

Operations 2

POST /shop/v1/lodging/availability Search for Availability at a given Property. #
POST /shop/v1/lodging/best-offers Search for the Best Offer available for a set of Properties. #

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/hotel-engine-lodgingshoppingservice-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 email required.

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

OpenAPI Specification

hotel-engine-lodgingshoppingservice-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Omni, Powered by Engine Lodging Shopping Service API
  description: Definitions for the Omni travel API.
  version: 2.4.0
  contact:
    name: Omni API Support
    url: https://omni.engine.com/
  license:
    name: Apache License Version 2.0
    url: https://github.com/engine-public/engine-partner-api/blob/main/LICENSE
servers:
- url: https://partner-api.engine.com
tags:
- name: LodgingShoppingService
paths:
  /shop/v1/lodging/availability:
    post:
      summary: Search for Availability at a given Property.
      description: Finds availability for a given property, broken down by individual room type.  RoomGroups describe the various rooms available to book.  Offers describe the cheapest [OfferSummary] along various dimensions like refundability and loyalty eligible within the [RoomGroup].
      operationId: LodgingShoppingService_FindAvailability
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1FindAvailabilityResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      tags:
      - LodgingShoppingService
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1FindAvailabilityRequest'
        required: true
  /shop/v1/lodging/best-offers:
    post:
      summary: Search for the Best Offer available for a set of Properties.
      description: Identifies a set of candidate properties that match the provided criteria.  Once the appropriate properties have been identified, the Best Offer available for each property is selected and augmented with the details of other available Offers.
      operationId: LodgingShoppingService_FindBestOffers
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1FindBestOffersResponse'
        '400':
          description: Error details for gRPC Status of INVALID_ARGUMENT(3).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1FindBestOffersError'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      tags:
      - LodgingShoppingService
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1FindBestOffersRequest'
        required: true
components:
  schemas:
    v1RoomDescription:
      type: object
      properties:
        title:
          type: string
          description: 'The title of a room.

            For example, "Standard 1 King Bed", or "Suite 1 King Bed", "The Canary Suite".'
        description:
          type: string
          title: 'A textual marketing description of the room.

            For example, "SKYLINE VIEW KING ROOM -CITY OR RIVER VIEW 1 KING -430 SQF"'
        beds:
          type: array
          items:
            type: object
            $ref: '#/components/schemas/v1Bedding'
          description: The available bedding for the room.
        photos:
          type: array
          items:
            type: string
          description: URIs to photos of this room.
        amenities:
          type: array
          items:
            type: object
            $ref: '#/components/schemas/lodgingRoomAmenity'
          description: A list of amenities that are available in the room.
      description: Generalized details of the room to which an Offer applies.
      title: Shop_Lodging_RoomDescription_v1
    v1FindBestOffersRequestCriteria:
      type: object
      properties:
        pointAndRadius:
          $ref: '#/components/schemas/shoplodgingservicev1RadiusSearch'
          description: Check the availability of up to `max_property_candidates` hotels nearest the center of the provided radius.
        propertyId:
          $ref: '#/components/schemas/v1PropertyIdSearch'
          description: Check the availability of properties as identified by the provided Engine Property IDs.
        checkInDate:
          type: string
          title: 'An ISO-8601-compliant date on which you will check in to the property.

            See https://en.wikipedia.org/wiki/ISO_8601#Dates'
          pattern: ^(?<year>[0-9]{4})-(?<month>(?:0[1-9])|(?:1[0-2]))-(?<day>(?:0[1-9])|(?:[1-2][0-9])|(?:3[0-1]))$
        checkOutDate:
          type: string
          title: 'An ISO-8601-compliant date on which you will check out of the property.

            See https://en.wikipedia.org/wiki/ISO_8601#Dates'
          pattern: ^(?<year>[0-9]{4})-(?<month>(?:0[1-9])|(?:1[0-2]))-(?<day>(?:0[1-9])|(?:[1-2][0-9])|(?:3[0-1]))$
        numRooms:
          type: integer
          format: int32
          default: '1'
          title: 'The number of rooms to book.

            May not exceed 8'
          maximum: 8.0
          minimum: 1.0
        currencyCode:
          type: string
          title: 'The 3-character ISO-4217 alphabetic currency code to be used to convey pricing information.

            https://www.iso.org/iso-4217-currency-codes.html'
          pattern: ^[A-Z]{3}$
        travelers:
          type: array
          items:
            type: object
            $ref: '#/components/schemas/v1AnonymousTraveler'
          description: 'Describes the travelers for whom you are searching.

            Changes to the quantity or age of travelers has an impact on the Offer price.

            Failure to properly identify your travelers may incur additional charges at checkin or cancellation of the booking.'
        salesChannel:
          $ref: '#/components/schemas/v1SalesChannel'
          title: If available, the sales channel for the customer
        maxPropertyCandidates:
          type: integer
          format: int32
          default: '100'
          description: 'The maximum number of properties to be considered for Offers.

            Properties with no availability will count against this limit, but may not be returned if there is no availability.

            May not exceed 250.

            This limit is not honored when Property IDs are provided via [property_ids].'
          maximum: 250.0
          minimum: 1.0
      description: Defines the base criteria used in a "Best Offers" search.
      title: Shop_Lodging_Service_FindBestOffersRequestCriteria_v1
    v1SalesChannel:
      type: string
      enum:
      - SALES_CHANNEL_UNKNOWN
      - SALES_CHANNEL_MOBILE_NATIVE
      - SALES_CHANNEL_MOBILE_WEB
      - SALES_CHANNEL_WEB
      default: SALES_CHANNEL_UNKNOWN
      description: "- SALES_CHANNEL_UNKNOWN: The sales channel cannot be determined.\n - SALES_CHANNEL_MOBILE_NATIVE: The customer is shopping via a mobile application.\n - SALES_CHANNEL_MOBILE_WEB: The customer is shopping via a mobile web browser.\n - SALES_CHANNEL_WEB: The customer is shopping via a web browser on a desktop or laptop computer."
      title: Common_SalesChannel_v1
    v1Conditions:
      type: object
      properties:
        modifyConditions:
          type: array
          items:
            type: object
            $ref: '#/components/schemas/v1Condition'
          description: 'Conditions that apply to modification of a [BookingDetails].

            If no modify_conditions exist, the [BookingDetails] may not be modified.'
        cancelConditions:
          type: array
          items:
            type: object
            $ref: '#/components/schemas/v1Condition'
          description: 'Conditions that apply to cancellation of a [BookingDetails].

            If no cancel_conditions exist, the [BookingDetails] may not be canceled.'
      description: Conditions that describe the availability, penalty, and timing constraints on modification to a booked item.
      title: Common_Conditions_v1
    lodgingRoomAmenity:
      type: object
      properties:
        amenityName:
          type: string
          title: 'Amenity name describing room features and services.

            Examples: "Housekeeping on request", "Free WiFi"'
      description: Room amenity containing name for room features and services.
      title: Content_RoomAmenity_v1
    v1BestOffer:
      type: object
      properties:
        continuationToken:
          type: string
          title: 'An opaque token that may be used to see all available Offers for the property, or to book the offer directly.

            See [LodgingShoppingService.FindAvailability]

            See [LodgingBookingService.ConfirmOffer]'
        bestOffer:
          $ref: '#/components/schemas/v1OfferSummary'
          description: The specific details of the Best Offer available for a Property.
        isRefundableAvailable:
          type: boolean
          description: True if it is known that at least one refundable Offer is available for the property.
        isLoyaltyAvailable:
          type: boolean
          description: True if it is known that at least one Offer is available that earns loyalty points.
        isFreeParkingAvailable:
          type: boolean
          description: 'True if it is known that at least one Offer is available that has free parking included.

            Please note: this value will be false if it is known that the Property offers free parking to all guests.'
        isFreeBreakfastAvailable:
          type: boolean
          description: 'True if it is known that at least one Offer is available that has free breakfast included.

            Please note: this value will be false if it is known that the Property offers free breakfast to all guests.'
        isLoyaltyMembershipRateAvailable:
          type: boolean
          description: True if it is known that at least one Offer is available that requires a loyalty membership id to book.
      description: 'The details of the Best Offer available for a property given the search criteria and aggregated data about other Offers that are available at the same property.

        A [BestOffer] is not an exhaustive representation of all amenities and options available at a [Property].

        For example, it is possible that a [BestOffer] might indicate no loyalty is available because it cannot be known until full availability has been pulled.

        To retrieve the full availability for a Property, see [LodgingShoppingService.FindAvailability].'
      title: Shop_Lodging_Service_BestOffer_v1
    lodgingProperty:
      type: object
      properties:
        id:
          type: string
          description: The [Engine] identifier for this [Property].
        name:
          type: string
          description: The full name of this [Property].
        physicalAddress:
          $ref: '#/components/schemas/v1PostalAddress'
          description: 'The physical address of this [Property].

            This may differ from the mailing, billing, or other administrative addresses.'
        coordinates:
          $ref: '#/components/schemas/v1GeoPoint'
          description: The geographic location of this [Property].
        heroImageUri:
          type: string
          description: If available, A URI to the image to use as the primary image to identify this [Property].
        description:
          type: string
          description: If available, a brief textual description of this [Property].
        phoneNumber:
          type: string
          title: 'If available, an E.164-compliant primary phone number for this [Property].

            See https://en.wikipedia.org/wiki/E.164'
        emails:
          type: array
          items:
            type: object
            $ref: '#/components/schemas/v1ContactEmail'
          description: 'Contact email addresses for this property.

            May include general contact, billing, or reservation emails.'
        starRating:
          type: string
          title: 'Star rating for this property.

            Represents the official star rating classification system.

            See https://en.wikipedia.org/wiki/Hotel_rating

            Examples: "4", "5", "3.5"'
        amenities:
          type: array
          items:
            type: object
            $ref: '#/components/schemas/lodgingPropertyAmenity'
          title: 'Property amenities for this [Property].

            List of amenity names describing features and services available to guests.

            Examples: "Free WiFi", "Pool", "Fitness Center", "Free Breakfast"'
        mediaItems:
          type: array
          items:
            type: object
            $ref: '#/components/schemas/v1MediaItem'
          description: 'Media items for property gallery.

            Collection of media URIs for detailed property viewing and marketing.'
        catalog:
          $ref: '#/components/schemas/lodgingExternalCatalogIdentifiers'
          description: 'External catalog identifiers for this property.

            Used for integration with external booking systems.'
        checkInTime:
          type: string
          description: Check-in time in local time HH:MM 24-hour format (e.g., "15:00") for the [Property].
        checkOutTime:
          type: string
          description: Check-out time in local time HH:MM 24-hour format (e.g., "11:00") for the [Property].
        loyaltyRewardsProgram:
          $ref: '#/components/schemas/v1LoyaltyRewardsProgram'
          description: The loyalty rewards program associated with the [Property].
        timeZone:
          type: string
          title: 'The time zone for the [Property] in the IANA format.

            See https://www.iana.org/time-zones

            Examples: "America/Denver", "Atlantic/Madeira"'
      description: An individual Lodging location identified by [Engine].
      title: Content_Property_v1
    v1Distance:
      type: object
      properties:
        value:
          type: number
          format: double
          description: The distance quantity.
        unit:
          $ref: '#/components/schemas/v1DistanceUnit'
          description: The unit of distance measurement.
      description: The distance between two geographic points.
      title: Common_Distance_v1
    v1Image:
      type: object
      properties:
        uri:
          type: string
          title: 'The URI of the [Image].

            For example, "https://example.com/image.jpg"'
      description: Represents an [Image] with optional metadata.
      title: Common_Image_v1
    v1AnonymousAdult:
      type: object
      description: An adult traveler whose personal details have not yet been collected.
      title: Common_AnonymousAdult_v1
    v1PerUnitPrice:
      type: object
      properties:
        key:
          type: string
          description: 'A key to distinguish which unit is represented by this price.

            For example, which date, or which passenger.'
        unit:
          type: string
          description: 'The type of unit.

            For example, "night" or "person".'
        price:
          $ref: '#/components/schemas/v1Price'
          description: The cost for this unit.
      description: 'A price representing the cost of a single unit in a multi-unit breakdown.

        For example, price per night.'
      title: Common_PerUnitPrice_v1
    lodgingLodgingAmenityCode:
      type: string
      enum:
      - LODGING_AMENITY_CODE_UNKNOWN
      - LODGING_AMENITY_CODE_AIR_CONDITIONING
      - LODGING_AMENITY_CODE_DINING
      - LODGING_AMENITY_CODE_DRY_CLEANING
      - LODGING_AMENITY_CODE_ELECTRIC_VEHICLE_CHARGING
      - LODGING_AMENITY_CODE_FITNESS_CENTER
      - LODGING_AMENITY_CODE_FREE_AIRPORT_SHUTTLE
      - LODGING_AMENITY_CODE_FREE_BREAKFAST
      - LODGING_AMENITY_CODE_FREE_PARKING
      - LODGING_AMENITY_CODE_FULL_KITCHEN
      - LODGING_AMENITY_CODE_HIGH_SPEED_INTERNET
      - LODGING_AMENITY_CODE_KITCHENETTE
      - LODGING_AMENITY_CODE_MEETING_SPACE
      - LODGING_AMENITY_CODE_PET_FRIENDLY
      - LODGING_AMENITY_CODE_SPA
      - LODGING_AMENITY_CODE_SWIMMING_POOL
      - LODGING_AMENITY_CODE_TRUCK_PARKING
      default: LODGING_AMENITY_CODE_UNKNOWN
      title: Content_LodgingAmenityCode_v1
    v1FindAvailabilityRequest:
      type: object
      properties:
        continuationToken:
          type: string
          description: 'A [BestOffer.continuation_token].

            Passing a continuation_token allows you to continue the shopping flow from a BestOffers search with the necessary search context preserved.'
        singleProperty:
          $ref: '#/components/schemas/v1FindAvailabilityPropertyRequest'
          description: A request to find availability for a [Property] directly, skipping the BestOffers search.
      title: Shop_Lodging_Service_FindAvailabilityRequest_v1
    v1FindAvailabilityResponse:
      type: object
      properties:
        roomGroups:
          type: array
          items:
            type: object
            $ref: '#/components/schemas/v1RoomGroup'
          description: A list of available [OfferSummary], grouped by [RoomDescription].
      description: A response to a [LodgingShoppingService.FindBestOffers] call.
      title: Shop_Lodging_Service_FindAvailabilityResponse_v1
    v1PriceWithPerUnit:
      type: object
      properties:
        price:
          $ref: '#/components/schemas/v1Price'
          description: The total price for the item.
        perUnitPrice:
          type: array
          items:
            type: object
            $ref: '#/components/schemas/v1PerUnitPrice'
          title: The total price broken into per-unit costs
      description: 'The total price, along with a breakdown by a given unit.

        For example, the total stay cost and the per-night cost.'
      title: Common_PriceWithPerUnit_v1
    v1OfferSummary:
      type: object
      properties:
        propertyId:
          type: string
          description: The Engine identifier for the Property to which this Offer belongs.
        description:
          type: string
          description: A textual description of the Offer.
        price:
          $ref: '#/components/schemas/v1PriceWithPerUnit'
          description: 'The pricing details for the Offer.

            This price indicates the amount owed to Engine at the time of booking.

            Refer to [OfferSummary.sell_type] for details on how the offer may be priced to the customer.'
        offerAmenities:
          $ref: '#/components/schemas/v1OfferAmenities'
          description: 'Amenities that may only apply to this Offer.

            For example, some Offers may include parking.'
        conditions:
          $ref: '#/components/schemas/v1Conditions'
          description: The conditions covering refundability and cancellation.
        isLoyaltyEligible:
          type: boolean
          description: If true, this Offer may earn loyalty points.
        isLoyaltyMembershipIdRequired:
          type: boolean
          description: If true, this offer requires a loyalty membership id to book.
        rateData:
          $ref: '#/components/schemas/v1RateData'
          description: Optionally, if this offer represents a negotiated rate specifically configured for your credential, the details of that rate will be included here.
        sellType:
          $ref: '#/components/schemas/v1SellType'
          description: 'The sell type for this offer.

            Defines how the seller is compensated and the pricing guidelines for this offer.

            See [SellType] for details on available model types and their pricing rules.'
      description: A summary of the attributes available to a specific Offer.
      title: Shop_Lodging_OfferSummary_v1
    v1CommissionableModel:
      type: object
      properties:
        commissionValue:
          $ref: '#/components/schemas/v1CurrencyValue'
          description: The commission amount the seller will receive for selling this offer.
      description: 'Details for a commissionable pricing model.

        Under this model, offers must be sold at the exact price quoted by Engine without markup.

        The seller receives a fixed commission amount for each sale.

        This model does not override your agreement with Engine.

        Refer to your agreement or contact your Engine sales support team for questions.'
      title: Common_CommissionableModel_v1
    v1Bedding:
      type: object
      properties:
        count:
          type: integer
          format: int32
          description: The number of this bed type in the room.
        description:
          type: string
          description: 'A textual description of the type of this bed in the room.

            For example, "KING", "QUEEN", or "SLEEPER".'
      description: A description of the quantity and type of beds in the room.
      title: Shop_Lodging_Bedding_v1
    v1MediaItem:
      type: object
      properties:
        image:
          $ref: '#/components/schemas/v1Image'
          title: An [Image] this media item represents
        description:
          type: string
          title: 'A description of this media item

            Example: "A large restaurant"'
        tags:
          type: array
          items:
            type: string
          title: 'Tags categorizing the content of this media item

            Example: ["outdoor", "pool"]'
      description: A media item for visual or marketing context.
      title: Common_MediaItem_v1
    v1AmenityAvailability:
      type: string
      enum:
      - AMENITY_AVAILABILITY_UNKNOWN
      - AMENITY_AVAILABILITY_UNAVAILABLE
      - AMENITY_AVAILABILITY_INCLUDED
      - AMENITY_AVAILABILITY_VIA_VENDOR
      default: AMENITY_AVAILABILITY_UNKNOWN
      description: "Describes the condition of an amenity's inclusion on a [Property], [RoomDescription], [OfferSummary], or [BookingDetails].\n\n - AMENITY_AVAILABILITY_UNKNOWN: The availability of an amenity cannot be confirmed.\n - AMENITY_AVAILABILITY_UNAVAILABLE: The amenity is confirmed to not be available.\n - AMENITY_AVAILABILITY_INCLUDED: The amenity is confirmed to be included.\n - AMENITY_AVAILABILITY_VIA_VENDOR: The amenity is not included, but may be purchased directly from the hotel, airline, car rental vendor, etc.\nFor example, a seat upgrade or breakfast vouchers."
      title: Common_AmenityAvailability_v1
    v1FindBestOffersRequest:
      type: object
      properties:
        criteria:
          $ref: '#/components/schemas/v1FindBestOffersRequestCriteria'
          description: The criteria to be used to identify and filter Properties and Offers.
        includePropertiesWithNoAvailability:
          type: boolean
          default: 'false'
          description: 'By default, only Properties that have rooms matching your criteria will be returned.

            This differs from [LodgingShoppingService.FindBestOffersStreaming] which returns all considered properties.

            You may wish to set this to true if you are building a shopping experience that indicates availability may differ with different criteria, such as dates, but streaming is not viable.'
        sortMode:
          $ref: '#/components/schemas/v1FindBestOffersSortMode'
          description: The order in which the results will be returned.
      title: Shop_Lodging_Service_FindBestOffersRequest_v1
    v1OfferAmenities:
      type: object
      properties:
        freeBreakfast:
          $ref: '#/components/schemas/v1AmenityAvailability'
          description: Describes the availability of free breakfast for the offer or booking.
        freeParking:
          $ref: '#/components/schemas/v1AmenityAvailability'
          description: Describes the availability of free parking for the offer or booking.
        otherAmenities:
          type: array
          items:
            type: string
          description: Textual descriptions for display purposes of assorted amenities of the offer or booking that have not been explicitly hoisted to their own attribute.
      description: 'OfferAmenities represent the value added by the individual offer to be evaluated against other offers.

        OfferAmenities do not include amenities conferred by the Property.

        For example, if a given Property provides free breakfast to all guests, none of the Offers for that property will have Free Breakfast as an amenity.'
      title: Shop_Lodging_OfferAmenities_v1
    v1FindBestOffersError:
      type: object
      properties:
        invalidSort:
          $ref: '#/components/schemas/v1InvalidSortError'
          description: 'Defined when the operation returns with a status of INVALID_ARGUMENT and [FindBestOffersRequest.sort_mode]

            is not valid for the given search criteria.'
      description: Error details of a failed [LodgingShoppingService.FindBestOffers] call.
      title: Shop_Lodging_Service_FindBestOffersError_v1
    v1RoomGroup:
      type: object
      properties:
        roomDescription:
          $ref: '#/components/schemas/v1RoomDescription'
          description: 'A description of the rooms for which the Offer applies.

            For example, "Standard 1 King Bed", "Standard 2 Queen Beds", or "Suite 1 King Bed".'
        offers:
          type: array
          items:
            type: object
            $ref: '#/components/schemas/v1Offer'
          description: A list of bookable Offers for the room.
      description: A grouping of bookable Offers, collected by the [RoomDescription] to which they apply.
      title: Shop_Lodging_Service_RoomGroup_v1
    v1InvalidSortError:
      type: object
      description: An error indicating that the requested sorting option provided is not valid for the given search criteria.
      title: Service_Common_InvalidSortError_v1
    v1SurchargeType:
      type: string
      enum:
      - SURCHARGE_TYPE_PREPAID_FEE
      - SURCHARGE_TYPE_POSTPAID_FEE
      - SURCHARGE_TYPE_TAX
      default: SURCHARGE_TYPE_PREPAID_FEE
      description: "A programmatic classification of types of surcharges that could be levied.\n\n - SURCHARGE_TYPE_PREPAID_FEE: A fee due at time of booking.\n - SURCHARGE_TYPE_POSTPAID_FEE: A fee due at time of travel.\n - SURCHARGE_TYPE_TAX: Taxes due at time of booking."
      title: Common_SurchargeType_v1
    v1FixedModel:
      type: object
      description: 'Details for a fixed pricing model.

        Under this model, offers must be sold at the exact price quoted by Engine without markup.

        The seller does not receive commission for offers indicated with this pricing model.

        Compensation terms are defined exclusively by the seller''s agreement with Engine.

        Refer to your agreement or contact your Engine sales support team for questions.'
      title: Common_FixedModel_v1
    lodgingExternalCatalogIdentifiers:
      type: object
      properties:
        giataIdentifier:
          type: string
          description: GIATA identifier for this property.
        catalogIdentifiers:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/lodgingExternalCatalogIdentifierList'
          description: Catalog identifiers keyed by source keys.
      description: External catalog identifiers for property mapping.
      title: Content_ExternalCatalogIdentifiers_v1
    v1AnonymousChild:
      type: object
      properties:
        age:
          type: integer
          format: int32
          description: 'The child''s age on the date of travel.

            If the child''s birthday is during travel, use the age they will be at the end of travel.'
        birthdate:
          type: string
          title: 'An ISO-8601-compliant date representing the child''s birthdate.

            See https://en.wikipedia.org/wiki/ISO_8601#Dates'
      description: 'A child traveler whose personal details have not yet been collected.

        A child''s age is necessary to retrieve the correct prices.

        Failure to provide an accurate age may result in loss of bookings or refusal to provide service to the traveler.'
      title: Common_AnonymousChild_v1
    v1ContactEmail:
      type: object
      properties:
        emailAddress:
          type: string
          description: The email address.
        emailType:
          $ref: '#/components/schemas/v1EmailType'
          description: Optional type of email contact.
      description: Contact email information.
      title: Common_ContactEmail_v1
    v1GeoPoint:
      type: object
      properties:
        latitude:
          type: number
          format: double
          description: The center-point latitude.
        longitude:
          type: number
          format: double
          description: The center-point longitude.
      description: A single geographic point, defined by latitude and longitude.
      title: Common_GeoPoint_v1
    v1DistanceUnit:
      type: string
      enum:
      - DISTANCE_UNIT_MILE
      - DISTANCE_UNIT_KILOMETER
      default: DISTANCE_UNIT_MILE
      description: "The unit type for a distance measurement.\n\n - DISTANCE_UNIT_MILE: A mile in the imperial system of units.\n - DISTANCE_UNIT_KILOMETER: A kilometer in the international system of units (metric)."
      title: Common_DistanceUnit_v1
    v1AnonymousTraveler:
      type: object
      properties:
        adult:
          $ref: '#/components/schemas/v1AnonymousAdult'
        child:
          $ref: '#/components/schemas/v1AnonymousChild'
      description: A traveler whose personal details have not yet been collected.
      title: Common_AnonymousTraveler_v1
    lodgingPropertyAmenity:
      type: object
      properties:
        amenityName:
          type: string
          title: 'Amenity name describing a [Property] feature or service.

            Examples: "Free WiFi", "Free Breakfast"'
        amenityCode:
          $ref: '#/components/schemas/lodgingLodgingAmenityCode'
          description: 'Amenity code, providing an easily machine readable representation of a [Property] feature or

            service, if mapped.'
      description: '[Property] amenity containing name for property features and services.'
      title: Content_PropertyAmenity_v1
    shoplodgingservicev1ResponsiveProperty:
      type: object
      properties:
        property:
          $ref: '#/components/schemas/lodgingProperty'
          description: The details of the returned property.
        distance:
          $ref: '#/components/schemas/v1Distance'
          description: The distance from the center point of the search area, if appropriate.
      description: A Property that is responsive to the current shopping search.
      title: Shop_Lodging_Service_ResponsiveProperty_v1
    v1FindBestOffersSortMode:
      type: string
      enum:
      - FIND_BEST_OFFERS_SORT_MODE_UNSPECIFIED
      - FIND_BEST_OFFERS_SORT_MODE_DISTANCE
      default: FIND_BEST_OFFERS_SORT_MODE_UNSPECIFIED
      description: "Describes the various ways a [LodgingShoppingService.FindBestOffers] search maybe sorted.\n\n - FIND_BEST_OFFERS_SORT_MODE_UNSPECIFIED: No specific sort criteria will be used.\n - FIND_BEST_OFFERS_SORT_MODE_DISTANCE: Properties are returned in order of increasing distance.\nIn case of ties, Property names are sorted lexically.\nOnly valid when candidate properties are identified via [RadiusSearch] (`point_and_radius`)."
      title: Shop_Lodging_Service_FindBestOffersSortMode_v1
    shoplodgingservicev1RadiusSearch:
      type: object
      properties:
        coordinates:
          $ref: '#/components/schemas/v1GeoPoint'
          description: Latitude and Longitude coordinates to use as the center point of the search.
        radius:
          $ref: '#/components/schemas/v1Distance'
          title: 'The size of the search area.

            Default: 10 miles

            Minimum: 1 mile (~1.6 kilometers)

            Maximum: 50 miles (~80 kilometers)'
      description: A search area in a perfect circle around a central point.
      title: Shop_Lodging_Service_RadiusSearch_v1
    v1CurrencyValue:
      type: object
      properties:
        currencyCode:
          type: string
          title: 'The 3-character ISO-4217 alphabetic currency code.

            For example: USD

            See https://www.iso.org/iso-4217-currency-codes.html'
        value:
          type: string
          description: 'The non-localized decimal representation of the amount of currency represented by this object.

            For example, "123456.789".'
      description: A safe encodi

# --- truncated at 32 KB (52 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/hotel-engine/refs/heads/main/openapi/hotel-engine-lodgingshoppingservice-api-openapi.yml