Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.2.0
info:
title: OPERA Cloud Content Service Opera Content API
description: Opera Content Service offers capability to manage large content such as images and files.<br /><br /> Compatible with OPERA Cloud release 26.2.0.0.<br /><br /><p> This document and all content within is available under the Universal Permissive License v 1.0 (https://oss.oracle.com/licenses/upl). Copyright (c) 2020, 2026 Oracle and/or its affiliates.</p>
version: 26.2.0.0
termsOfService: https://www.oracle.com/legal/terms.html
contact:
email: hospitality_apis_ww_grp@oracle.com
license:
name: UPL
url: https://opensource.org/licenses/upl
servers:
- url: /med/config/v1
tags:
- name: OperaContent
description: Opera Content Service offers capability to manage big content using MTOM
paths:
/customizedLetter/{letterId}:
get:
summary: Return customized letter
description: Use this API to return a customized letter based on search criteria such as letterId, letterIdContext, letterIdtype. <p><strong>OperationId:</strong>getCustomizedLetter</p>
operationId: getCustomizedLetter
parameters:
- name: letterId
in: path
required: true
description: ''
schema:
type: string
maxLength: 2000
minLength: 1
- name: letterIdContext
in: query
required: false
description: Used to identify the source of the identifier (e.g., IATA, ABTA).
schema:
type: string
maxLength: 80
- name: letterIdtype
in: query
required: false
description: A reference to the type of object defined by the UniqueID element.
schema:
type: string
maxLength: 80
- $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 for retrieving customized letter.
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/customizedLetter'
'204':
description: CustomizedLetter 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:
- OperaContent
/emailFile/{emailId}:
get:
summary: Return email blob file
description: Use this API to return email blob file stored in file storage schema based on the search criteria emailId. It's used in profiles to return email and open in an end user's mail client. <p><strong>OperationId:</strong>getEmailFile</p>
operationId: getEmailFile
parameters:
- name: emailId
in: path
required: true
description: Unique OPERA Email ID which is used to find an Email BLOB File from OPERA. This ID is a primary identification of an email file in OPERA.
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:
'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 to fetch an email file
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/emailFile'
'204':
description: EmailFile 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:
- OperaContent
/fileAttachments:
get:
summary: Return file attachment
description: Use this API to return file attachments based on search criteria such as id, idContext, idType. <p><strong>OperationId:</strong>getFileAttachment</p>
operationId: getFileAttachment
parameters:
- name: id
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
maxLength: 80
- name: idContext
in: query
required: false
description: Used to identify the source of the identifier (e.g., IATA, ABTA).
schema:
type: string
maxLength: 80
- name: idType
in: query
required: false
description: A reference to the type of object defined by the UniqueID element.
schema:
type: string
maxLength: 80
- $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 to fetch file attachment
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/file'
'204':
description: FileAttachment 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:
- OperaContent
post:
summary: Upload a file attachment
description: Use this API to upload a file attachment. <p><strong>OperationId:</strong>uploadFileAttachment</p>
operationId: uploadFileAttachment
parameters:
- $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:
- OperaContent
requestBody:
content:
application/json;charset=UTF-8:
schema:
allOf:
- $ref: '#/components/schemas/fileToUpload'
description: Request to upload a file attachment.
required: true
/folioReports/email:
post:
summary: Create email folio report
description: Use this API to create an email folio report. <p><strong>OperationId:</strong>emailFolioReport</p>
operationId: emailFolioReport
parameters:
- $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:
- OperaContent
requestBody:
content:
application/json;charset=UTF-8:
schema:
allOf:
- $ref: '#/components/schemas/folioReportToEmail'
description: Request to generate and email a folio report.
required: true
/hotels/{hotelId}/reservations/{reservationId}/customizedLetter:
put:
summary: Update customized letter
description: Use this API to update a customized letter for a reservation for a specific property based on the hotelId, reservationId, customizedLetter. <p><strong>OperationId:</strong>setCustomizedLetter</p>
operationId: setCustomizedLetter
parameters:
- name: reservationId
in: path
required: true
description: ''
schema:
type: string
maxLength: 2000
minLength: 1
- name: hotelId
in: path
required: true
description: ''
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:
'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: Response Body.
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/customizedLetterStatus'
'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:
- OperaContent
requestBody:
content:
application/json;charset=UTF-8:
schema:
allOf:
- $ref: '#/components/schemas/customizedLetter'
description: Request to save customized letter.
required: true
/hotels/{hotelId}/reservations/{reservationId}/folioReports:
get:
summary: Return folio report
description: Use this API to return a folio report for a reservation for a specific property based on search criteria such as reservationId, hotelId, reservationIdContext, reservationIdType, folioWindowNo, billNumber, folioType, folioDate, referenceCurrency. <p><strong>OperationId:</strong>getFolioReport</p>
operationId: getFolioReport
parameters:
- name: reservationId
in: path
required: true
description: ''
schema:
type: string
maxLength: 2000
minLength: 1
- name: hotelId
in: path
required: true
description: ''
schema:
type: string
maxLength: 2000
minLength: 1
- name: reservationIdContext
in: query
required: false
description: Used to identify the source of the identifier (e.g., IATA, ABTA).
schema:
type: string
maxLength: 80
- name: reservationIdType
in: query
required: false
description: A reference to the type of object defined by the UniqueID element.
schema:
type: string
maxLength: 80
- name: folioWindowNo
in: query
required: false
description: Folio window number to generate (defaults to view 1).
schema:
type: integer
- name: billNumber
in: query
required: false
description: Optional bill number to generate.
schema:
type: number
- name: folioType
in: query
required: false
description: Optional folio type.
schema:
type: string
maxLength: 80
- name: folioDate
in: query
required: false
description: Optional folio generation date - defaults to hotel business date.
schema:
type: string
format: date
- name: referenceCurrency
in: query
required: false
description: Folio currency code.
schema:
type: string
maxLength: 20
- $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 for folio report.
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/folioReport'
'204':
description: FolioReport 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:
- OperaContent
/hotels/{hotelId}/reservations/{reservationId}/registrationCard:
get:
summary: Return registration card
description: Use this API to return a registration card for a reservation based on search criteria such as reservationId, hotelId, reservationIdContext, reservationIdType, regenerate, signedOnly, language, template. <p><strong>OperationId:</strong>getRegistrationCard</p>
operationId: getRegistrationCard
parameters:
- name: reservationId
in: path
required: true
description: ''
schema:
type: string
maxLength: 2000
minLength: 1
- name: hotelId
in: path
required: true
description: ''
schema:
type: string
maxLength: 2000
minLength: 1
- name: reservationIdContext
in: query
required: false
description: Used to identify the source of the identifier (e.g., IATA, ABTA).
schema:
type: string
maxLength: 80
- name: reservationIdType
in: query
required: false
description: A reference to the type of object defined by the UniqueID element.
schema:
type: string
maxLength: 80
- name: regenerate
in: query
required: false
description: Flag indicating whether a new registration card should be generated even if a signed card already exists.
schema:
type: boolean
- name: signedOnly
in: query
required: false
description: Flag indicating whether return only the signed registrationCard if present.
schema:
type: boolean
- name: language
in: query
required: false
description: Optional language code to use for registration card generation. Default guest language will be applied if not specified.
schema:
type: string
pattern: '[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*'
- name: template
in: query
required: false
description: Optional registration card template code to use for registration card generation. Default template will be applied if not specified.
schema:
type: string
maxLength: 80
- $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 for registration card.
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/registrationCard'
'204':
description: RegistrationCard 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:
- OperaContent
/images:
post:
summary: Upload image
description: You can use this API to upload an image for the suppored image code types <p><strong>OperationId:</strong>uploadImage</p>
operationId: uploadImage
parameters:
- $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:
- OperaContent
requestBody:
content:
application/json;charset=UTF-8:
schema:
allOf:
- $ref: '#/components/schemas/imageToUpload'
description: Request to upload an image.
required: true
delete:
summary: Delete image
description: Use this API to delete an image based on parameters such as imageCode, imageSet, imageId, imageIdContext, imageIdType. <p><strong>OperationId:</strong>removeImage</p>
operationId: removeImage
parameters:
- name: imageCode
in: query
required: false
description: An enumeration of image codes such as Logo, RoomType, InvItem
schema:
type: string
enum:
- LogoChain
- Logo
- Profile
- Nationality
- User
- ToolbarItemCode
- Chain
- MembershipType
- MembershipLevel
- Resort
- RoomTypeChain
- RoomType
- RoomNumber
- OooReasonChain
- OooReason
- RoomMaintChain
- RoomMaintenance
- RoomMaintIssue
- FloorPlan
- SiteLayout
- Attraction
- PropertyMap
- InvItemChain
- InvItem
- PackageChain
- Package
- Pool
- RoomConditionChain
- RoomCondition
- FunctionSpace
- FunctionSetupStyle
- TrackItTypeChain
- TrackItType
- Height
- Width
- RoomRepair
- Article
- AlertChain
- Alert
uniqueItems: true
- name: imageSet
in: query
required: false
description: Used for Character Strings, length 0 to 800.
schema:
type: string
maxLength: 800
- name: imageId
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
maxLength: 2000
- name: imageIdContext
in: query
required: false
description: Used to identify the source of the identifier (e.g., IATA, ABTA).
schema:
type: string
maxLength: 80
- name: imageIdType
in: query
required: false
description: A reference to the type of object defined by the UniqueID element.
schema:
type: string
maxLength: 80
- $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:
- OperaContent
get:
summary: Return image
description: Use this API to return an image based on search criteria such as linkId, linkIdContext, linkIdType, imageCode, imageParameterCode, imageParameterValue, languageCode, imageStyle, imageId, imageIdContext, imageIdType, base64. <p><strong>OperationId:</strong>getImage</p>
operationId: getImage
parameters:
- name: linkId
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
maxLength: 2000
- name: linkIdContext
in: query
required: false
description: Used to identify the source of the identifier (e.g., IATA, ABTA).
schema:
type: string
maxLength: 80
- name: linkIdType
in: query
required: false
description: A reference to the type of object defined by the UniqueID element.
schema:
type: string
maxLength: 80
- name: imageCode
description: An enumeration of image codes such as Logo, RoomType, InvItem
in: query
required: false
schema:
type: string
enum:
- LogoChain
- Logo
- Profile
- Nationality
- User
- ToolbarItemCode
- Chain
- MembershipType
- MembershipLevel
- Resort
- RoomTypeChain
- RoomType
- RoomNumber
- OooReasonChain
- OooReason
- RoomMaintChain
- RoomMaintenance
- RoomMaintIssue
- FloorPlan
- SiteLayout
- Attraction
- PropertyMap
- InvItemChain
- InvItem
- PackageChain
- Package
- Pool
- RoomConditionChain
- RoomCondition
- FunctionSpace
- FunctionSetupStyle
- TrackItTypeChain
- TrackItType
- Height
- Width
- RoomRepair
- Article
- AlertChain
- Alert
uniqueItems: true
- name: imageParameterCode
d
# --- truncated at 32 KB (62 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/oracle-hospitality/refs/heads/main/openapi/oracle-hospitality-operacontent-api-openapi.yml