Optimizely Catalog Entries API

Manage catalog entries including products, variants, packages, and bundles.

Documentation

Specifications

Other Resources

OpenAPI Specification

optimizely-catalog-entries-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Optimizely Campaign REST Assets Catalog Entries API
  description: The Optimizely Campaign REST API provides programmatic access to Optimizely's email and omnichannel campaign management capabilities. Developers can use the API to manage campaigns, recipients, mailing lists, smart campaigns, transactional mails, and messaging workflows. The API is hosted at api.campaign.episerver.net and supports automation of marketing campaign operations, enabling integration with external systems and custom marketing workflows. The base URL includes the client ID for multi-tenant access.
  version: '1.0'
  contact:
    name: Optimizely Support
    url: https://support.optimizely.com
  termsOfService: https://www.optimizely.com/legal/terms/
servers:
- url: https://api.campaign.episerver.net/rest
  description: Optimizely Campaign Production Server
security:
- basicAuth: []
tags:
- name: Catalog Entries
  description: Manage catalog entries including products, variants, packages, and bundles.
paths:
  /commerce/entries/{entryCode}:
    get:
      operationId: getCatalogEntry
      summary: Get a catalog entry
      description: Retrieves a specific catalog entry (product, variant, package, or bundle) by its code.
      tags:
      - Catalog Entries
      parameters:
      - $ref: '#/components/parameters/entryCode'
      responses:
        '200':
          description: Successfully retrieved the catalog entry
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CatalogEntry'
        '401':
          description: Authentication credentials are missing or invalid
        '404':
          description: Catalog entry not found
    put:
      operationId: updateCatalogEntry
      summary: Update a catalog entry
      description: Updates the specified catalog entry with the provided fields.
      tags:
      - Catalog Entries
      parameters:
      - $ref: '#/components/parameters/entryCode'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CatalogEntryInput'
      responses:
        '200':
          description: Catalog entry successfully updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CatalogEntry'
        '400':
          description: Invalid request body
        '401':
          description: Authentication credentials are missing or invalid
        '404':
          description: Catalog entry not found
    delete:
      operationId: deleteCatalogEntry
      summary: Delete a catalog entry
      description: Permanently deletes the specified catalog entry.
      tags:
      - Catalog Entries
      parameters:
      - $ref: '#/components/parameters/entryCode'
      responses:
        '204':
          description: Catalog entry successfully deleted
        '401':
          description: Authentication credentials are missing or invalid
        '404':
          description: Catalog entry not found
  /commerce/entries/{entryCode}/commondraft/{language}:
    put:
      operationId: updateCatalogEntryDraft
      summary: Update catalog entry common draft
      description: Updates the common draft version of a catalog entry for the specified language.
      tags:
      - Catalog Entries
      parameters:
      - $ref: '#/components/parameters/entryCode'
      - $ref: '#/components/parameters/language'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CatalogEntryInput'
      responses:
        '200':
          description: Draft successfully updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CatalogEntry'
        '400':
          description: Invalid request body
        '401':
          description: Authentication credentials are missing or invalid
        '404':
          description: Catalog entry not found
components:
  schemas:
    CatalogEntryInput:
      type: object
      description: Input for creating or updating a catalog entry
      properties:
        code:
          type: string
          description: Unique code for the catalog entry
        name:
          type: string
          description: Display name of the entry
        entry_type:
          type: string
          description: Type of catalog entry
          enum:
          - Product
          - Variation
          - Package
          - Bundle
        is_active:
          type: boolean
          description: Whether the entry is active
        properties:
          type: object
          description: Dynamic properties specific to the entry type
          additionalProperties: true
    CatalogEntry:
      type: object
      description: A catalog entry (product, variant, package, or bundle)
      properties:
        code:
          type: string
          description: Unique code for the catalog entry
        name:
          type: string
          description: Display name of the entry
        entry_type:
          type: string
          description: Type of catalog entry
          enum:
          - Product
          - Variation
          - Package
          - Bundle
        start_date:
          type: string
          format: date-time
          description: Availability start date
        end_date:
          type: string
          format: date-time
          description: Availability end date
        is_active:
          type: boolean
          description: Whether the entry is active
        properties:
          type: object
          description: Dynamic properties specific to the entry type
          additionalProperties: true
        prices:
          type: array
          description: Price information for the entry
          items:
            type: object
            properties:
              currency:
                type: string
                description: Currency code
              amount:
                type: number
                description: Price amount
              market_id:
                type: string
                description: Market identifier
  parameters:
    language:
      name: language
      in: path
      required: true
      description: The language code for the content version
      schema:
        type: string
    entryCode:
      name: entryCode
      in: path
      required: true
      description: The unique code of the catalog entry
      schema:
        type: string
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: HTTP Basic authentication using the Optimizely Campaign API credentials.
externalDocs:
  description: Optimizely Campaign REST API Documentation
  url: https://docs.developers.optimizely.com/optimizely-campaign/docs/rest-api