OPERA Cloud Rate API

APIs to cater for Rate Availability functionality in OPERA Cloud. 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. Compatible with OPERA Cloud release 26.2.0.0. 144 operation(s) documented; base path /rtp/v1. Harvested verbatim from Oracle's public hospitality-api-docs repository (Swagger 2.0, release 26.2.0.0).

OpenAPI Specification

oracle-hospitality-property-v1-rtp.json Raw ↑
{
  "swagger": "2.0",
  "info": {
    "title": "OPERA Cloud Rate 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"
    }
  },
  "schemes": [
    "https"
  ],
  "basePath": "/rtp/v1",
  "produces": [
    "application/json"
  ],
  "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,
            "type": "string",
            "minLength": 1,
            "maxLength": 50,
            "description": "Unique Code of control segment template."
          },
          {
            "name": "templateControlSegmentCriteria",
            "in": "body",
            "required": true,
            "description": "Request object that holds the details of Control Segment Template to be created.",
            "schema": {
              "allOf": [
                {
                  "$ref": "#/definitions/templateControlSegmentCriteria"
                }
              ]
            }
          },
          {
            "$ref": "#/parameters/authKey"
          },
          {
            "$ref": "#/parameters/externalData"
          },
          {
            "$ref": "#/parameters/x-app-key"
          },
          {
            "$ref": "#/parameters/x-request-id"
          },
          {
            "$ref": "#/parameters/x-originating-application"
          },
          {
            "$ref": "#/parameters/x-externalsystem"
          },
          {
            "$ref": "#/parameters/Accept-Language"
          }
        ],
        "responses": {
          "201": {
            "headers": {
              "Content-Language": {
                "type": "string",
                "description": "Audience language",
                "pattern": "[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})",
                "x-example": "en-GB"
              },
              "Location": {
                "type": "string",
                "description": "Location of newly created resource"
              }
            },
            "description": "HATEOAS links which help the consumer to navigate to resources",
            "schema": {
              "$ref": "#/definitions/status"
            }
          },
          "400": {
            "$ref": "#/responses/400"
          },
          "401": {
            "$ref": "#/responses/401"
          },
          "403": {
            "$ref": "#/responses/403"
          },
          "404": {
            "$ref": "#/responses/404"
          },
          "405": {
            "$ref": "#/responses/405"
          },
          "406": {
            "$ref": "#/responses/406"
          },
          "413": {
            "$ref": "#/responses/413"
          },
          "414": {
            "$ref": "#/responses/414"
          },
          "415": {
            "$ref": "#/responses/415"
          },
          "500": {
            "$ref": "#/responses/500"
          },
          "502": {
            "$ref": "#/responses/502"
          },
          "503": {
            "$ref": "#/responses/503"
          }
        },
        "consumes": [
          "application/json;charset=UTF-8"
        ],
        "produces": [
          "application/json;charset=UTF-8"
        ],
        "tags": [
          "RatePlan"
        ]
      },
      "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,
            "type": "string",
            "minLength": 1,
            "maxLength": 50,
            "description": "Unique Code of control segment template."
          },
          {
            "$ref": "#/parameters/authKey"
          },
          {
            "$ref": "#/parameters/externalData"
          },
          {
            "$ref": "#/parameters/x-app-key"
          },
          {
            "$ref": "#/parameters/x-request-id"
          },
          {
            "$ref": "#/parameters/x-originating-application"
          },
          {
            "$ref": "#/parameters/x-externalsystem"
          },
          {
            "$ref": "#/parameters/Accept-Language"
          }
        ],
        "responses": {
          "200": {
            "headers": {
              "Content-Language": {
                "type": "string",
                "description": "Audience language",
                "pattern": "[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})",
                "x-example": "en-GB"
              }
            },
            "description": "HATEOAS links which help the consumer to navigate to resources",
            "schema": {
              "$ref": "#/definitions/status"
            }
          },
          "400": {
            "$ref": "#/responses/400"
          },
          "401": {
            "$ref": "#/responses/401"
          },
          "403": {
            "$ref": "#/responses/403"
          },
          "404": {
            "$ref": "#/responses/404"
          },
          "405": {
            "$ref": "#/responses/405"
          },
          "406": {
            "$ref": "#/responses/406"
          },
          "413": {
            "$ref": "#/responses/413"
          },
          "414": {
            "$ref": "#/responses/414"
          },
          "415": {
            "$ref": "#/responses/415"
          },
          "500": {
            "$ref": "#/responses/500"
          },
          "502": {
            "$ref": "#/responses/502"
          },
          "503": {
            "$ref": "#/responses/503"
          }
        },
        "consumes": [
          "application/json;charset=UTF-8"
        ],
        "produces": [
          "application/json;charset=UTF-8"
        ],
        "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,
            "type": "string",
            "minLength": 1,
            "maxLength": 50,
            "description": "Unique Code of control segment template."
          },
          {
            "name": "templateControlSegmentToBeChanged",
            "in": "body",
            "required": true,
            "description": "Request object that holds the details of Control Segment Template to be changed.",
            "schema": {
              "allOf": [
                {
                  "$ref": "#/definitions/templateControlSegmentToBeChanged"
                }
              ]
            }
          },
          {
            "$ref": "#/parameters/authKey"
          },
          {
            "$ref": "#/parameters/externalData"
          },
          {
            "$ref": "#/parameters/x-app-key"
          },
          {
            "$ref": "#/parameters/x-request-id"
          },
          {
            "$ref": "#/parameters/x-originating-application"
          },
          {
            "$ref": "#/parameters/x-externalsystem"
          },
          {
            "$ref": "#/parameters/Accept-Language"
          }
        ],
        "responses": {
          "200": {
            "headers": {
              "Content-Language": {
                "type": "string",
                "description": "Audience language",
                "pattern": "[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})",
                "x-example": "en-GB"
              }
            },
            "description": "Response Body.",
            "schema": {
              "$ref": "#/definitions/status"
            }
          },
          "400": {
            "$ref": "#/responses/400"
          },
          "401": {
            "$ref": "#/responses/401"
          },
          "403": {
            "$ref": "#/responses/403"
          },
          "404": {
            "$ref": "#/responses/404"
          },
          "405": {
            "$ref": "#/responses/405"
          },
          "406": {
            "$ref": "#/responses/406"
          },
          "413": {
            "$ref": "#/responses/413"
          },
          "414": {
            "$ref": "#/responses/414"
          },
          "415": {
            "$ref": "#/responses/415"
          },
          "500": {
            "$ref": "#/responses/500"
          },
          "502": {
            "$ref": "#/responses/502"
          },
          "503": {
            "$ref": "#/responses/503"
          }
        },
        "consumes": [
          "application/json;charset=UTF-8"
        ],
        "produces": [
          "application/json;charset=UTF-8"
        ],
        "tags": [
          "RatePlan"
        ]
      }
    },
    "/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.",
            "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.",
            "type": "integer"
          },
          {
            "name": "controlSegmentCodes",
            "in": "query",
            "type": "array",
            "maxItems": 4000,
            "collectionFormat": "multi",
            "items": {
              "type": "string"
            },
            "required": false
          },
          {
            "name": "membershipType",
            "in": "query",
            "required": false,
            "description": "Membership type code filter.",
            "type": "string"
          },
          {
            "name": "includeInactive",
            "in": "query",
            "required": false,
            "description": "Include inactive Control Segment Templates.",
            "type": "boolean"
          },
          {
            "$ref": "#/parameters/authKey"
          },
          {
            "$ref": "#/parameters/externalData"
          },
          {
            "$ref": "#/parameters/x-app-key"
          },
          {
            "$ref": "#/parameters/x-request-id"
          },
          {
            "$ref": "#/parameters/x-originating-application"
          },
          {
            "$ref": "#/parameters/x-externalsystem"
          },
          {
            "$ref": "#/parameters/Accept-Language"
          }
        ],
        "responses": {
          "200": {
            "headers": {
              "Content-Language": {
                "type": "string",
                "description": "Audience language",
                "pattern": "[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})",
                "x-example": "en-GB"
              }
            },
            "description": "Response for fetch Control Segment Templates.",
            "schema": {
              "$ref": "#/definitions/templateControlSegmentDetails"
            }
          },
          "204": {
            "description": "Control Segment Templates not found."
          },
          "400": {
            "$ref": "#/responses/400"
          },
          "401": {
            "$ref": "#/responses/401"
          },
          "403": {
            "$ref": "#/responses/403"
          },
          "404": {
            "$ref": "#/responses/404"
          },
          "405": {
            "$ref": "#/responses/405"
          },
          "406": {
            "$ref": "#/responses/406"
          },
          "413": {
            "$ref": "#/responses/413"
          },
          "414": {
            "$ref": "#/responses/414"
          },
          "415": {
            "$ref": "#/responses/415"
          },
          "500": {
            "$ref": "#/responses/500"
          },
          "502": {
            "$ref": "#/responses/502"
          },
          "503": {
            "$ref": "#/responses/503"
          }
        },
        "consumes": [
          "application/json;charset=UTF-8"
        ],
        "produces": [
          "application/json;charset=UTF-8"
        ],
        "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.",
            "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.",
            "type": "integer"
          },
          {
            "name": "hotelIds",
            "in": "query",
            "type": "array",
            "maxItems": 4000,
            "collectionFormat": "multi",
            "items": {
              "type": "string"
            },
            "required": false
          },
          {
            "name": "controlSegmentCodes",
            "in": "query",
            "type": "array",
            "maxItems": 4000,
            "collectionFormat": "multi",
            "items": {
              "type": "string"
            },
            "required": false
          },
          {
            "name": "membershipType",
            "in": "query",
            "required": false,
            "description": "Membership type code filter.",
            "type": "string"
          },
          {
            "name": "membershipLevel",
            "in": "query",
            "type": "array",
            "collectionFormat": "multi",
            "description": "Membership level code filter.",
            "items": {
              "type": "string"
            },
            "required": false
          },
          {
            "name": "includeInactive",
            "in": "query",
            "required": false,
            "description": "Include inactive Control Segments.",
            "type": "boolean"
          },
          {
            "$ref": "#/parameters/authKey"
          },
          {
            "$ref": "#/parameters/externalData"
          },
          {
            "$ref": "#/parameters/x-app-key"
          },
          {
            "$ref": "#/parameters/x-request-id"
          },
          {
            "$ref": "#/parameters/x-originating-application"
          },
          {
            "$ref": "#/parameters/x-hotelid"
          },
          {
            "$ref": "#/parameters/x-externalsystem"
          },
          {
            "$ref": "#/parameters/Accept-Language"
          }
        ],
        "responses": {
          "200": {
            "headers": {
              "Content-Language": {
                "type": "string",
                "description": "Audience language",
                "pattern": "[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})",
                "x-example": "en-GB"
              }
            },
            "description": "Response for fetching Control Segments.",
            "schema": {
              "$ref": "#/definitions/controlSegmentsDetails"
            }
          },
          "204": {
            "description": "Control Segments not found."
          },
          "400": {
            "$ref": "#/responses/400"
          },
          "401": {
            "$ref": "#/responses/401"
          },
          "403": {
            "$ref": "#/responses/403"
          },
          "404": {
            "$ref": "#/responses/404"
          },
          "405": {
            "$ref": "#/responses/405"
          },
          "406": {
            "$ref": "#/responses/406"
          },
          "413": {
            "$ref": "#/responses/413"
          },
          "414": {
            "$ref": "#/responses/414"
          },
          "415": {
            "$ref": "#/responses/415"
          },
          "500": {
            "$ref": "#/responses/500"
          },
          "502": {
            "$ref": "#/responses/502"
          },
          "503": {
            "$ref": "#/responses/503"
          }
        },
        "consumes": [
          "application/json;charset=UTF-8"
        ],
        "produces": [
          "application/json;charset=UTF-8"
        ],
        "tags": [
          "RatePlan"
        ]
      }
    },
    "/displaySets": {
      "get": {
        "summary": "Get Display Sets",
        "description": "Use this API to get Display Sets. <p><strong>OperationId:</strong>getDisplaySets</p>",
        "operationId": "getDisplaySets",
        "parameters": [
          {
            "name": "fetchInactive",
            "in": "query",
            "required": false,
            "description": "Determines wether to fetch inactive records or not.",
            "type": "boolean"
          },
          {
            "name": "codes",
            "in": "query",
            "type": "array",
            "maxItems": 4000,
            "collectionFormat": "multi",
            "description": "Codes to be searched.",
            "items": {
              "type": "string"
            },
            "required": false
          },
          {
            "name": "wildCard",
            "in": "query",
            "required": false,
            "description": "Wildcard search on the code.",
            "type": "string"
          },
          {
            "name": "description",
            "in": "query",
            "required": false,
            "description": "Description of the code.",
            "type": "string"
          },
          {
            "$ref": "#/parameters/authKey"
          },
          {
            "$ref": "#/parameters/externalData"
          },
          {
            "$ref": "#/parameters/x-app-key"
          },
          {
            "$ref": "#/parameters/x-request-id"
          },
          {
            "$ref": "#/parameters/x-originating-application"
          },
          {
            "$ref": "#/parameters/x-hotelid"
          },
          {
            "$ref": "#/parameters/x-externalsystem"
          },
          {
            "$ref": "#/parameters/Accept-Language"
          }
        ],
        "responses": {
          "200": {
            "headers": {
              "Content-Language": {
                "type": "string",
                "description": "Audience language",
                "pattern": "[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*",
                "x-example": "en-GB"
              }
            },
            "description": "Response object for fetching Display Sets.",
            "schema": {
              "$ref": "#/definitions/displaySetsDetails"
            }
          },
          "204": {
            "description": "DisplaySets not found."
          },
          "400": {
            "$ref": "#/responses/400"
          },
          "401": {
            "$ref": "#/responses/401"
          },
          "403": {
            "$ref": "#/responses/403"
          },
          "404": {
            "$ref": "#/responses/404"
          },
          "405": {
            "$ref": "#/responses/405"
          },
          "406": {
            "$ref": "#/responses/406"
          },
          "413": {
            "$ref": "#/responses/413"
          },
          "414": {
            "$ref": "#/responses/414"
          },
          "415": {
            "$ref": "#/responses/415"
          },
          "500": {
            "$ref": "#/responses/500"
          },
          "502": {
            "$ref": "#/responses/502"
          },
          "503": {
            "$ref": "#/responses/503"
          }
        },
        "consumes": [
          "application/json;charset=UTF-8"
        ],
        "produces": [
          "application/json;charset=UTF-8"
        ],
        "tags": [
          "ChainConfig"
        ]
      },
      "post": {
        "summary": "Create Display Sets",
        "description": "Use this API to create Display Sets. <p><strong>OperationId:</strong>postDisplaySets</p>",
        "operationId": "postDisplaySets",
        "parameters": [
          {
            "name": "displaySetsCriteria",
            "in": "body",
            "required": true,
            "description": "Request object for creating Display Sets.",
            "schema": {
              "allOf": [
                {
                  "$ref": "#/definitions/displaySetsCriteria"
                }
              ]
            }
          },
          {
            "$ref": "#/parameters/authKey"
          },
          {
            "$ref": "#/parameters/externalData"
          },
          {
            "$ref": "#/parameters/x-app-key"
          },
          {
            "$ref": "#/parameters/x-request-id"
          },
          {
            "$ref": "#/parameters/x-originating-application"
          },
          {
            "$ref": "#/parameters/x-hotelid"
          },
          {
            "$ref": "#/parameters/x-externalsystem"
          },
          {
            "$ref": "#/parameters/Accept-Language"
          }
        ],
        "responses": {
          "201": {
            "headers": {
              "Content-Language": {
                "type": "string",
                "description": "Audience language",
                "pattern": "[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*",
                "x-example": "en-GB"
              },
              "Location": {
                "type": "string",
                "description": "Location of newly created resource"
              }
            },
            "description": "HATEOAS links which help the consumer to navigate to resources",
            "schema": {
              "$ref": "#/definitions/status"
            }
          },
          "400": {
            "$ref": "#/responses/400"
          },
          "401": {
            "$ref": "#/responses/401"
          },
          "403": {
            "$ref": "#/responses/403"
          },
          "404": {
            "$ref": "#/responses/404"
          },
          "405": {
            "$ref": "#/responses/405"
          },
          "406": {
            "$ref": "#/responses/406"
          },
          "413": {
            "$ref": "#/responses/413"
          },
          "414": {
            "$ref": "#/responses/414"
          },
          "415": {
            "$ref": "#/responses/415"
          },
          "500": {
            "$ref": "#/responses/500"
          },
          "502": {
            "$ref": "#/responses/502"
          },
          "503": {
            "$ref": "#/responses/503"
          }
        },
        "consumes": [
          "application/json;charset=UTF-8"
        ],
        "produces": [
          "application/json;charset=UTF-8"
        ],
        "tags": [
          "ChainConfig"
        ]
      }
    },
    "/displaySets/{displaySetsId}": {
      "put": {
        "summary": "Change Display Sets",
        "description": "Use this API to update Display Sets. <p><strong>OperationId:</strong>putDisplaySets</p>",
        "operationId": "putDisplaySets",
        "parameters": [
          {
            "name": "displaySetsId",
            "in": "path",
            "required": true,
            "type": "string",
            "minLength": 1,
            "maxLength": 2000,
            "description": "Unique ID of Display Sets."
          },
          {
            "name": "displaySetsToBeChanged",
            "in": "body",
            "required": true,
            "description": "Request object for changing Display Sets.",
            "schema": {
              "allOf": [
                {
                  "$ref": "#/definitions/displaySetsToBeChanged"
                }
              ]
            }
          },
          {
            "$ref": "#/parameters/authKey"
          },
          {
            "$ref": "#/parameters/externalData"
          },
          {
            "$ref": "#/parameters/x-app-key"
          },
          {
            "$ref": "#/parameters/x-request-id"
          },
          {
            "$ref": "#/parameters/x-originating-application"
          },
          {
            "$ref": "#/parameters/x-hotelid"
          },
          {
            "$ref": "#/parameters/x-externalsystem"
          },
          {
            "$ref": "#/parameters/Accept-Language"
          }
        ],
        "responses": {
          "200": {
            "headers": {
              "Content-Language": {
                "type": "string",
                "description": "Audience language",
                "pattern": "[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*",
                "x-example": "en-GB"
              },
              "Location": {
                "type": "string",
                "description": "Location of newly created resource"
              }
            },
            "description": "Response Body.",
            "schema": {
              "$ref": "#/definitions/status"
            }
          },
          "400": {
            "$ref": "#/responses/400"
          },
          "401": {
            "$ref": "#/responses/401"
          },
          "403": {
            "$ref": "#/responses/403"
          },
          "404": {
            "$ref": "#/responses/404"
          },
          "405": {
            "$ref": "#/responses/405"
          },
          "406": {
            "$ref": "#/responses/406"
          },
          "413": {
            "$ref": "#/responses/413"
          },
          "414": {
            "$ref": "#/responses/414"
          },
          "415": {
            "$ref": "#/responses/415"
          },
          "500": {
            "$ref": "#/responses/500"
          },
          "502": {
            "$ref": "#/responses/502"
          },
          "503": {
            "$ref": "#/responses/503"
          }
        },
        "consumes": [
          "application/json;charset=UTF-8"
        ],
        "produces": [
          "application/json;charset=UTF-8"
        ],
        "tags": [
          "ChainConfig"
        ]
      },
      "delete": {
        "summary": "Delete Display Sets",
        "description": "Use this API to delete Display Sets. <p><strong>OperationId:</strong>deleteDisplaySets</p>",
        "operationId": "deleteDisplaySets",
        "parameters": [
          {
            "name": "displaySetsId",
            "in": "path",
            "required": true,
            "type": "string",
            "minLength": 1,
            "maxLength": 2000,
            "description": "Unique ID of Display Sets."
          },
          {
            "$ref": "#/parameters/authKey"
          },
          {
            "$ref": "#/parameters/externalData"
          },
          {
            "$ref": "#/parameters/x-app-key"
          },
          {
            "$ref": "#/parameters/x-request-id"
          },
          {
            "$ref": "#/parameters/x-originating-application"
          },
          {
            "$ref": "#/parameters/x-hotelid"
          },
          {
            "$ref": "#/parameters/x-externalsystem"
          },
          {
            "$ref": "#/parameters/Accept-Language"
          }
        ],
        "responses": {
          "200": {
            "headers": {
              "Content-Language": {
                "type": "string",
                "description": "Audience language",
                "pattern": "[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*",
                "x-example": "en-GB"
              },
              "Location": {
                "type": "string",
                "description": "Location of newly created resource"
              }
            },
            "description": "HATEOAS links which help the consumer to navigate to resources",
            "schema": {
              "$ref": "#/definitions/status"
            }
          },
          "400": {
            "$ref": "#/responses/400"
          },
          "401": {
            "$ref": "#/responses/401"
          },
          "403": {
            "$ref": "#/responses/403"
          },
          "404": {
            "$ref": "#/responses/404"
          },
          "405": {
            "$ref": "#/responses/405"
          },
          "406": {
            "$ref": "#/responses/406"
          },
          "413": {
            "$ref": "#/responses/413"
          },
          "414": {
            "$ref": "#/responses/414"
          },
          "415": {
            "$ref": "#/responses/415"
          },
          "500": {
            "$ref": "#/responses/500"
          },
          "502": {
            "$ref": "#/responses/502"
          },
          "503": {
            "$ref": "#/responses/503"
          }
        },
        "consumes": [
          "application/json;charset=UTF-8"
        ],
        "produces": [
          "application/json;charset=UTF-8"
        ],
        "tags": [
          "ChainConfig"
        ]
      }
    },
    "/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,
            "type": "string",
            "minLength": 1,
            "maxLength": 2000,
            "description": "Unique ID that identifies a single hotel property."
          },
          {
            "name": "startDay",
            "in": "query",
            "required": true,
            "description": "The starting value of the date range.",
            "type": "string",
            "format": "date"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Indicates maximum number of records a Web Service should return.",
            "type": "integer"
          },
          {
            "name": "offset",
            "in": "query",
            "default": 0,
            "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.",
            "type": "integer"
          },
          {
            "name": "rateCode",
            "in": "query",
            "type": "array",
            "maxItems": 4000,
            "collectionFormat": "multi",
            "items": {
              "type": "string"
            },
            "required": false
          },
          {
            "name": "endDay",
            "in": "query",
            "required": false,
            "description": "The ending value of the date range.",
            "type": "string",
            "format": "date"
          },


# --- truncated at 32 KB (803 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/oracle-hospitality/refs/heads/main/openapi/oracle-hospitality-property-v1-rtp.json