Optimizely Structured Contents API

The Structured Contents API from Optimizely — 11 operation(s) for structured contents.

Operations 17

GET /structured-content/content-types GET /structured-content/content-types #
POST /structured-content/content-types POST /structured-content/content-types #
GET /structured-content/content-types/{content_type_id} GET /structured-content/content-types/{content_type_id} #
POST /structured-content/content-types/{content_type_id} POST /structured-content/content-types/{content_type_id} #
GET /structured-content/content-types/{content_type_id}/versions GET /structured-content/content-types/{content_type_id}/versions #
POST /structured-content/content-types/{content_type_id}/versions POST /structured-content/content-types/{content_type_id}/versions #
GET /structured-content/content-types/{content_type_id}/versions/{version_id} GET /structured-content/content-types/{content_type_id}/versions/{version_id} #
POST /structured-content/contents/{content_id}/migration POST /structured-content/contents/{content_id}/migration #
POST /structured-content/contents/{content_id}/versions/{version_id}/previews/{preview_id}/acknowledge POST /structured-content/contents/{content_id}/versions/{version_id}/previews/{preview_id}/acknowledge #
POST /structured-content/contents/{content_id}/versions/{version_id}/previews/{preview_id}/complete POST /structured-content/contents/{content_id}/versions/{version_id}/previews/{preview_id}/complete #
POST /structured-content/content-types/{content_type_id}/managed-migrations POST /structured-content/content-types/{content_type_id}/managed-migrations #
GET /structured-content/content-types/{content_type_id}/managed-migrations GET /structured-content/content-types/{content_type_id}/managed-migrations #
POST /structured-content/content-types/{content_type_id}/managed-migrations/{job_id}/start POST /structured-content/content-types/{content_type_id}/managed-migrations/{job_id}/start #
GET /structured-content/content-types/{content_type_id}/managed-migrations/{job_id} GET /structured-content/content-types/{content_type_id}/managed-migrations/{job_id} #
PATCH /structured-content/content-types/{content_type_id}/managed-migrations/{job_id} PATCH /structured-content/content-types/{content_type_id}/managed-migrations/{job_id} #
DELETE /structured-content/content-types/{content_type_id}/managed-migrations/{job_id} DELETE /structured-content/content-types/{content_type_id}/managed-migrations/{job_id} #
POST /structured-content/content-types/{content_type_id}/managed-migrations/validate POST /structured-content/content-types/{content_type_id}/managed-migrations/validate #

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/optimizely-structured-contents-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

optimizely-structured-contents-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: V3
  title: Optimizely CMP Open API Documentation Structured Contents API
servers:
- url: https://api.cmp.optimizely.com/v3
  description: v3 version of Optimizely CMP Open API
security:
- OAuth2:
  - openid
  - profile
  - offline_access
