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… #
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-rate-plan-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

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

Get an API key

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

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

OpenAPI Specification

oracle-hospitality-rate-plan-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.
  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: Rate Plan
  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:
      - Rate Plan
      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:
      - Rate Plan
    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:
      - Rate Plan
      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:
      - Rate Plan
  /controlSegments:
    get:
      summary: Get Control Segments
      description: 'Use this API to search for Control Segments.

        OperationId:getControlSegments'
      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:
      - Rate Plan
  /hotels/{hotelId}/bestavailablerates:
    get:
      summary: Fetch Best Available Rates
      description: 'This API allows to fetch Best Available rates for rate code(s).

        OperationId:getBestAvailableRates


        The maximum allowable limit for this API is 500.


        This API allows a time span of 90 days.'
      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:
      - Rate Plan
    post:
      summary: Create a Best Available Rates
      description: 'This API allows to create Best Available rates for rate code(s).

        OperationId:postBestAvailableRates'
      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:
      - Rate Plan
      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).

        OperationId:deleteBestAvailableRates'
      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:
      - Rate Plan
  /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.

        OperationId:getRatePlansForBlock'
      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:
      - Rate Plan
  /hotels/{hotelId}/controlSegments/{controlSegmentCode}:
    post:
      summary: Create a new Control Segment
      description: 'Use this API to create a new Control Segment.

        OperationId:postControlSegment'
      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 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: '

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