openapi: 3.2.0
info:
title: Optimizely CMP Open API Documentation Brand Compliance API
version: V3
servers:
- description: v3 version of Optimizely CMP Open API
url: https://api.cmp.optimizely.com/v3
security:
- OAuth2:
- openid
- profile
- offline_access
tags:
- name: Brand Compliance
paths:
/brand-compliance/categories:
get:
description: Experimental Get a list of brand compliance categories.
operationId: listBrandComplianceCategories
parameters:
- $ref: '#/components/parameters/offset'
- $ref: '#/components/parameters/page_size'
responses:
'200':
content:
application/json:
schema:
additionalProperties: false
properties:
data:
description: List of brand compliance categories
items:
$ref: '#/components/schemas/BrandComplianceCategoriesResponse'
type: array
pagination:
allOf:
- $ref: '#/components/schemas/Pagination'
- properties:
next:
example: https://api.cmp.optimizely.com/v3/brand-compliance/categories?offset=10&page_size=10
type:
- string
- 'null'
type: object
required:
- data
- pagination
type: object
description: List of fetched brand compliance categories
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
summary: GET /brand-compliance/categories
tags:
- Brand Compliance
/tasks/{task_id}/assets/{asset_id}/drafts/{draft_id}/brand-compliance:
get:
description: Experimental Get the brand compliance details of a draft of an asset of a task.
operationId: getTaskAssetDraftBrandCompliance
parameters:
- example: 5f857f30e1c4a2038d6179e9
in: path
name: task_id
required: true
schema:
description: Unique identifier of the task
type: string
- example: 5d7f910551b00a722e0418830cee6631
in: path
name: asset_id
required: true
schema:
description: Unique identifier of the asset
type: string
- examples:
example1:
summary: Set the value to "latest" to fetch the brand compliance details of the latest draft
value: latest
example2:
summary: Set a unique identifier of a draft
value: 6706efc7828cd6aaedbc0434139cd3e1
in: path
name: draft_id
required: true
schema:
description: Unique identifier of the draft or `latest`. `latest` refers to the most recent draft of the asset within the task.
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/TaskAssetDraftBrandComplianceResponse'
description: Brand compliance details of the asset draft
'400':
$ref: '#/components/responses/ClientError'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
summary: GET /tasks/{task_id}/assets/{asset_id}/drafts/{draft_id}/brand-compliance
tags:
- Brand Compliance
put:
description: Experimental Update the brand compliance details of a draft of an asset of a task.
operationId: updateTaskAssetDraftBrandCompliance
parameters:
- example: 5f857f30e1c4a2038d6179e9
in: path
name: task_id
required: true
schema:
description: Unique identifier of the task
type: string
- example: 5d7f910551b00a722e0418830cee6631
in: path
name: asset_id
required: true
schema:
description: Unique identifier of the asset
type: string
- examples:
example1:
summary: Set the value to "latest" to update the brand compliance details of the latest draft
value: latest
example2:
summary: Set a unique identifier of a draft
value: 6706efc7828cd6aaedbc0434139cd3e1
in: path
name: draft_id
required: true
schema:
description: Unique identifier of the draft or `latest`. `latest` refers to the most recent draft of the asset within the task.
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TaskAssetDraftBrandComplianceRequest'
description: Payload to update the brand compliance
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/TaskAssetDraftBrandComplianceResponse'
description: Brand compliance details of the asset draft
'400':
$ref: '#/components/responses/ClientError'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
summary: PUT /tasks/{task_id}/assets/{asset_id}/drafts/{draft_id}/brand-compliance
tags:
- Brand Compliance
components:
responses:
Forbidden:
content:
application/json:
example:
message: You do not have the permission to perform this operation
schema:
$ref: '#/components/schemas/Error'
description: Permission error
NotFound:
content:
application/json:
example:
message: Resource not found
schema:
$ref: '#/components/schemas/Error'
description: Not found error
ClientError:
content:
application/json:
example:
message: 'Unsupported arguments: a,b,c'
schema:
$ref: '#/components/schemas/Error'
description: Client error
Unauthorized:
content:
application/json:
example:
message: Unauthorized
schema:
$ref: '#/components/schemas/Error'
description: Authorization error
parameters:
page_size:
description: Number of results to return per page
example: 15
in: query
name: page_size
schema:
default: 10
maximum: 100
minimum: 1
type: integer
offset:
description: Starting index of results (zero indexed)
example: 5
in: query
name: offset
schema:
default: 0
minimum: 0
type: integer
schemas:
TaskAssetDraftBrandComplianceResponse:
additionalProperties: false
properties:
categories:
description: List of compliance categories
items:
additionalProperties: false
properties:
criteria:
description: List of criteria
items:
additionalProperties: false
properties:
description:
description: Description of the criterion
example: For all CMYK, RGB and HTML breakdowns, please refer to the full Colour Policy guideline
type:
- string
- 'null'
id:
description: Unique identifier of the criterion
example: 66dd74f41a335b59cd98915c
type: string
name:
description: Name of the criterion
example: Sub-category-1A
type: string
selected:
description: Whether the criterion is selected or not
example: true
type:
- boolean
- 'null'
required:
- id
- name
- description
- selected
type: object
type: array
id:
description: Unique identifier of the category
example: 66dd74f41a335b59cd98915b
type: string
name:
description: Name of the category
example: Category-1
type: string
notes:
description: Notes left by the reviewer for the category
example: Look's good
type:
- string
- 'null'
status:
description: Brand compliance status of the category
enum:
- compliant
- not compliant
- not applicable
- null
example: compliant
type:
- string
- 'null'
required:
- id
- name
- status
- notes
- criteria
type: object
type: array
reviewed_at:
description: Date and time of when the draft was reviewed, in ISO 8601 UTC format
example: '2020-10-06T13:15:30Z'
format: date-time
type:
- string
- 'null'
reviewed_by:
description: Unique identifier of the user who reviewed the draft
example: 66d837c62373533177b59db3
type:
- string
- 'null'
status:
description: Brand compliance status of the draft
enum:
- approved
- declined
- not_reviewed
example: approved
type: string
required:
- status
- reviewed_at
- reviewed_by
- categories
type: object
TaskAssetDraftBrandComplianceRequest:
additionalProperties: false
properties:
categories:
description: List of compliance categories
items:
additionalProperties: false
properties:
criteria:
description: List of criteria
items:
additionalProperties: false
properties:
description:
description: Description of the criterion
example: For all CMYK, RGB and HTML breakdowns, please refer to the full Colour Policy guideline
type:
- string
- 'null'
id:
description: Unique identifier of the criterion
example: 66dd74f41a335b59cd98915c
type: string
selected:
description: Whether the criterion is selected or not
example: true
type:
- boolean
- 'null'
required:
- id
- description
- selected
type: object
type: array
id:
description: Unique identifier of the category
example: 66dd74f41a335b59cd98915b
type: string
notes:
description: Notes left by the reviewer for the category
example: Look's good
type:
- string
- 'null'
status:
description: Brand compliance status of the category
enum:
- compliant
- not compliant
- not applicable
- null
example: compliant
type:
- string
- 'null'
required:
- id
- status
- notes
- criteria
type: object
type: array
status:
description: Brand compliance status of the draft
enum:
- approved
- declined
- not_reviewed
example: approved
type: string
required:
- status
- categories
type: object
Pagination:
additionalProperties: false
description: Pagination related information
properties:
next:
description: URL to the next page
example: https://api.cmp.optimizely.com/?offset=10&page_size=10
type:
- string
- 'null'
previous:
description: URL to the previous page
example: null
type:
- string
- 'null'
required:
- next
- previous
type: object
BrandComplianceCategoriesResponse:
additionalProperties: false
properties:
criteria:
items:
properties:
description:
description: Details about the criteria
example: Description-1A
type: string
id:
description: Unique identifier of the criteria
example: 66cebe190bc97e0151eecddb
type: string
name:
description: Name of the criteria
example: Sub-category-1A
type: string
required:
- id
type: object
type: array
id:
description: Unique identifier of the category
example: 66cebe190bc97e0151eecdda
type: string
name:
description: Name of the category
example: Category-1
type: string
required:
- id
- criteria
type: object
Error:
additionalProperties: true
description: Error payload
properties:
errors:
additionalProperties: true
description: Additional information
properties: {}
type: object
message:
description: Message describing the error
example: Not found
type: string
required:
- message
type: object
securitySchemes:
OAuth2:
flows:
authorizationCode:
authorizationUrl: https://accounts.cmp.optimizely.com/o/oauth2/v1/auth
scopes:
offline_access: Grants the ability to refresh access_token using the refresh token even when user is not present (not logged in).
openid: Grants the ability to receive a unique identifier for the user.
profile: Grants access to user profile information.
tokenUrl: https://accounts.cmp.optimizely.com/o/oauth2/v1/token
clientCredentials:
scopes: {}
tokenUrl: https://accounts.cmp.optimizely.com/o/oauth2/v1/token
type: oauth2
x-tagGroups:
- name: API
tags:
- Uploader
- Library
- Labels
- Brand Compliance
- Tasks
- Task Step
- Campaigns
- Publishing
- Templates
- Users
- Work Requests
- Structured Contents
- Assets
- Milestones
- Teams
- Settings
- Workflows
- Fields
- Events