Oracle Hospitality Profile API

The Profile APIs allow you to view, create, update, and delete profiles in OPERA Cloud. Each time a new profile in created in OPERA Cloud, a profileID is assigned. Use this profileID to retrieve and update details relating to that profile. The resource 'Companies' includes group, source, company and travel agent profile types. The resource 'Guests' includes individual and contact profile types.

Operations 110

POST /externalSystems/{extSystemCode}/memberships/{membershipType}/membershipIDs Generate membership number #
GET /address Get city states #
DELETE /certificates Delete certificate #
POST /companies This API facilitates creation of a company/agent/group/source profile in OPERA. #
GET /companies/{corporateID} Get company profile by corporate ID #
GET /duplicateExternalSubscriptions Get profiles with duplicate external subscriptions #
GET /duplicateOPERASubscriptions Get profiles with duplicate OPERA Cloud subscriptions #
GET /ecertificates Get e-certificate #
POST /ecertificates Create e-certificate #
DELETE /ecertificates/{certificateId} Delete e-certificate #
PUT /ecertificates/{certificateId} Consume an E-Certificate #
PUT /ecertificates/{certificateId}/action/validate Verify E-Certificate Number #
POST /ecertificates/{certificateId}/extensions Extend E-Certificate Expiry date #
GET /externalSystems/{extSystemCode}/profiles/{profileExternalId} Get profile by external ID #
PUT /externalSystems/{extSystemCode}/profiles/{profileExternalId} Update by external ID #
POST /guests Create a guest, contact or employee profile in OPERA #
GET /guests/{guestId} Get guest profile by guest ID #
PUT /hotels/{hotelId}/profiles/{profileId}/commissionAccount Copy profile commission account #
DELETE /hotels/{hotelId}/profiles/{profileId}/flexFieldCode/{flexFieldCode} Operation to delete a flex field. #
GET /hotels/{hotelId}/profiles/{profileId}/flexFieldValues Operation to fetch flex field values. #
POST /hotels/{hotelId}/profiles/{profileId}/flexFieldValues Operation to create a flex field with value for a module. #
PUT /hotels/{hotelId}/profiles/{profileId}/flexFieldValues Operation to update flex field value. #
PUT /hotels/{hotelId}/profiles/{profileId}/reprocess Re-Process a single Stage Record #
GET /membershipTierProjections Get Membership Tier Projection #
GET /memberships/{membershipId}/fullfillmentExportLogs Get Fulfillment Export Logs #
POST /memberships/{membershipType}/membershipNumbers Generate membership number #
PUT /processStagedProfile Process a staged profile #
GET /profileMatch Fetch the profile Id if a unique guest profile Exists #
POST /profileMatch/searches Fetch the profile Id if a unique guest profile Exists #
GET /profileTransactions/{profileId} Get Profile Transactions #
GET /profiles Search for profile(s) #
POST /profiles Create a profile #
GET /profiles/action/validate Validate and check profiles #
GET /profiles/activityLog Fetch profile activity log #
GET /profiles/profileMatches Get potential profile matches #
POST /profiles/profileMatches/searches Get potential profile matches #
POST /profiles/searches Search for profile(s) #
GET /profiles/stageProfileMatches Get potential stage profile matches #
GET /profiles/{profileId} Get profile by ID #
PUT /profiles/{profileId} Update a profile by ID #
DELETE /profiles/{profileId} Forget or delete a profile by ID #
GET /profiles/{profileId}/accounts Get profile accounts #
GET /profiles/{profileId}/attachments Get profile attachments #
DELETE /profiles/{profileId}/attachments/{attachmentId} Delete profile attachment #
GET /profiles/{profileId}/awardsAndCertificates Get Profile awards and certificates #
GET /profiles/{profileId}/cashieringDetails Get cashiering details for a profile #
PUT /profiles/{profileId}/cashieringDetails Change cashiering details for a profile #
GET /profiles/{profileId}/commissionAccount Get commission account on a profile #
DELETE /profiles/{profileId}/commissionAccount Delete a commission account from a profile #
POST /profiles/{profileId}/commissionAccount Add a commission account on a profile #
PUT /profiles/{profileId}/commissionAccount Set profile commission account #
POST /profiles/{profileId}/emails Create an Email. #
GET /profiles/{profileId}/flexFieldValues Operation to fetch flex field values. #
GET /profiles/{profileId}/hotels/{hotelId}/forecasts Fetch Account Forecasts by hotel #
POST /profiles/{profileId}/hotels/{hotelId}/forecasts Create account forecast in a hotel #
DELETE /profiles/{profileId}/hotels/{hotelId}/forecasts Delete multiple account forecasts #
PUT /profiles/{profileId}/hotels/{hotelId}/forecasts/periodCodes/{periodCode} Update account forecast in a hotel by period code #
DELETE /profiles/{profileId}/hotels/{hotelId}/forecasts/periodCodes/{periodCode} Delete account forecast in a hotel by period code #
DELETE /profiles/{profileId}/hotels/{hotelId}/preferenceType/{preferenceType}/preferences/{preferenceCode} Delete a preference from a profile #
DELETE /profiles/{profileId}/hotels/{hotelId}/stagedProfile Delete a staged profile #
GET /profiles/{profileId}/links Get linked profiles #
GET /profiles/{profileId}/matches Get profile matches #
PUT /profiles/{profileId}/membershipType/{membershipType}/membershipId/{membershipId} Change membership information on a profile #
DELETE /profiles/{profileId}/membershipType/{membershipType}/membershipId/{membershipId} Delete membership information from a profile #
POST /profiles/{profileId}/memberships Create membership on a profile #
GET /profiles/{profileId}/owners Get profile owners #
PUT /profiles/{profileId}/owners Change profile owners #
POST /profiles/{profileId}/owners Assign profile owners #
DELETE /profiles/{profileId}/preferenceType/{preferenceType}/preferences/{preferenceCode} Delete a global preference from a profile #
GET /profiles/{profileId}/preferences Get preferences on a profile #
PUT /profiles/{profileId}/preferences Distribute preferences on a profile #
POST /profiles/{profileId}/preferences Add preferences to a profile #
GET /profiles/{profileId}/relationships FetchProfileRelationships method provides the ability to retrieve a profile relationships for a profile based on the unique internal profile ID specified. #
PUT /profiles/{profileId}/reservations/action/validate Check future past bookings #
GET /profiles/{profileId}/stayHistory FetchStayHistory method provides stay history and future reservations of a profile based on the unique internal ID specified. #
POST /profiles/{sourceProfileId}/relationships/{targetProfileId} CreateProfileRelationship method provides the ability to create profile relationship based on the request criteria of SourceProfileID,TargetProfileID and SourceRelationType specifi #
PUT /profiles/{sourceProfileId}/relationships/{targetProfileId} ChangeProfileRelationship method provides the ability to update(delete and add) profile relationship based on the request criteria of SourceProfileID , TargetProfileID, To Be Chang #
DELETE /profiles/{sourceProfileId}/relationships/{targetProfileId} DeleteProfileRelationship method provides the ability to delete profile relationship based on the request criteria of SourceProfileID,TargetProfileID and SourceRelationType specifi #
POST /profiles/{survivorProfileId}/merges Merge two profiles by ID #
GET /profiles/{survivorProfileId}/merges/snapshot Get merge profiles snapshot #
GET /profiles/{survivorProfileId}/stageProfiles/snapshot Get merge stage profile snapshot #
GET /profilesByIds Search for profile(s) #
PUT /profilesMatchList Updates a list of matchIds to skip or don't skip profile match. #
GET /profilesMatchList/profileType/{profileType} Get profiles match list. #
PUT /reProcessStageRecords Re-Process all Stage Records #
GET /reProcessStageRecords/logs Get reProcess stage records logs. #
GET /recentlyAccessedProfiles Fetch recently accessed profiles #
DELETE /service/profileService/cache Operation to delete cache for Profile service #
GET /services/profile/status Operation to check the status of profile service #
GET /stagedProfile/{id} Get a staged profile #
PUT /stagedProfile/{id} Change a staged profile #
GET /stagedProfiles Get staged profiles #
POST /stagedProfiles/searches Get staged profiles #
POST /stayMembership This API facilitates attaching or replacing a membership to a given stayRecord. #
POST /stayRecord This API facilitates uploading stage records to LCS. #
GET /stayRecord/{stayRecordId} Get Stay Record Detail. #
PUT /stayRecords/{stayRecordId} Ability to edit Orphan Stay Records #
GET /suspendedAddresses Fetch Suspended Profile Addresses #
GET /suspendedProfiles/errorsSummary Get suspended profiles errors summary details #
GET /suspendedProfiles/errorsSummary/profileType Get suspended profiles match errors summary information grouped by profile type. #
GET /suspendedProfiles/errorsSummary/property Get suspended profiles match errors summary information grouped by property. #
POST /suspendedProfiles/errorsSummary/property Get suspended profiles match errors summary information grouped by property. #
GET /suspendedProfiles/matchStats Get suspended profile match statistics information. #
GET /suspendedProfiles/matchStats/matchCriteria Get suspended profiles match statistics information grouped by match criteria. #
GET /suspendedProfiles/matchStats/profileType Get suspended profiles match statistics information grouped by profile type. #
GET /suspendedProfiles/matchStats/property Get suspended profiles match statistics information grouped by property. #
GET /suspendedProfiles/matchStats/propertyAndProfileType Get suspended profiles match statistics information grouped by property and profile type. #
GET /suspendedProfiles/matchStats/threshold Get suspended profiles match statistics summary information filtering by threshold type. #
PUT /synchronizeProfileSubscriptions Synchronize profile subscriptions #
PUT /validateForgetProfiles Validate forget profiles #

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-profile-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 email required.

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