tags:
- name: Structured Contents
paths:
  /structured-content/content-types:
    get:
      operationId: listSCContentTypes
      tags:
      - Structured Contents
      summary: GET /structured-content/content-types
      description: '<span style="background-color:#e95f6a;padding:5px;border-radius:5px">Experimental</span> Get content types. '
      parameters:
      - required: false
        schema:
          type: string
          description: Source of the content type
        name: source
        in: query
      - required: false
        schema:
          type: boolean
          default: true
          description: Disabled status of the content type
        name: disabled
        in: query
      - required: false
        schema:
          $ref: '#/components/schemas/ContentTypeListingOption'
          default: '3'
        name: list
        in: query
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/BaseContentTypeModel'
        '422':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    post:
      operationId: createSCContentType
      tags:
      - Structured Contents
      summary: POST /structured-content/content-types
      description: '<span style="background-color:#e95f6a;padding:5px;border-radius:5px">Experimental</span> Create content type. '
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SCContentTypeCreateRequest'
        required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SCContentTypeCreateResponse'
        '201':
          description: Created
          headers:
            Location:
              description: URL to get the created resource
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SCContentTypeCreateResponse'
        '422':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /structured-content/content-types/{content_type_id}:
    get:
      operationId: getSCContentType
      tags:
      - Structured Contents
      summary: GET /structured-content/content-types/{content_type_id}
      description: '<span style="background-color:#e95f6a;padding:5px;border-radius:5px">Experimental</span> Get content type. '
      parameters:
      - required: true
        schema:
          type: string
          description: Unique identifier of the content type
        name: content_type_id
        in: path
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SCContentType'
        '422':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    post:
      operationId: updateSCContentType
      tags:
      - Structured Contents
      summary: POST /structured-content/content-types/{content_type_id}
      description: '<span style="background-color:#e95f6a;padding:5px;border-radius:5px">Experimental</span> Update content type. '
      parameters:
      - required: true
        schema:
          type: string
          description: Unique identifier of the content type
        name: content_type_id
        in: path
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SCContentTypeUpdateRequest'
        required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SCContentTypeUpdateResponse'
        '422':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /structured-content/content-types/{content_type_id}/versions:
    get:
      operationId: listSCContentTypeVersions
      tags:
      - Structured Contents
      summary: GET /structured-content/content-types/{content_type_id}/versions
      description: '<span style="background-color:#e95f6a;padding:5px;border-radius:5px">Experimental</span> Get content type versions. '
      parameters:
      - required: true
        schema:
          type: string
          description: Unique identifier of the content type
        name: content_type_id
        in: path
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/BaseContentTypeVersionModel'
        '422':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    post:
      operationId: createSCContentTypeVersion
      tags:
      - Structured Contents
      summary: POST /structured-content/content-types/{content_type_id}/versions
      description: '<span style="background-color:#e95f6a;padding:5px;border-radius:5px">Experimental</span> Add Content Type Version. '
      parameters:
      - required: true
        schema:
          type: string
          description: Unique identifier of the content type
        name: content_type_id
        in: path
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SCContentTypeVersionCreateRequest'
        required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SCContentTypeCreateResponse'
        '201':
          description: Created
          headers:
            Location:
              description: URL to get the created resource
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SCContentTypeCreateResponse'
        '422':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /structured-content/content-types/{content_type_id}/versions/{version_id}:
    get:
      operationId: getSCContentTypeVersion
      tags:
      - Structured Contents
      summary: GET /structured-content/content-types/{content_type_id}/versions/{version_id}
      description: '<span style="background-color:#e95f6a;padding:5px;border-radius:5px">Experimental</span> Get content type version. '
      parameters:
      - required: true
        schema:
          type: string
          description: Unique identifier of the content type
        name: content_type_id
        in: path
      - required: true
        schema:
          type: string
          description: Unique identifier of the content type version
        name: version_id
        in: path
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SCContentTypeVersion'
        '422':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /structured-content/contents/{content_id}/migration:
    post:
      operationId: migrateSCContent
      tags:
      - Structured Contents
      summary: POST /structured-content/contents/{content_id}/migration
      description: Migrate content to a specific content type version. <span style="background-color:#e95f6a;padding:5px;border-radius:5px">Experimental</span>
      parameters:
      - required: true
        schema:
          type: string
          description: Unique identifier of the content
        name: content_id
        in: path
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SCContentMigrationCreateRequest'
        required: true
      responses:
        '201':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  created:
                    type: boolean
                    description: Whether the version was created or not
                  content_guid:
                    type: string
                    description: The identifier of the content
                  version_guid:
                    type: string
                    description: The identifier of the content version
                  content_hash:
                    type: string
                    description: The hashed fingerprint of the content version
        '400':
          $ref: '#/components/responses/ClientError'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/ClientError'
        '422':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /structured-content/contents/{content_id}/versions/{version_id}/previews/{preview_id}/acknowledge:
    post:
      operationId: acknowledgeSCContentPreview
      tags:
      - Structured Contents
      summary: POST /structured-content/contents/{content_id}/versions/{version_id}/previews/{preview_id}/acknowledge
      description: <span style="background-color:#e95f6a;padding:5px;border-radius:5px">Experimental</span> Acknowledge content preview. Content preview can be acknowledged only once. So make sure you are acknowledging only the content previews targeted for your integration. Otherwise it will stall acknowledgment from other integrations.
      parameters:
      - required: true
        schema:
          type: string
          description: Unique identifier of the content
        name: content_id
        in: path
      - required: true
        schema:
          type: string
          description: Unique identifier of the content version
        name: version_id
        in: path
      - required: true
        schema:
          type: string
          description: Unique identifier of the content version preview
        name: preview_id
        in: path
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SCContentPreviewAcknowledgeRequest'
        required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /structured-content/contents/{content_id}/versions/{version_id}/previews/{preview_id}/complete:
    post:
      operationId: completeSCContentPreview
      tags:
      - Structured Contents
      summary: POST /structured-content/contents/{content_id}/versions/{version_id}/previews/{preview_id}/complete
      description: '<span style="background-color:#e95f6a;padding:5px;border-radius:5px">Experimental</span> Complete content preview. '
      parameters:
      - required: true
        schema:
          type: string
          description: Unique identifier of the content
        name: content_id
        in: path
      - required: true
        schema:
          type: string
          description: Unique identifier of the content version
        name: version_id
        in: path
      - required: true
        schema:
          type: string
          description: Unique identifier of the content version preview
        name: preview_id
        in: path
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SCContentPreviewCompleteRequest'
        required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /structured-content/content-types/{content_type_id}/managed-migrations:
    post:
      operationId: createSCContentTypeManagedMigration
      tags:
      - Structured Contents
      summary: POST /structured-content/content-types/{content_type_id}/managed-migrations
      description: <span style="background-color:#e95f6a;padding:5px;border-radius:5px">Experimental</span> Create a new managed migration job.
      parameters:
      - name: content_type_id
        in: path
        required: true
        example: 645cb61c966d0c591320f636
        schema:
          type: string
          description: Unique identifier of the content type.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SCContentTypeManagedMigrationCreateRequest'
        required: true
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                type: object
                properties:
                  created:
                    type: boolean
                    description: False if the managed migration job is not created.
                required:
                - created
        '201':
          description: Created.
          content:
            application/json:
              schema:
                type: object
                properties:
                  created:
                    type: boolean
                    description: True if the managed migration job is created.
                  job_id:
                    type: string
                    description: The ID of the created managed migration job.
                required:
                - created
        '400':
          $ref: '#/components/responses/ClientError'
        '404':
          $ref: '#/components/responses/NotFound'
    get:
      operationId: listSCContentTypeManagedMigrations
      tags:
      - Structured Contents
      summary: GET /structured-content/content-types/{content_type_id}/managed-migrations
      description: <span style="background-color:#e95f6a;padding:5px;border-radius:5px">Experimental</span> Retrieves a list of managed migration jobs for a specific content type.
      parameters:
      - name: content_type_id
        in: path
        required: true
        example: 645cb61c966d0c591320f636
        schema:
          type: string
          description: Unique identifier of the content type.
      - name: content_migration_summary
        in: query
        required: false
        description: Whether include a summary of content migration status (total, not started, succeeded, errored).
        example: true
        schema:
          type: boolean
          default: false
      - name: offset
        in: query
        required: false
        description: Pagination offset (number of jobs to skip).
        example: 10
        schema:
          type: integer
          minimum: 0
          default: 0
      - name: limit
        in: query
        required: false
        description: Pagination limit (number of jobs to return).
        example: 25
        schema:
          type: integer
          minimum: 1
          default: 100
      responses:
        '200':
          description: List of managed migration jobs for the content type.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SCContentTypeManagedMigrationResponse'
  /structured-content/content-types/{content_type_id}/managed-migrations/{job_id}/start:
    post:
      operationId: startSCContentTypeManagedMigration
      tags:
      - Structured Contents
      summary: POST /structured-content/content-types/{content_type_id}/managed-migrations/{job_id}/start
      description: <span style="background-color:#e95f6a;padding:5px;border-radius:5px">Experimental</span> Start managed migration job.
      parameters:
      - required: true
        schema:
          type: string
          description: content type id.
        name: content_type_id
        in: path
      - required: true
        schema:
          type: string
          description: Unique identifier of the job.
        name: job_id
        in: path
      responses:
        '200':
          description: Successful response with started=true
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SCContentTypeManagedMigrationStartResponse'
              example:
                started: true
                job_id: sample_job_id
        '400':
          description: Error response when job found by job_id but job status is invalid (status not in [error or not_started])
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPException'
              example:
                detail: 'No Job found for job_id: {job_id} and instance_id: {instance_id} with status not_started or error'
        '404':
          description: Error response when no job found by job_id with status not_started, error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPException'
              example:
                message: 'No Job found for job_id: {job_id} and instance_id: {instance_id}.'
  /structured-content/content-types/{content_type_id}/managed-migrations/{job_id}:
    get:
      operationId: getSCContentTypeManagedMigration
      tags:
      - Structured Contents
      summary: GET /structured-content/content-types/{content_type_id}/managed-migrations/{job_id}
      description: <span style="background-color:#e95f6a;padding:5px;border-radius:5px">Experimental</span> Get details of a specific managed migration job.
      parameters:
      - name: content_type_id
        in: path
        required: true
        example: 645cb61c966d0c591320f636
        schema:
          type: string
          description: Unique identifier of the content type.
      - name: job_id
        in: path
        required: true
        schema:
          type: string
          description: The ID of the managed migration job.
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SCContentTypeManagedMigrationResponse'
        '404':
          description: Not Found.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    description: The error message.
    patch:
      operationId: updateSCContentTypeManagedMigration
      tags:
      - Structured Contents
      summary: PATCH /structured-content/content-types/{content_type_id}/managed-migrations/{job_id}
      description: <span style="background-color:#e95f6a;padding:5px;border-radius:5px">Experimental</span> Update a managed migration job.
      parameters:
      - name: content_type_id
        in: path
        required: true
        example: 645cb61c966d0c591320f636
        schema:
          type: string
          description: Unique identifier of the content type.
      - name: job_id
        in: path
        required: true
        schema:
          type: string
          description: Unique identifier of the managed migration job.
      requestBody:
        description: Payload for default field values.
        required: true
        content:
          application/json:
            schema:
              type: object
              description: Default values for the managed migration job content.
              additionalProperties: false
              properties:
                default_values:
                  $ref: '#/components/schemas/LocalizedFieldValues'
              required:
              - default_values
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  updated:
                    type: boolean
                    description: True if the managed migration job is updated.
        '422':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    delete:
      operationId: deleteSCContentTypeManagedMigration
      tags:
      - Structured Contents
      summary: DELETE /structured-content/content-types/{content_type_id}/managed-migrations/{job_id}
      description: <span style="background-color:#e95f6a;padding:5px;border-radius:5px">Experimental</span> Delete a managed migration job with not_started status.
      parameters:
      - name: content_type_id
        in: path
        required: true
        example: 645cb61c966d0c591320f636
        schema:
          type: string
          description: Unique identifier of the content type.
      - required: true
        schema:
          type: string
          description: Unique identifier of the managed migration job.
        name: job_id
        in: path
      responses:
        '204':
          description: Successful response
        '400':
          $ref: '#/components/responses/ClientError'
        '404':
          $ref: '#/components/responses/NotFound'
  /structured-content/content-types/{content_type_id}/managed-migrations/validate:
    post:
      operationId: validateSCContentTypeManagedMigration
      tags:
      - Structured Contents
      summary: POST /structured-content/content-types/{content_type_id}/managed-migrations/validate
      description: <span style="background-color:#e95f6a;padding:5px;border-radius:5px">Experimental</span> Check managed migration possible or not.
      parameters:
      - name: content_type_id
        in: path
        required: true
        example: 645cb61c966d0c591320f636
        schema:
          type: string
          description: Unique identifier of the content type.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SCContentTypeManagedMigrationValidateRequest'
        required: true
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                type: object
                properties:
                  is_managed_migration_possible:
                    type: boolean
                    description: False if the managed migration not possible
                required:
                - is_managed_migration_possible
        '404':
          description: Error response when no content type found by content_type_id and instance_id
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    description: error message details
                required:
                - detail
              example:
                detail: Could not find the content type
