{
"swagger": "2.0",
"info": {
"title": "OPERA Cloud Distribution Outbound Lookup",
"version": "26.2.0.0",
"description": "Oracle Hospitality Distribution External Lookup is to get rate plan and room types from external channel partners.
Compatible with OPERA Cloud release 26.2.0.0
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.
", "contact": { "email": "hospitality_apis_ww_grp@oracle.com" }, "license": { "name": "UPL", "url": "https://opensource.org/licenses/upl" }, "termsOfService": "https://www.oracle.com/legal/terms.html" }, "basePath": "/lookup/v1", "schemes": [ "https" ], "produces": [ "application/json; charset=utf-8" ], "paths": { "/hotels/{hotelCode}/externalRoomTypes": { "get": { "summary": "Get External Room Types", "operationId": "getExternalRoomTypes", "description": "Provide an ability to get room types information from a channel partner to OPERA Cloud Distribution.", "tags": [ "Lookup" ], "parameters": [ { "$ref": "#/parameters/authorization" }, { "$ref": "#/parameters/hotelCode" }, { "$ref": "#/parameters/channelCode" }, { "$ref": "#/parameters/lang" }, { "$ref": "#/parameters/limit" }, { "$ref": "#/parameters/offset" } ], "produces": [ "application/json; charset=utf-8" ], "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": "OK", "schema": { "$ref": "#/definitions/ExternalRoomTypesResponse" } }, "400": { "description": "Request data provided is invalid", "schema": { "$ref": "#/definitions/ExceptionDetail" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/ExceptionDetail" } }, "403": { "description": "Forbidden", "schema": { "$ref": "#/definitions/ExceptionDetail" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/ExceptionDetail" } }, "405": { "description": "Not Allowed", "schema": { "$ref": "#/definitions/ExceptionDetail" } }, "406": { "description": "Not Acceptable", "schema": { "$ref": "#/definitions/ExceptionDetail" } }, "411": { "description": "Length Required", "schema": { "$ref": "#/definitions/ExceptionDetail" } }, "413": { "description": "Payload Too Large", "schema": { "$ref": "#/definitions/ExceptionDetail" } }, "414": { "description": "URI Too Long", "schema": { "$ref": "#/definitions/ExceptionDetail" } }, "415": { "description": "Unsupported Media Type", "schema": { "$ref": "#/definitions/ExceptionDetail" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/ExceptionDetail" } }, "502": { "description": "Bad Gateway", "schema": { "$ref": "#/definitions/ExceptionDetail" } }, "503": { "description": "Service Unavailable", "schema": { "$ref": "#/definitions/ExceptionDetail" } } } } }, "/hotels/{hotelCode}/externalRatePlans": { "get": { "summary": "Get External Rate Plans", "operationId": "getExternalRatePlans", "description": "Provide an ability to get rate plan codes information from a channel partner to OPERA Cloud Distribution.", "tags": [ "Lookup" ], "parameters": [ { "$ref": "#/parameters/authorization" }, { "$ref": "#/parameters/hotelCode" }, { "$ref": "#/parameters/channelCode" }, { "$ref": "#/parameters/roomType" }, { "$ref": "#/parameters/lang" }, { "$ref": "#/parameters/limit" }, { "$ref": "#/parameters/offset" } ], "produces": [ "application/json; charset=utf-8" ], "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": "OK", "schema": { "$ref": "#/definitions/ExternalRatePlansResponse" } }, "400": { "description": "Request data provided is invalid", "schema": { "$ref": "#/definitions/ExceptionDetail" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/ExceptionDetail" } }, "403": { "description": "Forbidden", "schema": { "$ref": "#/definitions/ExceptionDetail" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/ExceptionDetail" } }, "405": { "description": "Not Allowed", "schema": { "$ref": "#/definitions/ExceptionDetail" } }, "406": { "description": "Not Acceptable", "schema": { "$ref": "#/definitions/ExceptionDetail" } }, "411": { "description": "Length Required", "schema": { "$ref": "#/definitions/ExceptionDetail" } }, "413": { "description": "Payload Too Large", "schema": { "$ref": "#/definitions/ExceptionDetail" } }, "414": { "description": "URI Too Long", "schema": { "$ref": "#/definitions/ExceptionDetail" } }, "415": { "description": "Unsupported Media Type", "schema": { "$ref": "#/definitions/ExceptionDetail" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/ExceptionDetail" } }, "502": { "description": "Bad Gateway", "schema": { "$ref": "#/definitions/ExceptionDetail" } }, "503": { "description": "Service Unavailable", "schema": { "$ref": "#/definitions/ExceptionDetail" } } } } } }, "parameters": { "authorization": { "name": "authorization", "description": "A Basic authentication header using the base64 hash of your Client user and Client password in the format base64 encoded to the Basic Access Authorization standard.", "type": "string", "in": "header", "required": true }, "hotelCode": { "name": "hotelCode", "type": "string", "description": "A unique identifier value for the property/hotel associated with a channel.", "in": "path", "required": true, "minLength": 1, "maxLength": 50, "x-example": "XUSXXYY99" }, "channelCode": { "name": "channelCode", "type": "string", "description": "A unique identifier value for the channel associated with a property/hotel.", "in": "query", "required": false, "minLength": 1, "maxLength": 50, "x-example": "CH1" }, "roomType": { "name": "roomType", "type": "string", "description": "The OPERA Cloud Hotel/proeprty Room type code.", "in": "query", "required": false, "minLength": 1, "x-example": "XA1K" }, "lang": { "name": "lang", "in": "query", "description": "ISO639 / BCP 47 language code format.", "required": false, "type": "string", "x-example": "en-US" }, "limit": { "name": "limit", "in": "query", "description": "Indicates maximum number of records a Web Service should return in the response. Maximum record limit is 1000.", "required": true, "type": "integer", "maximum": 1000, "default": 1000, "x-example": 1000 }, "offset": { "name": "offset", "in": "query", "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.", "required": true, "type": "integer", "x-example": 1 } }, "definitions": { "ExternalRoomTypesResponse": { "type": "object", "properties": { "property": { "type": "object", "$ref": "#/definitions/Property" }, "items": { "type": "array", "items": { "$ref": "#/definitions/RoomTypeItem" } }, "hasMore": { "type": "boolean", "example": true, "description": "Indicates whether all the records are included in the response or not. Absence of the attribute values should be consider as all rows fetched in the response." }, "totalResults": { "type": "integer", "example": 300, "description": "Total number of records queried." }, "limit": { "type": "integer", "example": 200, "description": "Indicates maximum number of records a Web Service should return in the response." }, "count": { "type": "integer", "example": 100, "description": "Total number of rows returned." }, "offset": { "type": "integer", "example": 0, "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." } } }, "ExternalRatePlansResponse": { "type": "object", "properties": { "property": { "type": "object", "$ref": "#/definitions/Property" }, "items": { "type": "array", "items": { "$ref": "#/definitions/RatePlanItem" } }, "hasMore": { "type": "boolean", "example": true, "description": "Indicates whether all the records are included in the response or not. Absence of the attribute values should be consider as all rows fetched in the response." }, "totalResults": { "type": "integer", "example": 300, "description": "Total number of records queried." }, "limit": { "type": "integer", "example": 200, "description": "Indicates maximum number of records a Web Service should return in the response." }, "count": { "type": "integer", "example": 100, "description": "Total number of rows returned." }, "offset": { "type": "integer", "example": 0, "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." } } }, "Property": { "type": "object", "properties": { "hotelCode": { "type": "string", "example": "XUSXXYY99", "description": "A unique identifier value for the property/hotel associated with a channel." }, "channelCode": { "type": "string", "example": "CH1", "description": " A code for the channel partner that is set up in the Oracle Hospitality Distribution." } }, "required": [ "hotelCode", "channelCode" ] }, "RoomTypeItem": { "type": "object", "properties": { "room": { "type": "object", "$ref": "#/definitions/Room" }, "occupancy": { "type": "object", "$ref": "#/definitions/Occupancy" } }, "required": [ "room" ] }, "RatePlanItem": { "type": "object", "properties": { "ratePlan": { "type": "object", "$ref": "#/definitions/RatePlan" } }, "required": [ "ratePlan" ] }, "Room": { "type": "object", "properties": { "roomType": { "type": "string", "example": "XA1K", "description": "The code for the room type." }, "roomName": { "type": "string", "example": "102", "description": "Name of the room type." }, "description": { "type": "string", "example": "Deluxe King Room on my Channel.", "description": "Description of the room type." } }, "required": [ "roomType" ] }, "RatePlan": { "type": "object", "properties": { "ratePlanCode": { "type": "string", "example": "XDAILY", "description": "The code for a rate plan." }, "ratePlanName": { "type": "string", "example": "Corporate", "description": "The name of the rate plan." }, "ratePlanDescription": { "type": "string", "example": "Daily discount for a corporation.", "description": "Description of the rate plan code." } }, "required": [ "ratePlanCode" ] }, "Occupancy": { "type": "object", "properties": { "maxOccupancy": { "type": "integer", "example": 3, "description": "The maximum number of individuals allowed in the room type." }, "maxAdultOccupancy": { "type": "integer", "example": 3, "description": "The maximum number of adults allowed in the room type." }, "maxChildOccupancy": { "type": "integer", "example": 2, "description": "The maximum number of children allowed in the room type." } } }, "ExceptionDetail": { "description": "Common Error Response format.", "type": "object", "properties": { "title": { "type": "string", "description": "Short, human-readable summary of the problem. The summary SHOULD NOT change for subsequent occurrences of the problem, except for purposes of localization.", "example": "Error in Application" }, "status": { "type": "integer", "description": "HTTP status code for this occurrence of the problem, set by the origin server.", "example": 400 }, "o:errorCode": { "type": "string", "description": "Business specific Error code, which is different from HTTP error code.", "example": "RSV-34534534" }, "type": { "type": "string", "description": "Absolute URI [RFC3986] that identifies the problem type. When dereferenced, it SHOULD provide a human-readable summary of the problem.", "example": "http: //www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4" }, "timestamp": { "type": "string", "format": "date-time", "description": "The UTC Date and Time of the Error happened.", "example": "2022-01-02T11: 30: 22.234Z" }, "o:errorDetails": { "description": "Details of the error message, consisting of a hierarchical tree structure.", "type": "array", "items": { "$ref": "#/definitions/ExceptionDetail" } }, "logId": { "type": "integer", "description": "An ID for support reasons to be able identify errors better.", "example": "334543532224" } } } }, "externalDocs": { "description": "Find out more about Oracle Hospitality", "url": "https://docs.oracle.com/en/industries/hospitality/integration_platforms.html" } }