# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for Oracle Hospitality Availability API version: 1.0.0 extends: openapi/oracle-hospitality-availability-api-openapi.yml actions: - target: $.info update: x-apievangelist-phrasing: method: generated generated: '2026-09-26' generator: build-phrasing.py label: Generated by API Evangelist operations: 34 - target: $.paths['/availability/summary'].get update: x-apievangelist-phrasing: intent: Compare rate parity across hotels in a region effect: read questions: - Are my rates consistent across channels for all hotels in a chain or region? - Can I check rate parity for several hotels at once over the next few days? instructions: - text: Show the regional rate parity summary for hotels {hotelIds} over the next {numberOfDays} days. slots: hotelIds: query.hotelIds numberOfDays: query.numberOfDays - text: Check multi-hotel parity for rate plan {ratePlanCode} on channel {channelCode} across chain {chainCode}. slots: ratePlanCode: query.ratePlanCode channelCode: query.channelCode chainCode: query.chainCode method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/channels/{channelCode}/rooms/{roomTypeCode}/inventorySnapshot'].get update: x-apievangelist-phrasing: intent: Get channel inventory snapshot for one room type effect: read questions: - What availability and restrictions does a booking channel see for one specific room type? - Can I snapshot a single room type's channel inventory for weekends only? instructions: - text: Snapshot channel {channelCode} inventory for room type {roomTypeCode} at hotel {hotelId} from {fromDate}. slots: channelCode: path.channelCode roomTypeCode: path.roomTypeCode hotelId: path.hotelId fromDate: query.fromDate - text: Show restrictions and availability for room {roomTypeCode} on {channelCode} at {hotelId}, {fromDate} to {endDate}. slots: roomTypeCode: path.roomTypeCode channelCode: path.channelCode hotelId: path.hotelId fromDate: query.fromDate endDate: query.endDate method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/generalAvailabilitySimulator'].get update: x-apievangelist-phrasing: intent: Simulate what a booking channel would see effect: read questions: - How can I preview the availability and rates a channel would return for a sample stay? - Can I simulate a booking request with a promotion code or corporate IATA to test channel results? instructions: - text: Run the availability simulator at hotel {hotelId} for arrival {arrival}, {nights} nights, {adults} adults. slots: hotelId: path.hotelId arrival: query.arrival nights: query.nights adults: query.adults - text: Simulate channel {bookingChannelCode} results at {hotelId} with promotion {promotionCode}. slots: bookingChannelCode: query.bookingChannelCode hotelId: path.hotelId promotionCode: query.promotionCode method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/inventorySnapshot'].get update: x-apievangelist-phrasing: intent: Get a hotel's channel inventory snapshot effect: read questions: - What rooms and restrictions are all my booking channels seeing for a hotel right now? - Can I snapshot channel availability across several booking channels for a date range? instructions: - text: Snapshot channel inventory for all room types at hotel {hotelId} starting {fromDate}. slots: hotelId: path.hotelId fromDate: query.fromDate - text: Show inventory for channels {bookingChannelCodes} at {hotelId} from {fromDate} to {endDate}. slots: bookingChannelCodes: query.bookingChannelCodes hotelId: path.hotelId fromDate: query.fromDate endDate: query.endDate method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/rateParity'].get update: x-apievangelist-phrasing: intent: Check a hotel's channel rate parity effect: read questions: - Is my hotel's rate the same on every booking channel? - Can I compare channel rates for one room type and rate plan at a single property? instructions: - text: Check rate parity at hotel {hotelId} for the next {numberOfDays} days. slots: hotelId: path.hotelId numberOfDays: query.numberOfDays - text: Compare parity for room {roomType} and rate plan {ratePlanCode} on channel {channelCode} at {hotelId}. slots: roomType: query.roomType ratePlanCode: query.ratePlanCode channelCode: query.channelCode hotelId: path.hotelId method: generated generated: '2026-09-26' - target: $.paths['/availability'].get update: x-apievangelist-phrasing: intent: Check availability across multiple hotels effect: read questions: - Which of my hotels have rooms available for given dates and party size? - Can a central reservations office query availability for several hotels at once with query parameters? instructions: - text: Check availability at hotels {hotelIds} from {roomStayStartDate} to {roomStayEndDate} for {adults} adults. slots: hotelIds: query.hotelIds roomStayStartDate: query.roomStayStartDate roomStayEndDate: query.roomStayEndDate adults: query.adults - text: Using CRO {cro}, list multi-hotel availability for rate plan {ratePlanCode} via query string. slots: cro: query.cro ratePlanCode: query.ratePlanCode method: generated generated: '2026-09-26' - target: $.paths['/availability/searches'].post update: x-apievangelist-phrasing: intent: Search multi-hotel availability with a POST body effect: read questions: - Can I send multi-hotel availability criteria in a POST request body instead of a long query string? - What's the POST search for checking room availability across a CRO's hotels? instructions: - text: POST a multi-hotel availability search for hotels {hotelIds}, {roomStayStartDate} to {roomStayEndDate}. slots: hotelIds: requestBody.hotelIds roomStayStartDate: requestBody.roomStayStartDate roomStayEndDate: requestBody.roomStayEndDate - text: Submit a body-based availability search across CRO {cro} hotels for membership level {membershipLevel}. slots: cro: requestBody.cro membershipLevel: requestBody.membershipLevel method: generated generated: '2026-09-26' - target: $.paths['/hotels'].get update: x-apievangelist-phrasing: intent: Search hotels for the sales process effect: read questions: - Which hotels in a city can I offer a guest for their dates? - Can I search hotels by amenity or nearby attraction during a sales call? - How do I find alternate hotels in a region when the first choice is full? instructions: - text: Find hotels in {city} with availability from {startDate} to {endDate}. slots: city: query.city startDate: query.startDate endDate: query.endDate - text: Search hotels in region {regionCode} offering amenity {hotelAmenity}. slots: regionCode: query.regionCode hotelAmenity: query.hotelAmenity method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/analyzeRateAvailability'].get update: x-apievangelist-phrasing: intent: Analyze why a rate is closed effect: read questions: - Why is a rate code showing closed for a room type on certain dates? - Can I see the restriction reasons behind an unavailable rate using query parameters? instructions: - text: Analyze why rate {ratePlanCode} is closed for room {roomType} at hotel {hotelId} from {startDate} to {endDate}. slots: ratePlanCode: query.ratePlanCode roomType: query.roomType hotelId: path.hotelId startDate: query.startDate endDate: query.endDate - text: Explain the closed-rate reasons for {ratePlanCode} at {hotelId} for {duration} nights. slots: ratePlanCode: query.ratePlanCode hotelId: path.hotelId duration: query.duration method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/analyzeRateAvailability/searches'].post update: x-apievangelist-phrasing: intent: Analyze closed rates with a POST search body effect: read questions: - Can I submit the closed-rate analysis criteria as a POST body rather than query parameters? - Is there a POST search version of the rate availability analysis for a hotel? instructions: - text: POST a rate availability analysis for {ratePlanCode} at hotel {hotelId}, {startDate} to {endDate}. slots: ratePlanCode: requestBody.ratePlanCode hotelId: path.hotelId startDate: requestBody.startDate endDate: requestBody.endDate - text: Submit a body-based closed-rate analysis for block {blockId} at {hotelId}. slots: blockId: requestBody.blockId hotelId: path.hotelId method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/availability'].get update: x-apievangelist-phrasing: intent: Get room and rate availability for one hotel effect: read questions: - What room types and rates are available at a hotel for my dates? - Can I check a single property's availability including closed rates, via query parameters? instructions: - text: Show available rooms and rates at hotel {hotelId} from {roomStayStartDate} to {roomStayEndDate}. slots: hotelId: path.hotelId roomStayStartDate: query.roomStayStartDate roomStayEndDate: query.roomStayEndDate - text: Check availability at {hotelId} for {adults} adults and {children} children on rate plan {ratePlanCode}. slots: hotelId: path.hotelId adults: query.adults children: query.children ratePlanCode: query.ratePlanCode method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/availability/alternate'].get update: x-apievangelist-phrasing: intent: Find alternate dates for a closed rate effect: read questions: - If a rate is closed on my dates, which nearby dates are open? - Can I look up alternate stay dates for a room type via query parameters? instructions: - text: Find alternate dates at hotel {hotelId} for rate {ratePlanCode} around {startDate}. slots: hotelId: path.hotelId ratePlanCode: query.ratePlanCode startDate: query.startDate - text: Suggest open dates for room {roomType} at {hotelId} for a {duration}-night stay. slots: roomType: query.roomType hotelId: path.hotelId duration: query.duration method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/availability/alternate/searches'].post update: x-apievangelist-phrasing: intent: Search alternate dates with a POST body effect: read questions: - Can I send alternate-date search criteria for a closed rate in a POST body? - Is there a POST search to find alternate dates for a block or a specific room id? instructions: - text: POST an alternate-date search at hotel {hotelId} for rate {ratePlanCode} starting {startDate}. slots: hotelId: path.hotelId ratePlanCode: requestBody.ratePlanCode startDate: requestBody.startDate - text: Submit a body-based alternate-date search for room {roomId} at {hotelId}. slots: roomId: requestBody.roomId hotelId: path.hotelId method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/availability/searches'].post update: x-apievangelist-phrasing: intent: Search one hotel's availability with a POST body effect: read questions: - Can I send single-hotel availability criteria in a POST request body? - What's the POST search for a property's rooms and rates when my criteria are too long for a URL? instructions: - text: POST an availability search for hotel {hotelId} from {roomStayStartDate} to {roomStayEndDate}. slots: hotelId: path.hotelId roomStayStartDate: requestBody.roomStayStartDate roomStayEndDate: requestBody.roomStayEndDate - text: Submit a body-based availability search at {hotelId} for membership {membershipType}. slots: hotelId: path.hotelId membershipType: requestBody.membershipType method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/availableUpsells'].get update: x-apievangelist-phrasing: intent: Find available upsells for a stay effect: read questions: - Which room upgrades can I offer a guest on their reservation? - Can I list upsell options for a date range at a hotel? instructions: - text: Find upsell offers for reservation {reservationId} at hotel {hotelId}. slots: reservationId: query.reservationId hotelId: path.hotelId - text: List available upsells at {hotelId} from {startDate} to {endDate} for room {roomType}. slots: hotelId: path.hotelId startDate: query.startDate endDate: query.endDate roomType: query.roomType method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/guarantees'].get update: x-apievangelist-phrasing: intent: Look up reservation guarantee options effect: read questions: - Which guarantee types can I use for a booking arriving on a given date? - Can I see guarantee codes and estimated deposit amounts for a rate plan? instructions: - text: List guarantee options at hotel {hotelId} for arrival {arrivalDate}. slots: hotelId: path.hotelId arrivalDate: query.arrivalDate - text: Get guarantees for rate {ratePlanCode} at {hotelId} arriving {arrivalDate}, with estimated amounts. slots: ratePlanCode: query.ratePlanCode hotelId: path.hotelId arrivalDate: query.arrivalDate method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/hurdles'].get update: x-apievangelist-phrasing: intent: Get a hotel's hurdle rates effect: read questions: - What hurdle rates are set for my hotel on a given date? - Can I filter hurdle rates by room type code? instructions: - text: Show hurdle rates at hotel {hotelId} for {hurdleDate}. slots: hotelId: path.hotelId hurdleDate: query.hurdleDate - text: List hurdle rates for room types {roomTypesCode} at {hotelId}. slots: roomTypesCode: query.roomTypesCode hotelId: path.hotelId method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/hurdles'].put update: x-apievangelist-phrasing: intent: Change existing hurdle rates effect: write questions: - How do I raise an existing hurdle rate for peak dates? - Can I modify hurdle rates that are already set for a hotel? instructions: - text: Update the existing hurdle rates at hotel {hotelId}. slots: hotelId: path.hotelId - text: Change hurdle rates at {hotelId} to {hurdleRates}. slots: hotelId: path.hotelId hurdleRates: requestBody.hurdleRates method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/hurdles'].post update: x-apievangelist-phrasing: intent: Create new hurdle rates effect: write questions: - How do I set a new minimum acceptable rate (hurdle) for dates that have none? - What's needed to add hurdle rates for a hotel? instructions: - text: Create hurdle rates {hurdleRates} at hotel {hotelId}. slots: hurdleRates: requestBody.hurdleRates hotelId: path.hotelId - text: Add new hurdle rates for next month at {hotelId}. slots: hotelId: path.hotelId method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/hurdles'].delete update: x-apievangelist-phrasing: intent: Delete hurdle rates effect: destructive questions: - How do I remove a hurdle rate for a date? - Can I delete hurdle rates for one room type or yield category? instructions: - text: Delete hurdle rates at hotel {hotelId} for {hurdleDate}. slots: hotelId: path.hotelId hurdleDate: query.hurdleDate - text: Remove hurdle rates for room {roomType} at {hotelId} from {hurdleRangeStart} to {hurdleRangeEnd}. slots: roomType: query.roomType hotelId: path.hotelId hurdleRangeStart: query.hurdleRangeStart hurdleRangeEnd: query.hurdleRangeEnd method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/rates'].get update: x-apievangelist-phrasing: intent: Get details for several rate plans at a hotel effect: read questions: - Can I pull rate plan information for a list of rate codes in one call? - Where do I see the details of all the rate plans a hotel sells? instructions: - text: Get rate plan information at hotel {hotelId} for codes {ratePlanCodeList}. slots: hotelId: path.hotelId ratePlanCodeList: query.ratePlanCodeList - text: Show the rate plans configured at {hotelId}. slots: hotelId: path.hotelId method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/rates/{ratePlanCode}'].get update: x-apievangelist-phrasing: intent: Get information for one rate plan effect: read questions: - What are the details and rules of a specific rate plan code? - How do I look up one rate plan by its code at a hotel? instructions: - text: Show rate plan {ratePlanCode} at hotel {hotelId}. slots: ratePlanCode: path.ratePlanCode hotelId: path.hotelId - text: Get the details of rate code {ratePlanCode} for {hotelId}. slots: ratePlanCode: path.ratePlanCode hotelId: path.hotelId method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/restrictions'].get update: x-apievangelist-phrasing: intent: Get restrictions for a date range effect: read questions: - What stay restrictions, like closed to arrival or minimum stay, are active at my hotel? - Can I see restrictions for one booking channel or rate plan over a date range? instructions: - text: List restrictions at hotel {hotelId} from {restrictionSearchCriteriaStartDate} to {end}. slots: hotelId: path.hotelId restrictionSearchCriteriaStartDate: query.restrictionSearchCriteriaStartDate end: query.end - text: Show restrictions for rate plan {ratePlanCode} on channel {bookingChannelCode} at {hotelId}. slots: ratePlanCode: query.ratePlanCode bookingChannelCode: query.bookingChannelCode hotelId: path.hotelId method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/restrictions'].put update: x-apievangelist-phrasing: intent: Clear all restrictions for a hotel on a date effect: destructive questions: - How do I wipe every restriction at a hotel for one day? - Can I reset a date to have no restrictions at all? instructions: - text: Clear all restrictions at hotel {hotelId} on {date}. slots: hotelId: path.hotelId date: requestBody.date - text: Remove every restriction for {hotelId} on that date. slots: hotelId: path.hotelId method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/restrictions'].post update: x-apievangelist-phrasing: intent: Create a restriction effect: write questions: - How do I close a rate to arrival or set a minimum length of stay? - What do I send to add a new restriction for a hotel? instructions: - text: Create restriction {restriction} at hotel {hotelId}. slots: restriction: requestBody.restriction hotelId: path.hotelId - text: Add a closed-to-arrival restriction at {hotelId} for this weekend. slots: hotelId: path.hotelId method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/restrictions/{restrictionId}'].delete update: x-apievangelist-phrasing: intent: Delete a restriction effect: destructive questions: - How do I remove one restriction I set by mistake? - Can I delete a restriction only for certain dates or a room type? instructions: - text: Delete restriction {restrictionId} at hotel {hotelId}. slots: restrictionId: path.restrictionId hotelId: path.hotelId - text: Remove restriction {restrictionId} at {hotelId} from {restrictionStartDate} to {restrictionEndDate}. slots: restrictionId: path.restrictionId hotelId: path.hotelId restrictionStartDate: query.restrictionStartDate restrictionEndDate: query.restrictionEndDate method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/restrictionsHistory'].get update: x-apievangelist-phrasing: intent: Get the change history of restrictions effect: read questions: - Who changed a restriction at my hotel, and when? - Can I audit restriction changes by user or restriction type over a period? instructions: - text: Show restriction history at hotel {hotelId} from {startDate} to {endDate}. slots: hotelId: path.hotelId startDate: query.startDate endDate: query.endDate - text: List restriction changes made by user {userId} at {hotelId}. slots: userId: query.userId hotelId: path.hotelId method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/validateGuarantees'].put update: x-apievangelist-phrasing: intent: Validate guarantee criteria for a reservation effect: read questions: - Can I validate a set of guarantee criteria against a hotel's rules before booking? - Is there a request-body version of the guarantee lookup for validating criteria? instructions: - text: Validate guarantee criteria {criteria} at hotel {hotelId}. slots: criteria: requestBody.criteria hotelId: path.hotelId - text: Check that this guarantee request is valid at {hotelId}. slots: hotelId: path.hotelId method: generated generated: '2026-09-26' - target: $.paths['/hurdles'].get update: x-apievangelist-phrasing: intent: Get hurdle rates across multiple properties effect: read questions: - What are the hurdle rates for several of my hotels on the same date? - Can I compare hurdle rates across properties in one call? instructions: - text: Show hurdle rates for hotels {hotelIds} on {hurdleDate}. slots: hotelIds: query.hotelIds hurdleDate: query.hurdleDate - text: Compare multi-property hurdle rates from {hurdleRangeStart} to {hurdleRangeEnd}. slots: hurdleRangeStart: query.hurdleRangeStart hurdleRangeEnd: query.hurdleRangeEnd method: generated generated: '2026-09-26' - target: $.paths['/services/availability/status'].get update: x-apievangelist-phrasing: intent: Get the availability service version effect: read questions: - Which version of the availability service is running? - Is the availability service up and responding? instructions: - text: Report the availability service status and version. - text: Ping the availability service on behalf of hotel {hotelId}. slots: hotelId: header.x-hotelid method: generated generated: '2026-09-26' - target: $.paths['/upsert/hotels/{hotelId}/hurdles'].put update: x-apievangelist-phrasing: intent: Create or change hurdle rates effect: write questions: - Is there an upsert for hurdle rates so I don't need to know if they already exist? - Can I create-or-update a batch of hurdle rates in one call? instructions: - text: Upsert hurdle rates {hurdleRates} at hotel {hotelId}. slots: hurdleRates: requestBody.hurdleRates hotelId: path.hotelId - text: Create or change hurdle rates at {hotelId}, whichever applies. slots: hotelId: path.hotelId method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/rates/coupons/{couponCode}'].get update: x-apievangelist-phrasing: intent: Validate a coupon code effect: read questions: - Is a guest's coupon code valid at a hotel? - How do I check a coupon code on its own, without a promotion code? instructions: - text: Validate coupon {couponCode} at hotel {hotelId}. slots: couponCode: path.couponCode hotelId: path.hotelId - text: Check whether coupon code {couponCode} works at {hotelId}. slots: couponCode: path.couponCode hotelId: path.hotelId method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/rates/promotions/{promotionCode}'].get update: x-apievangelist-phrasing: intent: Validate a promotion code effect: read questions: - Is a promotion code valid at my hotel? - How do I check a promo code on its own, without a coupon? instructions: - text: Validate promotion {promotionCode} at hotel {hotelId}. slots: promotionCode: path.promotionCode hotelId: path.hotelId - text: Check whether promo code {promotionCode} is accepted at {hotelId}. slots: promotionCode: path.promotionCode hotelId: path.hotelId method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/rates/promotionsCoupons'].get update: x-apievangelist-phrasing: intent: Validate a promotion and coupon together effect: read questions: - Does a coupon code work together with a specific promotion code? - Can I validate a promotion-and-coupon pair for a stay's dates? instructions: - text: Validate promotion {promotionCode} with coupon {couponCode} at hotel {hotelId}. slots: promotionCode: query.promotionCode couponCode: query.couponCode hotelId: path.hotelId - text: Check promo {promotionCode} plus coupon {couponCode} at {hotelId} from {startDate} to {endDate}. slots: promotionCode: query.promotionCode couponCode: query.couponCode hotelId: path.hotelId startDate: query.startDate endDate: query.endDate method: generated generated: '2026-09-26'