OPERA Cloud Distribution Outbound Lookup

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. 2 operation(s) documented; base path /lookup/v1. Harvested verbatim from Oracle's public hospitality-api-docs repository (Swagger 2.0, release 26.2.0.0).

OpenAPI Specification

oracle-hospitality-distribution-outbound-lookup.json Raw ↑
{
  "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.<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>",
    "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"
  }
}