OpenAPI Specification

oracle-hospitality-profile-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Oracle Hospitality Profile API
  version: 26.2.0.0
  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
  description: 'Operations tagged Profile across 2 of this provider''s published API definitions: oracle-hospitality-property-outbound-crmoutbound.json, oracle-hospitality-property-v1-crm.json. Each path carries the servers of the definition it was published in.'
servers:
- url: /crm/v1
tags:
- name: Profile
  description: The Profile APIs allow you to view, create, update, and delete profiles in OPERA Cloud. Each time a new profile in created in OPERA Cloud, a profileID is assigned.  Use this profileID to retrieve and update details relating to that profile.   The resource 'Companies' includes group, source, company and travel agent profile types.   The resource 'Guests' includes individual and contact profile types.
paths:
  /externalSystems/{extSystemCode}/memberships/{membershipType}/membershipIDs:
    post:
      summary: Generate membership number
      description: This API will generate a new membership number. <p><strong>OperationId:</strong>postMembershipNumber</p>
      operationId: postMembershipNumber
      parameters:
      - name: extSystemCode
        in: path
        required: true
        description: Profile will be downloaded from this External System.
        schema:
          type: string
          maxLength: 2000
          minLength: 1
      - name: membershipType
        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-transactionId'
      - $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:
      - Profile
      requestBody:
        content:
          application/json;charset=UTF-8:
            schema:
              allOf:
              - $ref: '#/components/schemas/membershipNumber'
        description: Request object for generating membership number.
        required: true
    servers:
    - url: /crm/v1
  /address:
    get:
      summary: Get city states
      description: This API will get city and states. <p><strong>OperationId:</strong>getAddress</p>
      operationId: getAddress
      parameters:
      - name: excludeNoCity
        in: query
        required: false
        description: When true indicates that only profiles with city will be fetched.
        schema:
          type: boolean
      - name: cityName
        in: query
        required: false
        description: City (e.g., Dublin), town, or postal station (i.e., a postal service territory, often used in a military address).
        schema:
          type: string
      - name: postalCode
        in: query
        required: false
        description: Post Office Code number.
        schema:
          type: string
      - name: state
        in: query
        required: false
        description: State or Province name (e.g., Texas).
        schema:
          type: string
      - name: code
        in: query
        required: false
        description: Code for a country or a nationality.
        schema:
          type: string
      - name: streetAddress
        in: query
        required: false
        description: First Line of Street Address. For profile search it matches the first Address line.
        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 for fetching City and State based on search criteria. This object contains address information,Success,Warnings and Errors related to this operation.
          content:
            application/json;charset=UTF-8:
              schema:
                $ref: '#/components/schemas/cityState'
        '204':
          description: Address 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:
      - Profile
    servers:
    - url: /crm/v1
  /certificates:
    delete:
      summary: Delete certificate
      description: This API will allow you to delete a certificate. <p><strong>OperationId:</strong>deleteCertificate</p>
      operationId: deleteCertificate
      deprecated: true
      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:
        '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:
      - Profile
    servers:
    - url: /crm/v1
  /companies:
    post:
      summary: This API facilitates creation of a company/agent/group/source profile in OPERA.
      description: When a profile doesn't already exist for a guest, use this to create a new profile.  The response will provide the newly created profile's OPERA ID. There are many fields in postProfile defined by ListOfValues; ensure you have reviewed ListOfValues APIs in order successfully to use postProfile. <p><strong>OperationId:</strong>postCompanyProfile</p>
      operationId: postCompanyProfile
      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:
      - Profile
      requestBody:
        content:
          application/json;charset=UTF-8:
            schema:
              allOf:
              - $ref: '#/components/schemas/company'
        description: Request object for creation of company profile. This object contains profile details with unique identifiers of a profile. The standard optional Opera Context element is also included.
        required: true
    servers:
    - url: /crm/v1
  /companies/{corporateID}:
    get:
      summary: Get company profile by corporate ID
      description: Use this to retrieve a specific Company, Travel Agent, Group or Source profile. You must know the corporate ID of the profile for the request API. <p><strong>OperationId:</strong>getCompanyProfile</p>
      operationId: getCompanyProfile
      parameters:
      - name: corporateID
        in: path
        required: true
        description: Unique OPERA Corporate ID used to find company/agent/group/source profile in OPERA.
        schema:
          type: string
          maxLength: 2000
          minLength: 1
      - name: fetchInstructions
        in: query
        description: Room Ownership information associated with the profile.
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
            enum:
            - Address
            - Communication
            - Comment
            - Membership
            - Preference
            - Keyword
            - Correspondence
            - Profile
            - Indicators
            - SalesInfo
            - Relationship
            - Subscriptions
          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 object for fetching unique company profile.
          content:
            application/json;charset=UTF-8:
              schema:
                $ref: '#/components/schemas/company'
        '204':
          description: CompanyProfile 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:
      - Profile
    servers:
    - url: /crm/v1
  /duplicateExternalSubscriptions:
    get:
      summary: 'Get profiles with duplicate external subscriptions '
      description: Fetch profile subscriptions where the same OPERA Cloud profile is linked to multiple external profiles, within the same external system. <p><strong>OperationId:</strong>getDuplicateExternalSubscriptions</p> <p>The maximum allowable limit for this API is <strong>200</strong>.</p>
      operationId: getDuplicateExternalSubscriptions
      parameters:
      - 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: databaseId
        in: query
        required: false
        description: Code identifying the external database record which is linked to external systems.
        schema:
          type: string
      - name: profileId
        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: profileContext
        in: query
        required: false
        description: Used to identify the source of the identifier (e.g., IATA, ABTA).
        schema:
          type: string
      - name: profileType
        in: query
        required: false
        description: A reference to the type of object defined by the UniqueID element.
        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 for fetching subscriptions where the same OPERA profile is linked to multiple external profiles within the same external system.
          content:
            application/json;charset=UTF-8:
              schema:
                $ref: '#/components/schemas/duplicateExternalSubscriptions'
        '204':
          description: DuplicateExternalSubscriptions 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:
      - Profile
    servers:
    - url: /crm/v1
  /duplicateOPERASubscriptions:
    get:
      summary: Get profiles with duplicate OPERA Cloud subscriptions
      description: Fetch subscriptions where an external profile within a particular external system is linked to multiple OPERA Cloud profiles. <p><strong>OperationId:</strong>getDuplicateOPERASubscriptions</p> <p>The maximum allowable limit for this API is <strong>200</strong>.</p>
      operationId: getDuplicateOPERASubscriptions
      parameters:
      - 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: databaseId
        in: query
        required: false
        description: Code identifying the external database record which is linked to external systems.
        schema:
          type: string
      - name: profileId
        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: profileContext
        in: query
        required: false
        description: Used to identify the source of the identifier (e.g., IATA, ABTA).
        schema:
          type: string
      - name: profileType
        in: query
        required: false
        description: A reference to the type of object defined by the UniqueID element.
        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 for fetching subscriptions where an external profile within a particular external system is linked to multiple OPERA profiles.
          content:
            application/json;charset=UTF-8:
              schema:
                $ref: '#/components/schemas/duplicateOPERASubscriptions'
        '204':
          description: DuplicateOPERASubscriptions 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:
      - Profile
    servers:
    - url: /crm/v1
  /ecertificates:
    get:
      summary: Get e-certificate
      description: This API allows you to retrieve eCertificates which exist on a profile in OPERA Cloud. <p><strong>OperationId:</strong>getECertificates</p>
      operationId: getECertificates
      parameters:
      - name: profileId
        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: profileContext
        in: query
        required: false
        description: Used to identify the source of the identifier (e.g., IATA, ABTA).
        schema:
          type: string
      - name: profileType
        in: query
        required: false
        description: A reference to the type of object defined by the UniqueID element.
        schema:
          type: string
      - name: hotelId
        in: query
        required: false
        description: Property for which preferences are to be fetched.
        schema:
          type: string
      - name: code
        in: query
        required: false
        description: Ecertificates search criteria
        schema:
          type: string
      - name: groupCode
        in: query
        required: false
        description: Ecertificates search criteria
        schema:
          type: string
      - name: status
        in: query
        description: Indicates that OPERA E-Certificate is reserved.
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
            enum:
            - Cancelled
            - Consumed
            - Deleted
            - Expired
            - Issued
            - Reserved
          uniqueItems: true
      - name: includeInactive
        in: query
        required: false
        description: Include or not include inactive E-certificate.
        schema:
          type: boolean
      - name: voucherNo
        in: query
        required: false
        description: System generated unique voucher number.
        schema:
          type: string
      - name: excludeVoucherNumbers
        in: query
        description: List of System generated unique voucher numbers to be excluded.
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
            maxItems: 4000
      - name: availableECertificates
        in: query
        required: false
        description: Search criteria to limit Ecertificates that are available for reservation consumption.
        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 object for fetch ECertificates. This object contains collection of ECertificates,Success,Warnings and Errors related to this operation.
          content:
            application/json;charset=UTF-8:
              schema:
                $ref: '#/components/schemas/eCertificates'
        '204':
          description: ECertificates 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:
      - Profile
    post:
      summary: Create e-certificate
      description: This API allows you to create a new eCertificates onto a profile in OPERA Cloud. <p><strong>OperationId:</strong>postECertificate</p>
      operationId: postECertificate
      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:
      - Profile
      requestBody:
        content:
          application/json;charset=UTF-8:
            schema:
              allOf:
              - $ref: '#/components/schemas/eCertificateGeneration'
        description: Request object to issue E-Certificate.
        required: true
    servers:
    - url: /crm/v1
  /ecertificates/{certificateId}:
    delete:
      summary: Delete e-certificate
      description: This API allows you to delete an eCertificates which exist on a profile in OPERA Cloud. <p><strong>OperationId:</strong>deleteECertificate</p>
      operationId: deleteECertificate
      parameters:
      - name: certificateId
        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: 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:
      - Profile
    put:
      summary: Consume an E-Certificate
      description: Use this API to consume (use) an E-Certificate.  <p><strong>OperationId:</strong>consumeECertificate</p>
      operationId: consumeECertificate
      parameters:
      - name: certificateId
        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 o

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