Oracle Hospitality Rate Plan API

The Rate Plan APIs allow for creating, managing, and retrieving rates and their related components such as negotiated rates and packages.

Operations 112

POST /controlSegmentTemplate/{controlSegmentCode} Create Control Segment Template #
DELETE /controlSegmentTemplate/{controlSegmentCode} Delete Control Segment Template #
PUT /controlSegmentTemplate/{controlSegmentCode} Change Control Segment Template #
GET /controlSegmentTemplates Get Control Segment Templates #
GET /controlSegments Get Control Segments #
GET /hotels/{hotelId}/bestavailablerates Fetch Best Available Rates #
POST /hotels/{hotelId}/bestavailablerates Create a Best Available Rates #
DELETE /hotels/{hotelId}/bestavailablerates Delete Best Available Rates #
GET /hotels/{hotelId}/blocks/ratePlans Get rate plans for a given block #
POST /hotels/{hotelId}/controlSegments/{controlSegmentCode} Create a new Control Segment #
DELETE /hotels/{hotelId}/controlSegments/{controlSegmentCode} Delete a Control Segment #
PUT /hotels/{hotelId}/controlSegments/{controlSegmentCode} Modify a Control Segment #
DELETE /hotels/{hotelId}/massRateChangeLog Delete mass rate change log #
GET /hotels/{hotelId}/massRateChangeStatus Get mass rate change status #
PUT /hotels/{hotelId}/massRatePlanSchedules Set mass rate plan schedules #
GET /hotels/{hotelId}/negotiatedRates Get negotiated rates and profiles #
POST /hotels/{hotelId}/negotiatedRates Create negotiated rates #
PUT /hotels/{hotelId}/negotiatedRates/distributions Distribute negotiated rates #
PUT /hotels/{hotelId}/negotiatedRates/{rateCode} Change negotiated rates #
GET /hotels/{hotelId}/negotiatedRates/{rateCode}/profiles Fetch Negotiated Rates #
GET /hotels/{hotelId}/packageForecastGroups Get Hotel Package Forecast Groups #
POST /hotels/{hotelId}/packageForecastGroups Create Hotel Package Forecast Groups #
PUT /hotels/{hotelId}/packageForecastGroups Change Hotel Package Forecast Groups #
DELETE /hotels/{hotelId}/packageForecastGroups Delete Hotel Package Forecast Groups #
GET /hotels/{hotelId}/packageFormulaRanges Get package formula ranges #
POST /hotels/{hotelId}/packageFormulaRanges Create package formula ranges #
PUT /hotels/{hotelId}/packageFormulaRanges/{packageFormulaRangeId} Change package formula ranges #
DELETE /hotels/{hotelId}/packageFormulaRanges/{packageFormulaRangeId} Delete package formula ranges #
GET /hotels/{hotelId}/packageGroups Get package groups #
POST /hotels/{hotelId}/packageGroups Create package group #
PUT /hotels/{hotelId}/packageGroups Change package group #
DELETE /hotels/{hotelId}/packageGroups/{packageCode} Delete package group #
GET /hotels/{hotelId}/packages/{packageCode} Get package for given package #
POST /hotels/{hotelId}/packages/{packageCode} Create package #
PUT /hotels/{hotelId}/packages/{packageCode} Change the package #
DELETE /hotels/{hotelId}/packages/{packageCode} Delete the package #
GET /hotels/{hotelId}/packages/{packageCode}/rates Get package rates #
POST /hotels/{hotelId}/packages/{packageCode}/text Generate package description with AI Author Service Proxy. #
DELETE /hotels/{hotelId}/profiles/{profileId}/startDate/{startDate}/negotiatedRates/{ratePlanId} Delete negotiated rates #
GET /hotels/{hotelId}/promotionCodes Get promotion codes #
PUT /hotels/{hotelId}/promotionCodes/{promotionCode} Change promotion codes #
POST /hotels/{hotelId}/promotionCodes/{promotionCode} Create promotion codes #
POST /hotels/{hotelId}/promotionCodes/{promotionCode}/coupons Generate promotion coupon codes #
GET /hotels/{hotelId}/promotionCodes/{promotionCode}/coupons Get promotion coupon codes #
PUT /hotels/{hotelId}/promotionCodes/{promotionCode}/coupons/{couponId} Update promotion coupon codes #
GET /hotels/{hotelId}/promotionCodes/{promotionCode}/coupons/{couponId} Get promotion coupon code #
GET /hotels/{hotelId}/promotionGroups Get promotion groups #
PUT /hotels/{hotelId}/promotionGroups/copy Copy promotion groups #
PUT /hotels/{hotelId}/promotionGroups/{groupCode} Change promotion groups #
POST /hotels/{hotelId}/promotionGroups/{groupCode} Create promotion groups #
DELETE /hotels/{hotelId}/promotionGroups/{groupCode} Delete promotion groups #
PUT /hotels/{hotelId}/rateAccessExclusions Set rate access exclusions #
DELETE /hotels/{hotelId}/rateAccessExclusions Delete rate access exclusions #
GET /hotels/{hotelId}/rateGroups Get rate groups #
PUT /hotels/{hotelId}/rateGroups Change rate groups #
POST /hotels/{hotelId}/rateGroups Create rate groups #
DELETE /hotels/{hotelId}/rateGroups Delete rate groups #
GET /hotels/{hotelId}/ratePlan/schedule/yieldAdjustment Get rate plan schedule yield adjustments #
POST /hotels/{hotelId}/ratePlanSchedules/{scheduleId}/split Split rate plan schedule #
GET /hotels/{hotelId}/ratePlans Get rate plans by Hotel Code #
POST /hotels/{hotelId}/ratePlans Create rate plans #
PUT /hotels/{hotelId}/ratePlans/sync Synchronizes Rate Plan information including Rate Header and Packages across target properties. #
GET /hotels/{hotelId}/ratePlans/{ratePlanCode} Get rate plan #
PUT /hotels/{hotelId}/ratePlans/{ratePlanCode} Change rate plan #
DELETE /hotels/{hotelId}/ratePlans/{ratePlanCode} Delete rate plan #
PUT /hotels/{hotelId}/ratePlans/{ratePlanCode}/copy Copy rate plans #
PUT /hotels/{hotelId}/ratePlans/{ratePlanCode}/dailySchedules Set daily rate plan schedule range #
DELETE /hotels/{hotelId}/ratePlans/{ratePlanCode}/dailySchedules Delete daily rate plan schedule range #
GET /hotels/{hotelId}/ratePlans/{ratePlanCode}/metrics Get rate plan metrics #
PUT /hotels/{hotelId}/ratePlans/{ratePlanCode}/packages Change rate plan package #
POST /hotels/{hotelId}/ratePlans/{ratePlanCode}/packages Create rate plan package #
DELETE /hotels/{hotelId}/ratePlans/{ratePlanCode}/packages Delete rate plan packages #
PUT /hotels/{hotelId}/ratePlans/{ratePlanCode}/postingRhythms Change rate plan posting rhythms #
POST /hotels/{hotelId}/ratePlans/{ratePlanCode}/postingRhythms Create rate plan posting rhythms #
DELETE /hotels/{hotelId}/ratePlans/{ratePlanCode}/postingRhythms Delete rate plan posting rhythms #
GET /hotels/{hotelId}/ratePlans/{ratePlanCode}/schedules Get rate plan schedules #
PUT /hotels/{hotelId}/ratePlans/{ratePlanCode}/schedules Change rate plan schedules #
POST /hotels/{hotelId}/ratePlans/{ratePlanCode}/schedules Create rate plan schedules #
DELETE /hotels/{hotelId}/ratePlans/{ratePlanCode}/schedules Delete rate plan schedule #
PUT /hotels/{hotelId}/ratePlans/{ratePlanCode}/schedules/set Set rate plan schedules #
PUT /hotels/{hotelId}/ratePlans/{ratePlanCode}/sourceTiers/{sourceTierId}/destinationTiers/{destinationTierId}/schedules/copy Copy tiered rate schedules #
GET /hotels/{hotelId}/rateStrategies Get rate strategies #
POST /hotels/{hotelId}/rateStrategies Create rate strategies #
PUT /hotels/{hotelId}/rateStrategies/{rateStrategyId} Change rate strategies #
DELETE /hotels/{hotelId}/rateStrategies/{rateStrategyId} Delete rate strategies #
GET /hotels/{hotelId}/rates/activityLog Get rate activity log #
GET /hotels/{hotelId}/yieldAdjustments Get yield adjustments #
GET /packageForecastGroups Get Template Package Forecast Groups #
POST /packageForecastGroups Create Template Package Forecast Groups #
PUT /packageForecastGroups Change Template Package Forecast Groups #
DELETE /packageForecastGroups/{packageForecastGroupCode} Delete Template Package Forecast Groups #
GET /packages Get packages #
PUT /packages/copy Copy package code(s) #
PUT /packages/text/{responseId} Save the package description to the AI Author Service. #
GET /profiles/{profileId}/negotiatedRates Get negotiated rate details for given profile #
GET /promotionCodes Get Template Promotion Codes #
PUT /promotionCodes/{promotionCode} Change Template Promotion Code #
POST /promotionCodes/{promotionCode} Create Template Promotion Code #
POST /promotionCodes/{promotionCode}/coupons Generate template promotion coupon codes #
GET /promotionCodes/{promotionCode}/coupons Get promotion coupon codes at template level. #
PUT /promotionCodes/{promotionCode}/coupons/inactivate Inactivate promotion coupon codes for a given batch code. #
PUT /promotionCodes/{promotionCode}/coupons/{couponId} Update promotion coupon codeat template level. #
GET /promotionCodes/{promotionCode}/coupons/{couponId} Get promotion coupon code at template level. #
PUT /ratePlanSchedules Manages rate plan schedules #
GET /ratePlans Get rate plans #
POST /rateStrategies Set rate strategies #
GET /services/rateplan/status Get Rate plan service version #
PUT /upsert/hotels/{hotelId}/packageFormulaRanges Create/Change package formula ranges #
PUT /upsert/hotels/{hotelId}/promotionCodes/{promotionCode} Change/Create promotion codes #
PUT /upsert/hotels/{hotelId}/rateGroups Change/Create rate groups #
PUT /upsert/hotels/{hotelId}/rateStrategies Create/Change rate strategies #
PUT /upsert/promotionCodes/{promotionCode} Change/create Template Promotion Code #

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/oracle-hospitality-rateplan-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