components:
  schemas:
    SCContentTypeCreateRequest:
      required:
      - field_definitions
      - created_by
      - details
      type: object
      properties:
        details:
          $ref: '#/components/schemas/CoreContentType'
        source:
          type: string
          description: Source for the content type
        field_definitions:
          type: array
          items:
            anyOf:
            - $ref: '#/components/schemas/ContentTypeFieldDefinition'
            - $ref: '#/components/schemas/LibraryAssetFieldDefinition'
            - $ref: '#/components/schemas/TextFieldDefinition'
            - $ref: '#/components/schemas/BaseFieldDefinition'
            - $ref: '#/components/schemas/DatetimeFieldDefinition'
            - $ref: '#/components/schemas/RichTextFieldDefinition'
            - $ref: '#/components/schemas/ChoiceFieldDefinition'
            - $ref: '#/components/schemas/NumberFieldDefinition'
        created_by:
          type: string
          description: Unique identifier of the user who is creating the content type
        expected_locales:
          type: array
          description: Expected locales for the content type
          items:
            type: string
        source_id:
          type: string
          description: Source ID for the content type
        source_metadata:
          type: string
          description: Source metadata for the content type
    SCContentTypeCreateResponse:
      required:
      - created
      type: object
      properties:
        created:
          type: boolean
          description: Created status of the requested content type
        content_type_guid:
          type: string
          description: Unique identifier of the content type
        content_type_version_guid:
          type: string
          description: Unique identifier of the content type version
    AllowedContentTypeItem:
      required:
      - name
      - url
      type: object
      properties:
        name:
          type: string
          description: Name of the item
        url:
          type: string
          description: URL of the item
    LocationDefaultValue:
      required:
      - longitude
      - latitude
      type: object
      properties:
        longitude:
          type: number
          description: Longitude of the location
        latitude:
          type: number
          description: Latitude of the location
    ContentTypeFieldDefinition:
      required:
      - core
      - allowed_content_types
      - ref_type
      type: object
      properties:
        core:
          $ref: '#/components/schemas/CoreFieldDef'
        allowed_content_types:
          type: array
          description: List of allowed content types
          items:
            type: string
        ref_type:
          $ref: '#/components/schemas/ContentTypeFieldEmbedMixConfig'
        allow_ref_edit:
          type: boolean
          description: Whether to allow ref editing
        content_type_links:
          type: object
          description: Links related to the content type
          additionalProperties:
            $ref: '#/components/schemas/AllowedContentTypeItem'
        default_value:
          type: string
          description: Default value for the field
    ContentFieldValueExpandedModel:
      required:
      - content_guid
      - embedded
      - content_details
      type: object
      properties:
        embedded:
          type: boolean
          description: Indicates whether the field value is embedded
        order_index:
          type: integer
          description: Order index of the field value
        content_guid:
          type: string
          description: Content GUID of the field value
        content_url:
          type: string
          description: Content URL of the field value
        content_details:
          $ref: '#/components/schemas/ContentDetailsModel'
    LibraryAssetType:
      enum:
      - article
      - image
      - video
      - raw_file
      - structured_content
      type: string
      description: An enumeration.
    ContentTypeFieldEmbedMixConfig:
      enum:
      - 1
      - 2
      - 3
      type: integer
      description: "Ref Type:\n  * `1` Refer only\n  * `2` Refer and create embed\n  * `3` Create only\n"
    SCContentTypeManagedMigrationValidateRequest:
      type: object
      properties:
        source_content_type_version_id:
          type: string
          description: The ID of the source content type version to migrate from.
        default_values:
          type: object
          description: Default values for the migration, if any.
          $ref: '#/components/schemas/LocalizedFieldValues'
      required:
      - source_content_type_version_id
    BaseFieldDefinitionType:
      enum:
      - boolean
      - json
      - url
      - location
      type: string
      description: An enumeration.
    SCContentPreviewCompleteRequest:
      required:
      - keyed_previews
      type: object
      properties:
        keyed_previews:
          type: object
          additionalProperties:
            anyOf:
            - maxLength: 65536
              minLength: 1
              type: string
              format: uri
            - $ref: '#/components/schemas/KeyedPreviewCompletedModel'
            - $ref: '#/components/schemas/KeyedPreviewErrorModel'
    VersionedContentTypeModel:
      required:
      - name
      - component
      - content_type_guid
      - created_by
      - updated_by
      - created_at
      - updated_at
      - links
      - version
      type: object
      properties:
        name:
          type: string
          description: Name of the content type
        description:
          type: string
          description: Description of the content type
        component:
          type: boolean
          description: Indicates whether the content type is a component
        disabled:
          type: boolean
          description: Disabled status of the content type
        source:
          type: string
          description: Source of the content type
        version:
          $ref: '#/components/schemas/SCContentTypeVersion'
        thumbnail_guid:
          type: string
          description: Thumbnail GUID of the content type
        content_type_guid:
          type: string
          description: Unique identifier of the content type
        created_by:
          type: string
          description: Unique identifier of the user who created the content type
        updated_by:
          type: string
          description: Unique identifier of the user who last updated the content type
        created_at:
          type: string
          format: date-time
          description: Date and time on which the content type was created, in ISO 8601 UTC format
        updated_at:
          type: string
          format: date-time
          description: Date and time on which the content type was last updated, in ISO 8601 UTC format
        source_id:
          type: string
          description: Source of the content type
        source_metadata:
          type: string
          description: Source metadata of the content type
        links:
          type: object
          description: Meta links
          properties:
            self:
              type: string
              description: URL of the content type
              example: https://api.cmp.optimizely.com/v3/structured-content/content-types/9fda53cf66a14fd487251480ca695c7b
            versions:
              type: string
              description: URL of the content type versions
              example: https://api.cmp.optimizely.com/v3/structured-content/content-types/9fda53cf66a14fd487251480ca695c7b/versions
    ChoiceDisplayOption:
      enum:
      - radio
      - dropdown
      - tag
      - checkbox
      type: string
      description: An enumeration.
    LocationFieldValueModel:
      required

# --- truncated at 32 KB (63 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/optimizely/refs/heads/main/openapi/optimizely-structured-contents-api-openapi.yml