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