oracle-hospitality-rateplan-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: OPERA Cloud Rate Rate Plan API
  description: APIs to cater for Rate Availability functionality in OPERA Cloud. <br /><br /> Rate Management provides all the tools you need to effectively define and manage the rate structures for a property in OPERA Cloud. Some of the things you can do include creating and managing rate codes, rate classes, rate categories, display sets, rate strategies, as well as managing promotion groups and codes.<br /><br /> Compatible with OPERA Cloud release 26.2.0.0.<br /><br /><p> This document and all content within is available under the Universal Permissive License v 1.0 (https://oss.oracle.com/licenses/upl). Copyright (c) 2020, 2026 Oracle and/or its affiliates.</p>
  version: 26.2.0.0
  termsOfService: https://www.oracle.com/legal/terms.html
  contact:
    email: hospitality_apis_ww_grp@oracle.com
  license:
    name: UPL
    url: https://opensource.org/licenses/upl
servers:
- url: /rtp/v1
tags:
- name: RatePlan
  description: The Rate Plan APIs allow for creating, managing, and retrieving rates and their related components such as negotiated rates and packages.
paths:
  /controlSegmentTemplate/{controlSegmentCode}:
    post:
      summary: Create Control Segment Template
      description: Use this API to create a new Control Segment Template. Only one template can be created at a time.
      operationId: postTemplateControlSegment
      parameters:
      - name: controlSegmentCode
        in: path
        required: true
        description: Unique Code of control segment template.
        schema:
          type: string
          maxLength: 50
          minLength: 1
      - $ref: '#/components/parameters/authKey'
      - $ref: '#/components/parameters/externalData'
      - $ref: '#/components/parameters/x-app-key'
      - $ref: '#/components/parameters/x-request-id'
      - $ref: '#/components/parameters/x-originating-application'
      - $ref: '#/components/parameters/x-externalsystem'
      - $ref: '#/components/parameters/Accept-Language'
      responses:
        '201':
          headers:
            Content-Language:
              description: Audience language
              x-example: en-GB
              schema:
                type: string
                pattern: '[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})'
            Location:
              description: Location of newly created resource
              schema:
                type: string
          description: HATEOAS links which help the consumer to navigate to resources
          content:
            application/json;charset=UTF-8:
              schema:
                $ref: '#/components/schemas/status'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '413':
          $ref: '#/components/responses/413'
        '414':
          $ref: '#/components/responses/414'
        '415':
          $ref: '#/components/responses/415'
        '500':
          $ref: '#/components/responses/500'
        '502':
          $ref: '#/components/responses/502'
        '503':
          $ref: '#/components/responses/503'
      tags:
      - RatePlan
      requestBody:
        content:
          application/json;charset=UTF-8:
            schema:
              allOf:
              - $ref: '#/components/schemas/templateControlSegmentCriteria'
        description: Request object that holds the details of Control Segment Template to be created.
        required: true
    delete:
      summary: Delete Control Segment Template
      description: Use this API to delete a Control Segment Template.
      operationId: removeTemplateControlSegment
      parameters:
      - name: controlSegmentCode
        in: path
        required: true
        description: Unique Code of control segment template.
        schema:
          type: string
          maxLength: 50
          minLength: 1
      - $ref: '#/components/parameters/authKey'
      - $ref: '#/components/parameters/externalData'
      - $ref: '#/components/parameters/x-app-key'
      - $ref: '#/components/parameters/x-request-id'
      - $ref: '#/components/parameters/x-originating-application'
      - $ref: '#/components/parameters/x-externalsystem'
      - $ref: '#/components/parameters/Accept-Language'
      responses:
        '200':
          headers:
            Content-Language:
              description: Audience language
              x-example: en-GB
              schema:
                type: string
                pattern: '[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})'
          description: HATEOAS links which help the consumer to navigate to resources
          content:
            application/json;charset=UTF-8:
              schema:
                $ref: '#/components/schemas/status'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '413':
          $ref: '#/components/responses/413'
        '414':
          $ref: '#/components/responses/414'
        '415':
          $ref: '#/components/responses/415'
        '500':
          $ref: '#/components/responses/500'
        '502':
          $ref: '#/components/responses/502'
        '503':
          $ref: '#/components/responses/503'
      tags:
      - RatePlan
    put:
      summary: Change Control Segment Template
      description: Use this API to modify a Control Segment Template. Only one template can be modified at a time.
      operationId: changeTemplateControlSegment
      parameters:
      - name: controlSegmentCode
        in: path
        required: true
        description: Unique Code of control segment template.
        schema:
          type: string
          maxLength: 50
          minLength: 1
      - $ref: '#/components/parameters/authKey'
      - $ref: '#/components/parameters/externalData'
      - $ref: '#/components/parameters/x-app-key'
      - $ref: '#/components/parameters/x-request-id'
      - $ref: '#/components/parameters/x-originating-application'
      - $ref: '#/components/parameters/x-externalsystem'
      - $ref: '#/components/parameters/Accept-Language'
      responses:
        '200':
          headers:
            Content-Language:
              description: Audience language
              x-example: en-GB
              schema:
                type: string
                pattern: '[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})'
          description: Response Body.
          content:
            application/json;charset=UTF-8:
              schema:
                $ref: '#/components/schemas/status'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '413':
          $ref: '#/components/responses/413'
        '414':
          $ref: '#/components/responses/414'
        '415':
          $ref: '#/components/responses/415'
        '500':
          $ref: '#/components/responses/500'
        '502':
          $ref: '#/components/responses/502'
        '503':
          $ref: '#/components/responses/503'
      tags:
      - RatePlan
      requestBody:
        content:
          application/json;charset=UTF-8:
            schema:
              allOf:
              - $ref: '#/components/schemas/templateControlSegmentToBeChanged'
        description: Request object that holds the details of Control Segment Template to be changed.
        required: true
  /controlSegmentTemplates:
    get:
      summary: Get Control Segment Templates
      description: Use this API to get Control Segment Templates.
      operationId: getTemplateControlSegments
      parameters:
      - name: limit
        in: query
        required: false
        description: Indicates maximum number of records a Web Service should return.
        schema:
          type: integer
      - name: pageNumber
        in: query
        required: false
        description: Index or initial index of the set(page) being requested. If the index goes out of the bounds of the total set count then no data will be returned.
        schema:
          type: integer
      - name: controlSegmentCodes
        in: query
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
          maxItems: 4000
      - name: membershipType
        in: query
        required: false
        description: Membership type code filter.
        schema:
          type: string
      - name: includeInactive
        in: query
        required: false
        description: Include inactive Control Segment Templates.
        schema:
          type: boolean
      - $ref: '#/components/parameters/authKey'
      - $ref: '#/components/parameters/externalData'
      - $ref: '#/components/parameters/x-app-key'
      - $ref: '#/components/parameters/x-request-id'
      - $ref: '#/components/parameters/x-originating-application'
      - $ref: '#/components/parameters/x-externalsystem'
      - $ref: '#/components/parameters/Accept-Language'
      responses:
        '200':
          headers:
            Content-Language:
              description: Audience language
              x-example: en-GB
              schema:
                type: string
                pattern: '[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})'
          description: Response for fetch Control Segment Templates.
          content:
            application/json;charset=UTF-8:
              schema:
                $ref: '#/components/schemas/templateControlSegmentDetails'
        '204':
          description: Control Segment Templates not found.
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '413':
          $ref: '#/components/responses/413'
        '414':
          $ref: '#/components/responses/414'
        '415':
          $ref: '#/components/responses/415'
        '500':
          $ref: '#/components/responses/500'
        '502':
          $ref: '#/components/responses/502'
        '503':
          $ref: '#/components/responses/503'
      tags:
      - RatePlan
  /controlSegments:
    get:
      summary: Get Control Segments
      description: Use this API to search for Control Segments. <p><strong>OperationId:</strong>getControlSegments</p>
      operationId: getControlSegments
      parameters:
      - name: limit
        in: query
        required: false
        description: Indicates maximum number of records a Web Service should return.
        schema:
          type: integer
      - name: pageNumber
        in: query
        required: false
        description: Index or initial index of the set (page) being requested. If the index goes out of bounds then no data will be returned.
        schema:
          type: integer
      - name: hotelIds
        in: query
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
          maxItems: 4000
      - name: controlSegmentCodes
        in: query
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
          maxItems: 4000
      - name: membershipType
        in: query
        required: false
        description: Membership type code filter.
        schema:
          type: string
      - name: membershipLevel
        in: query
        description: Membership level code filter.
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: includeInactive
        in: query
        required: false
        description: Include inactive Control Segments.
        schema:
          type: boolean
      - $ref: '#/components/parameters/authKey'
      - $ref: '#/components/parameters/externalData'
      - $ref: '#/components/parameters/x-app-key'
      - $ref: '#/components/parameters/x-request-id'
      - $ref: '#/components/parameters/x-originating-application'
      - $ref: '#/components/parameters/x-hotelid'
      - $ref: '#/components/parameters/x-externalsystem'
      - $ref: '#/components/parameters/Accept-Language'
      responses:
        '200':
          headers:
            Content-Language:
              description: Audience language
              x-example: en-GB
              schema:
                type: string
                pattern: '[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})'
          description: Response for fetching Control Segments.
          content:
            application/json;charset=UTF-8:
              schema:
                $ref: '#/components/schemas/controlSegmentsDetails'
        '204':
          description: Control Segments not found.
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '413':
          $ref: '#/components/responses/413'
        '414':
          $ref: '#/components/responses/414'
        '415':
          $ref: '#/components/responses/415'
        '500':
          $ref: '#/components/responses/500'
        '502':
          $ref: '#/components/responses/502'
        '503':
          $ref: '#/components/responses/503'
      tags:
      - RatePlan
  /hotels/{hotelId}/bestavailablerates:
    get:
      summary: Fetch Best Available Rates
      description: This API allows to fetch Best Available rates for rate code(s). <p><strong>OperationId:</strong>getBestAvailableRates</p> <p>The maximum allowable limit for this API is <strong>500</strong>.</p> <p>This API allows a time span of <strong>90</strong> days.</p>
      operationId: getBestAvailableRates
      parameters:
      - name: hotelId
        in: path
        required: true
        description: Unique ID that identifies a single hotel property.
        schema:
          type: string
          maxLength: 2000
          minLength: 1
      - name: startDay
        in: query
        required: true
        description: The starting value of the date range.
        schema:
          type: string
          format: date
      - name: limit
        in: query
        required: false
        description: Indicates maximum number of records a Web Service should return.
        schema:
          type: integer
      - name: offset
        in: query
        required: false
        description: Index or initial index of the set(page) being requested. If the index goes out of the bounds of the total set count then no data will be returned.
        schema:
          type: integer
          default: 0
      - name: rateCode
        in: query
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
          maxItems: 4000
      - name: endDay
        in: query
        required: false
        description: The ending value of the date range.
        schema:
          type: string
          format: date
      - name: daysOfWeek
        in: query
        description: Allowed values for the days of week type.
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
            enum:
            - Monday
            - Tuesday
            - Wednesday
            - Thursday
            - Friday
            - Saturday
            - Sunday
          uniqueItems: true
      - name: lengthOfStay
        in: query
        description: Allowed values for length stay type.
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
            enum:
            - One
            - Two
            - Three
            - Four
            - Five
            - Six
            - Seven
            - Eight
          uniqueItems: true
      - $ref: '#/components/parameters/authKey'
      - $ref: '#/components/parameters/externalData'
      - $ref: '#/components/parameters/x-app-key'
      - $ref: '#/components/parameters/x-request-id'
      - $ref: '#/components/parameters/x-originating-application'
      - $ref: '#/components/parameters/x-hotelid'
      - $ref: '#/components/parameters/x-externalsystem'
      - $ref: '#/components/parameters/Accept-Language'
      responses:
        '200':
          headers:
            Content-Language:
              description: Audience language
              x-example: en-GB
              schema:
                type: string
                pattern: '[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*'
          description: Response for validating a coupon.
          content:
            application/json;charset=UTF-8:
              schema:
                $ref: '#/components/schemas/getBestAvailableRatesDetails'
        '204':
          description: BestAvailableRates not found.
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '413':
          $ref: '#/components/responses/413'
        '414':
          $ref: '#/components/responses/414'
        '415':
          $ref: '#/components/responses/415'
        '500':
          $ref: '#/components/responses/500'
        '502':
          $ref: '#/components/responses/502'
        '503':
          $ref: '#/components/responses/503'
      tags:
      - RatePlan
    post:
      summary: Create a Best Available Rates
      description: This API allows to create Best Available rates for rate code(s). <p><strong>OperationId:</strong>postBestAvailableRates</p>
      operationId: postBestAvailableRates
      parameters:
      - name: hotelId
        in: path
        required: true
        description: Unique ID that identifies a single hotel property.
        schema:
          type: string
          maxLength: 2000
          minLength: 1
      - $ref: '#/components/parameters/authKey'
      - $ref: '#/components/parameters/externalData'
      - $ref: '#/components/parameters/x-app-key'
      - $ref: '#/components/parameters/x-request-id'
      - $ref: '#/components/parameters/x-originating-application'
      - $ref: '#/components/parameters/x-hotelid'
      - $ref: '#/components/parameters/x-externalsystem'
      - $ref: '#/components/parameters/Accept-Language'
      responses:
        '201':
          headers:
            Content-Language:
              description: Audience language
              x-example: en-GB
              schema:
                type: string
                pattern: '[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*'
            Location:
              description: Location of newly created resource
              schema:
                type: string
          description: HATEOAS links which help the consumer to navigate to resources
          content:
            application/json;charset=UTF-8:
              schema:
                $ref: '#/components/schemas/status'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '413':
          $ref: '#/components/responses/413'
        '414':
          $ref: '#/components/responses/414'
        '415':
          $ref: '#/components/responses/415'
        '500':
          $ref: '#/components/responses/500'
        '502':
          $ref: '#/components/responses/502'
        '503':
          $ref: '#/components/responses/503'
      tags:
      - RatePlan
      requestBody:
        content:
          application/json;charset=UTF-8:
            schema:
              allOf:
              - $ref: '#/components/schemas/createBestAvailableRates'
        description: Request to create best available rates for rate code(s)
        required: true
    delete:
      summary: Delete Best Available Rates
      description: This API allows to fetch Best Available rates for rate code(s). <p><strong>OperationId:</strong>deleteBestAvailableRates</p>
      operationId: deleteBestAvailableRates
      parameters:
      - name: hotelId
        in: path
        required: true
        description: Unique ID that identifies a single hotel property.
        schema:
          type: string
          maxLength: 2000
          minLength: 1
      - name: code
        in: query
        required: true
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
          maxItems: 4000
      - name: end
        in: query
        required: true
        description: The ending value of the date range.
        schema:
          type: string
          format: date
      - name: start
        in: query
        required: true
        description: The starting value of the date range.
        schema:
          type: string
          format: date
      - name: friday
        in: query
        required: false
        schema:
          type: boolean
      - name: monday
        in: query
        required: false
        schema:
          type: boolean
      - name: saturday
        in: query
        required: false
        schema:
          type: boolean
      - name: sunday
        in: query
        required: false
        schema:
          type: boolean
      - name: thursday
        in: query
        required: false
        schema:
          type: boolean
      - name: tuesday
        in: query
        required: false
        schema:
          type: boolean
      - name: wednesday
        in: query
        required: false
        schema:
          type: boolean
      - name: lOS1
        in: query
        required: false
        description: Indicates Length of Stay 1 configuration.
        schema:
          type: boolean
      - name: lOS2
        in: query
        required: false
        description: Indicates Length of Stay 2 configuration.
        schema:
          type: boolean
      - name: lOS3
        in: query
        required: false
        description: Indicates Length of Stay 3 configuration.
        schema:
          type: boolean
      - name: lOS4
        in: query
        required: false
        description: Indicates Length of Stay 4 configuration.
        schema:
          type: boolean
      - name: lOS5
        in: query
        required: false
        description: Indicates Length of Stay 5 configuration.
        schema:
          type: boolean
      - name: lOS6
        in: query
        required: false
        description: Indicates Length of Stay 6 configuration.
        schema:
          type: boolean
      - name: lOS7
        in: query
        required: false
        description: Indicates Length of Stay 7 configuration.
        schema:
          type: boolean
      - name: lOS8
        in: query
        required: false
        description: Indicates Length of Stay 8 configuration.
        schema:
          type: boolean
      - $ref: '#/components/parameters/authKey'
      - $ref: '#/components/parameters/externalData'
      - $ref: '#/components/parameters/x-app-key'
      - $ref: '#/components/parameters/x-request-id'
      - $ref: '#/components/parameters/x-originating-application'
      - $ref: '#/components/parameters/x-hotelid'
      - $ref: '#/components/parameters/x-externalsystem'
      - $ref: '#/components/parameters/Accept-Language'
      responses:
        '200':
          headers:
            Content-Language:
              description: Audience language
              x-example: en-GB
              schema:
                type: string
                pattern: '[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*'
            Location:
              description: Location of newly created resource
              schema:
                type: string
          description: HATEOAS links which help the consumer to navigate to resources
          content:
            application/json;charset=UTF-8:
              schema:
                $ref: '#/components/schemas/status'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '413':
          $ref: '#/components/responses/413'
        '414':
          $ref: '#/components/responses/414'
        '415':
          $ref: '#/components/responses/415'
        '500':
          $ref: '#/components/responses/500'
        '502':
          $ref: '#/components/responses/502'
        '503':
          $ref: '#/components/responses/503'
      tags:
      - RatePlan
  /hotels/{hotelId}/blocks/ratePlans:
    get:
      summary: Get rate plans for a given block
      description: This API allows you to fetch Rate Plans on a specific block. <p><strong>OperationId:</strong>getRatePlansForBlock</p>
      operationId: getRatePlansForBlock
      parameters:
      - name: hotelId
        in: path
        required: true
        description: Unique ID that identifies a single hotel property.
        schema:
          type: string
          maxLength: 2000
          minLength: 1
      - name: ratePlanCode
        in: query
        description: Rate Plan code.
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
          maxItems: 4000
      - name: beginDate
        in: query
        required: false
        description: Start sell date of the rate code.
        schema:
          type: string
          format: date
      - name: endDate
        in: query
        required: false
        description: End sell date of the rate code.
        schema:
          type: string
          format: date
      - name: companyId
        in: query
        required: false
        description: A unique identifying value assigned by the creating system. The ID attribute may be used to reference a primary-key value within a database or in a particular implementation.
        schema:
          type: string
      - name: companyIdType
        in: query
        required: false
        description: A reference to the type of object defined by the UniqueID element. Refer to OpenTravel Code List Unique ID Type (UIT).
        schema:
          type: string
      - name: sourceId
        in: query
        required: false
        description: A unique identifying value assigned by the creating system. The ID attribute may be used to reference a primary-key value within a database or in a particular implementation.
        schema:
          type: string
      - name: sourceIdType
        in: query
        required: false
        description: A reference to the type of object defined by the UniqueID element. Refer to OpenTravel Code List Unique ID Type (UIT).
        schema:
          type: string
      - name: agentId
        in: query
        required: false
        description: A unique identifying value assigned by the creating system. The ID attribute may be used to reference a primary-key value within a database or in a particular implementation.
        schema:
          type: string
      - name: agentIdType
        in: query
        required: false
        description: A reference to the type of object defined by the UniqueID element. Refer to OpenTravel Code List Unique ID Type (UIT).
        schema:
          type: string
      - name: negotiatedOnly
        in: query
        required: false
        description: Flag to indicate if negotiated rate codes to be fetched.
        schema:
          type: boolean
      - name: currencyCode
        in: query
        required: false
        description: Currency for the rate code to be fetched.
        schema:
          type: string
      - $ref: '#/components/parameters/authKey'
      - $ref: '#/components/parameters/externalData'
      - $ref: '#/components/parameters/x-app-key'
      - $ref: '#/components/parameters/x-request-id'
      - $ref: '#/components/parameters/x-originating-application'
      - $ref: '#/components/parameters/x-hotelid'
      - $ref: '#/components/parameters/x-externalsystem'
      - $ref: '#/components/parameters/Accept-Language'
      responses:
        '200':
          headers:
            Content-Language:
              description: Audience language
              x-example: en-GB
              schema:
                type: string
                pattern: '[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*'
          description: Response object to fetch rate plans summary information for blocks.
          content:
            application/json;charset=UTF-8:
              schema:
                $ref: '#/components/schemas/blockRatePlans'
        '204':
          description: RatePlansForBlock not found.
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '413':
          $ref: '#/components/responses/413'
        '414':
          $ref: '#/components/responses/414'
        '415':
          $ref: '#/components/responses/415'
        '500':
          $ref: '#/components/responses/500'
        '502':
          $ref: '#/components/responses/502'
        '503':
          $ref: '#/components/responses/503'
      tags:
      - RatePlan
  /hotels/{hotelId}/controlSegments/{controlSegmentCode}:
    post:
      summary: Create a new Control Segment
      description: Use this API to create a new Control Segment. <p><strong>OperationId:</strong>postControlSegment</p>
      operationId: postControlSegment
      parameters:
      - name: controlSegmentCode
        in: path
        required: true
        description: Unique Code of the Control Segment.
        schema:
          type: string
          maxLength: 50
          minLength: 1
      - name: hotelId
        in: path
        required: true
        description: Unique ID of hotel.
        schema:
          type: string
          maxLength: 2000
          minLength: 1
      - $ref: '#/components/parameters/authKey'
      - $ref: '#/components/parameters/externalData'
      - $ref: '#/components/parameters/x-app-key'
      - $ref: '#/components/parameters/x-request-id'
      - $ref: '#/components/parameters/x-originating-application'
      - $ref: '#/components/parameters/x-hotelid'
      - $ref: '#/components/parameters/x-externalsystem'
      - $ref: '#/components/parameters/Accept-Language'
      responses:
        '201':
          headers:
            Content-Language:
              description: Audience language
              x-example: en-GB
              schema:
                type: string
                pattern: '[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})'
            Location:
              description: Location of newly created resource
              schema:
                type: string
          description: HATEOAS links which hel

# --- truncated at 32 KB (545 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/oracle-hospitality/refs/heads/main/openapi/oracle-hospitality-rateplan-api-openapi.yml