# Content Marketing Platform Documentation > Optimizely Content Marketing Platform (CMP) brings teams together in a single workspace to share plans, collaborate on assets and flawlessly execute campaigns. Append .md to any documentation page URL to get its markdown version. ## Guides - [Optimizely CMP Open REST API](https://docs.developers.optimizely.com/content-marketing-platform/docs/open-api-introduction.md): Describes concepts and resources for integrating an application using the API and Webhooks. - [Domains and IP address](https://docs.developers.optimizely.com/content-marketing-platform/docs/domains-and-ip-address.md): The domains and IP addresses you must add to your allowlist to use Optimizely Content Marketing Platform - [Authenticate](https://docs.developers.optimizely.com/content-marketing-platform/docs/authentication-1.md): Optimizely CMP Open API uses OAuth 2.0 as its authorization mechanism. - [Revoke tokens](https://docs.developers.optimizely.com/content-marketing-platform/docs/revoke-tokens.md): Learn how to revoke access and refresh tokens in Optimizely CMP using HTTP POST requests for secure token management. - [Hosted middleware deployments](https://docs.developers.optimizely.com/content-marketing-platform/docs/hosted-middleware-deployments.md): Create and deploy hosted middleware using Optimizely Content Marketing Platform (CMP) - [DAM asset picker](https://docs.developers.optimizely.com/content-marketing-platform/docs/library-picker.md): Use the Optimizely CMP asset picker for seamless integration and selection of digital assets within your applications. - [Upload assets to library or task](https://docs.developers.optimizely.com/content-marketing-platform/docs/upload-assets.md): Learn how to upload assets to Optimizely CMP with pre-signed URLs, multipart uploads, and seamless library integration. - [Multipart upload](https://docs.developers.optimizely.com/content-marketing-platform/docs/multipart-upload.md): Upload large files faster using Optimizely Content Management Platform's multipart upload feature. - [Migrate DAM assets using the API](https://docs.developers.optimizely.com/content-marketing-platform/docs/dam-assets-migration-using-the-api.md): Provides an overview of the process and associated endpoints used to migrate assets from a third-party platform or repository to the Optimizely CMP DAM using the REST Open API - [Update labels in a CMP resource](https://docs.developers.optimizely.com/content-marketing-platform/docs/update-a-resource.md): Modify resource attributes in Optimizely CMP using the PATCH method. - [Rate limits in CMP](https://docs.developers.optimizely.com/content-marketing-platform/docs/rate-limits-1.md): Understand Optimizely CMP's API rate limits. - [Backward compatibility in CMP](https://docs.developers.optimizely.com/content-marketing-platform/docs/backward-compatibility-1.md): Explore how Optimizely CMP ensures backward compatibility in API changes, maintaining existing functionalities while adding new features. - [Feed API v2](https://docs.developers.optimizely.com/content-marketing-platform/docs/feed-api.md): Describes Version 2 of the Feed API and the use of feeds and parameters. - [Glossary of integration terms](https://docs.developers.optimizely.com/content-marketing-platform/docs/glossary-of-integration-terms.md): Explore key integration terms for Optimizely CMP, including API, webhooks, and native vs. custom integrations. - [Marketo publishing integration](https://docs.developers.optimizely.com/content-marketing-platform/docs/marketo-publishing-integration.md): Integrate Marketo publishing with Optimizely Content Marketing Platform (CMP) - [CMP + CMS 12](https://docs.developers.optimizely.com/content-marketing-platform/docs/cmp-cms.md): Integrate Optimizely CMP with CMS 12 for efficient content creation and web publishing workflows. - [CMP Content Repository](https://docs.developers.optimizely.com/content-marketing-platform/docs/cmp-content-repository.md): Describes the Optimizely Content Marketing Platform Content Repository structure. - [CMP DAM in CMS](https://docs.developers.optimizely.com/content-marketing-platform/docs/cmp-dam-in-cms.md): Integrate Optimizely Content Management System with Optimizely Content Marketing Platform and Optimizely Graph. - [CMS + CMP publishing integration](https://docs.developers.optimizely.com/content-marketing-platform/docs/cms-cmp-publishing-integration.md): Install and configure the publishing experience between CMS and CMP. - [Get started with omnichannel content](https://docs.developers.optimizely.com/content-marketing-platform/docs/get-started-with-omnichannel-content.md): Leverage Optimizely CMP for seamless omnichannel content creation and distribution, ensuring consistent messaging across platforms. - [Model omnichannel content](https://docs.developers.optimizely.com/content-marketing-platform/docs/model-content.md): Design flexible and reusable content types in Optimizely CMP for effective omnichannel content management. - [Create omnichannel content](https://docs.developers.optimizely.com/content-marketing-platform/docs/create-content.md): Learn how to create omnichannel content in Optimizely CMP using both UI and API for effective content management. - [Push and pull omnichannel content strategies](https://docs.developers.optimizely.com/content-marketing-platform/docs/distribute-occ.md): Explore push and pull strategies for distributing omnichannel content in Optimizely CMP to meet diverse delivery needs. - [Work with previews](https://docs.developers.optimizely.com/content-marketing-platform/docs/work-with-previews.md): Learn to implement and manage content previews in Optimizely CMP using API-driven processes for real-time rendering. - [Content type versions](https://docs.developers.optimizely.com/content-marketing-platform/docs/content-type-versions.md): Manage content evolution in Optimizely CMP with content type versions, ensuring consistency and flexibility over time. - [Remote fields](https://docs.developers.optimizely.com/content-marketing-platform/docs/remote-fields.md): Integrate custom applications into Optimizely CMP as interactive fields using remote fields for enhanced content editing. - [Integrate a custom post type within CMP](https://docs.developers.optimizely.com/content-marketing-platform/docs/integrate-a-custom-post-type-within-cmp.md): Use custom post types to manage content between Wordpress and Optimizely Content Marketing Platform (CMP). - [Create structured content for WordPress](https://docs.developers.optimizely.com/content-marketing-platform/docs/create-structured-content-for-wordpress.md): Add structured content for WordPress in Optimizely Content Marketing Platform (CMP). - [Map structured content to WordPress ACF](https://docs.developers.optimizely.com/content-marketing-platform/docs/map-structured-content-to-wordpress-acf.md): How to map structured content to WordPress Advanced Custom Fields (ACF) in Optimizely Content Marketing Platform (CMP). - [Checkbox field mapping](https://docs.developers.optimizely.com/content-marketing-platform/docs/checkbox-field-mapping.md): Map WordPress ACF checkbox fields to choice fields in Optimizely CMP for seamless integration and content management. - [Date Picker field mapping](https://docs.developers.optimizely.com/content-marketing-platform/docs/date-picker-field-mapping.md): Map WordPress ACF Date Picker fields to Date & Time fields in Optimizely CMP for accurate date integration. - [Date Time Picker field mapping](https://docs.developers.optimizely.com/content-marketing-platform/docs/date-time-picker-field-mapping.md): Map WordPress ACF Date Time Picker fields to Date & Time fields in Optimizely CMP for precise data integration. - [Email field mapping](https://docs.developers.optimizely.com/content-marketing-platform/docs/email-field-mapping.md): Map WordPress ACF email fields to structured content in Optimizely CMP using validation patterns for accurate data entry. - [File field mapping](https://docs.developers.optimizely.com/content-marketing-platform/docs/file-field-mapping.md): Map WordPress ACF file fields to structured content assets in Optimizely CMP for efficient file management. - [Image field mapping](https://docs.developers.optimizely.com/content-marketing-platform/docs/image-field-mapping.md): Map WordPress ACF image fields to structured content assets in Optimizely CMP for seamless image handling. - [Number field mapping](https://docs.developers.optimizely.com/content-marketing-platform/docs/number-field-mapping.md): Map WordPress ACF number fields to structured content in Optimizely CMP for accurate numerical data integration. - [oEmbed field mapping](https://docs.developers.optimizely.com/content-marketing-platform/docs/oembed-field-mapping.md): Map WordPress ACF oEmbed fields to URLs in Optimizely CMP for embedding rich media content seamlessly. - [Post Object field mapping](https://docs.developers.optimizely.com/content-marketing-platform/docs/post-object-field-mapping.md): Map WordPress ACF Post Object fields to WordPress taxonomy in Optimizely CMP for seamless custom post type integration. - [Radio Button field mapping](https://docs.developers.optimizely.com/content-marketing-platform/docs/radio-button-field-mapping.md): Map WordPress ACF radio button fields to choice fields in Optimizely CMP for seamless integration and content management. - [Repeater field mapping](https://docs.developers.optimizely.com/content-marketing-platform/docs/repeater-field-mapping.md): Map WordPress ACF Repeater fields to components and references in Optimizely CMP for structured data integration. - [Select field mapping](https://docs.developers.optimizely.com/content-marketing-platform/docs/select-field-mapping.md): Map WordPress ACF select fields to choice fields in Optimizely CMP for seamless integration and content management. - [Taxonomy field mapping](https://docs.developers.optimizely.com/content-marketing-platform/docs/taxonomy-field-mapping.md): Map WordPress ACF Taxonomy fields to structured content in Optimizely CMP for efficient taxonomy management. - [Text field mapping](https://docs.developers.optimizely.com/content-marketing-platform/docs/text-field-mapping.md): Map WordPress ACF text fields to structured content in Optimizely CMP for seamless integration and management. - [Text Area field mapping](https://docs.developers.optimizely.com/content-marketing-platform/docs/text-area-mapping.md): Map WordPress ACF text area fields to rich text in Optimizely CMP for seamless content integration and management. - [True/False field mapping](https://docs.developers.optimizely.com/content-marketing-platform/docs/truefalse-field-mapping.md): Map WordPress ACF true/false fields to boolean fields in Optimizely CMP for seamless integration and data consistency. - [URL field mapping](https://docs.developers.optimizely.com/content-marketing-platform/docs/url-field-mapping.md): Map WordPress ACF URL fields to structured content in Optimizely CMP for consistent data representation. - [User field mapping](https://docs.developers.optimizely.com/content-marketing-platform/docs/user-field-mapping.md): Map WordPress ACF User fields to WordPress taxonomy in Optimizely CMP for seamless user data integration. - [WYSIWYG Editor field mapping](https://docs.developers.optimizely.com/content-marketing-platform/docs/wysiwyg-editor-field-mapping.md): Map WordPress ACF WYSIWYG editor fields to rich text in Optimizely CMP for seamless content management. - [Install JavaScript snippet](https://docs.developers.optimizely.com/content-marketing-platform/docs/install-javascript-snippet.md): Learn how to install the Optimizely CMP JavaScript snippet on your website for seamless analytics tracking. - [Pixels, JavaScript, and user data](https://docs.developers.optimizely.com/content-marketing-platform/docs/javascript-pixels-and-user-data.md): Explore how Optimizely CMP uses JavaScript pixels to track user interactions and enhance content analytics. - [Setup conversion tracking](https://docs.developers.optimizely.com/content-marketing-platform/docs/setup-conversion-tracking.md): Learn how to set up conversion tracking in Optimizely CMP to monitor user actions and optimize content strategies. ## API Reference - [Optimizely CMP Open REST API](https://docs.developers.optimizely.com/content-marketing-platform/reference/api-reference.md): Describes concepts and resources for integrating an application using the API and Webhooks. - [POST /v3/multipart-uploads/{id}/complete](https://docs.developers.optimizely.com/content-marketing-platform/reference/completemultipartupload.md): Experimental Initiate completion of a multipart upload after all parts have been uploaded - [POST /v3/multipart-uploads](https://docs.developers.optimizely.com/content-marketing-platform/reference/createmultipartupload.md): Experimental Create pre-signed URLs for multipart upload of large files - [GET /v3/multipart-uploads/{id}/status](https://docs.developers.optimizely.com/content-marketing-platform/reference/getmultipartuploadstatus.md): Experimental Retrieve the current status of a multipart upload - [GET /upload-url](https://docs.developers.optimizely.com/content-marketing-platform/reference/getuploadurl.md): Get a presigned URL and related meta fields to upload a file. **The validity time for this URL is 60 minutes**. - [POST /assets/{asset_id}/lineages](https://docs.developers.optimizely.com/content-marketing-platform/reference/createassetlineage.md): Experimental Add a new external asset lineage. - [GET /assets/{asset_id}/related-assets](https://docs.developers.optimizely.com/content-marketing-platform/reference/listrelatedassets.md): Returns a paginated list of related assets for the specified asset. Only supported for asset types: article, image, video, raw_file, and structured_content. - [PUT /assets/{asset_id}/related-assets](https://docs.developers.optimizely.com/content-marketing-platform/reference/replacerelatedassets.md): Replaces all related assets for the specified asset. Only supported for asset types: article, image, video, raw_file, and structured_content. - [POST /assets/{asset_id}/permissions](https://docs.developers.optimizely.com/content-marketing-platform/reference/addassetpermissions.md): Experimental Grant asset access to users or teams - [POST /folders/{id}/permissions](https://docs.developers.optimizely.com/content-marketing-platform/reference/addfolderpermissions.md): Experimental Grant folder access to users or teams - [POST /assets](https://docs.developers.optimizely.com/content-marketing-platform/reference/createasset.md): Create a new asset. Supports only `images`, `videos`, and `raw files`. See [Upload assets](https://docs.developers.optimizely.com/content-marketing-platform/docs/upload-assets) to upload an asset. - [POST /assets/{asset_id}/versions](https://docs.developers.optimizely.com/content-marketing-platform/reference/createassetversion.md): Add a new version to a library asset. Supports adding versions to only `images`, `videos`, and `raw files` type assets. See [Upload assets](https://docs.developers.optimizely.com/content-marketing-platform/docs/upload-assets) to upload a version to a library asset. - [POST /file-urls](https://docs.developers.optimizely.com/content-marketing-platform/reference/createfileurls.md): Generates download URLs of files given file guid. - [POST /folders](https://docs.developers.optimizely.com/content-marketing-platform/reference/createfolder.md): Create a folder. Use the `parent_folder_id` field to create a nested folder. - [POST /structured-contents](https://docs.developers.optimizely.com/content-marketing-platform/reference/createstructuredcontent.md): Experimental Creates a structured content. - [DELETE /assets/{asset_id}/lineages/{lineage_id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/deleteassetlineage.md): Experimental Delete an asset lineage. - [DELETE /folders/{id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/deletefolder.md): Experimental Delete a folder. - [DELETE /images/{id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/deleteimage.md): Delete an image - [DELETE /raw-files/{id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/deleterawfile.md): Delete a raw file - [DELETE /videos/{id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/deletevideo.md): Delete a video - [GET /articles/{id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/getarticle.md): Get an article - [GET /folders/{id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/getfolder.md): Get a folder - [GET /images/{id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/getimage.md): Get an image - [GET /raw-files/{id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/getrawfile.md): Get a raw file - [GET /renditions/{id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/getrendition.md): Experimental Get a rendition given its `id`. - [GET /rendition-configs/{id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/getrenditionconfig.md): Experimental Get a rendition configuration of an organization given its `id`. - [GET /structured-contents/{id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/getstructuredcontent.md): Experimental Get the structured content. - [GET /videos/{id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/getvideo.md): Get a video - [GET assets/{asset_id}/fields](https://docs.developers.optimizely.com/content-marketing-platform/reference/listassetfields.md): Experimental Get the list of fields of an asset. - [GET /asset-lineages](https://docs.developers.optimizely.com/content-marketing-platform/reference/listassetlineages.md): Experimental Get the list of asset lineage. - [GET /assets/{asset_id}/permissions](https://docs.developers.optimizely.com/content-marketing-platform/reference/listassetpermissions.md): Experimental List of entities that have permission to access the asset - [GET /assets/{asset_id}/renditions](https://docs.developers.optimizely.com/content-marketing-platform/reference/listassetrenditions.md): Experimental Get the renditions of an asset given its `id`. - [GET /assets](https://docs.developers.optimizely.com/content-marketing-platform/reference/listassets.md): Get the list of assets. Assets are sorted by `modified_at` in descending order. To get assets that are not inside any folder, pass `include_subfolder_assets=false` in the query param. - [GET /folders/{id}/permissions](https://docs.developers.optimizely.com/content-marketing-platform/reference/listfolderpermissions.md): Experimental List of entities that have permission to access the folder - [GET /folders](https://docs.developers.optimizely.com/content-marketing-platform/reference/listfolders.md): Get the list of folders sorted by `modified_at` in descending order. - [DELETE /asstes/{asset_id}/permissions/{accessor_id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/removeassetpermission.md): Experimental Remove accessor's access from an asset - [DELETE /folders/{id}/permissions/{accessor_id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/removefolderpermission.md): Experimental Remove accessor's access from a folder - [PUT /assets/{asset_id}/fields/{field_id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/updateassetfield.md): Experimental Update the field value of an asset. - [PUT /assets/{asset_id}/fields](https://docs.developers.optimizely.com/content-marketing-platform/reference/updateassetfields.md): Experimental Replace existing fields of an asset. - [PATCH /assets/{asset_id}/permissions/{accessor_id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/updateassetpermission.md): Experimental Update accessor's access level and ownership of asset - [PATCH /folders/{id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/updatefolder.md): Experimental Update a folder's name and/or parent. - [PATCH /folders/{id}/permissions/{accessor_id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/updatefolderpermission.md): Experimental Update accessor's access level and ownership of folder - [PATCH /images/{id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/updateimage.md): Updates an image - [PATCH /raw-files/{id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/updaterawfile.md): Updates a raw file - [PATCH /structured-contents/{id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/updatestructuredcontent.md): Experimental Updates a structured content. - [PATCH /videos/{id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/updatevideo.md): Updates a video - [GET /label-groups](https://docs.developers.optimizely.com/content-marketing-platform/reference/listlabelgroups.md): Get the list of label groups. Label groups are sorted by `name` in ascending order. - [GET /tasks/{task_id}/assets/{asset_id}/drafts/{draft_id}/brand-compliance](https://docs.developers.optimizely.com/content-marketing-platform/reference/gettaskassetdraftbrandcompliance.md): Experimental Get the brand compliance details of a draft of an asset of a task. - [GET /brand-compliance/categories](https://docs.developers.optimizely.com/content-marketing-platform/reference/listbrandcompliancecategories.md): Experimental Get a list of brand compliance categories. - [PUT /tasks/{task_id}/assets/{asset_id}/drafts/{draft_id}/brand-compliance](https://docs.developers.optimizely.com/content-marketing-platform/reference/updatetaskassetdraftbrandcompliance.md): Experimental Update the brand compliance details of a draft of an asset of a task. - [POST /tasks/{id}/assets](https://docs.developers.optimizely.com/content-marketing-platform/reference/addassettotask.md): This API allows you to add an asset to a task. There currently two mechanisms to add an asset - either by uploading an asset first and then calling this API (for only `images`, `videos`, and `raw files`), or by adding an asset from the library. The 'type' parameter in the request body will determine the mechanism used to add the asset. See [Upload assets](https://docs.developers.optimizely.com/content-marketing-platform/docs/upload-assets) to upload an asset. - [POST /tasks/{task_id}/comments](https://docs.developers.optimizely.com/content-marketing-platform/reference/addcommenttotask.md): Experimental Post a comment on a task. - [POST /tasks/{task_id}/assets/{asset_id}/comments](https://docs.developers.optimizely.com/content-marketing-platform/reference/addcommenttotaskasset.md): Add a comment to the latest version of a task asset. Supports adding comments to only **images**, **videos** and **raw files** type assets. - [POST /tasks/{task_id}/steps/{step_id}/sub-steps/{sub_step_id}/comments](https://docs.developers.optimizely.com/content-marketing-platform/reference/addcommenttotasksubstep.md): Create a task substep comment - [POST /tasks/{task_id}/assets/{asset_id}/drafts](https://docs.developers.optimizely.com/content-marketing-platform/reference/adddrafttotaskasset.md): Add a new draft to a task asset. You can add a draft to only `images`, `videos`, and `raw files` type task assets. See [Upload assets](https://docs.developers.optimizely.com/content-marketing-platform/docs/upload-assets) to upload an asset draft. - [POST tasks/{task_id}/fields](https://docs.developers.optimizely.com/content-marketing-platform/reference/addfieldtotask.md): Experimental Add a field to a task. - [POST /tasks/{task_id}/structured-contents](https://docs.developers.optimizely.com/content-marketing-platform/reference/addstructuredcontenttotask.md): Experimental Add a new structured content to task - [POST /tasks/{task_id}/urls](https://docs.developers.optimizely.com/content-marketing-platform/reference/addurltotask.md): Experimental Adds a URL to a task. - [POST /tasks](https://docs.developers.optimizely.com/content-marketing-platform/reference/createtask.md): Experimental Create a task - [POST /tasks/{task_id}/structured-contents/{content_id}/drafts](https://docs.developers.optimizely.com/content-marketing-platform/reference/createtaskstructuredcontentdraft.md): Experimental Create structured content draft using a task. - [DELETE /tasks/{task_id}/structured-contents/{content_id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/deletetaskstructuredcontent.md): Experimental Delete a structured content from task - [DELETE /tasks/{task_id}/steps/{step_id}/sub-steps/{sub_step_id}/comments/{comment_id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/deletetasksubstepcomment.md): Delete a task substep comment - [GET /tasks/{id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/gettask.md): Get a task - [GET /tasks/{task_id}/articles/{article_id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/gettaskarticle.md): Get an article associated with the task identified by `task_id`. - [GET /tasks/{id}/brief](https://docs.developers.optimizely.com/content-marketing-platform/reference/gettaskbrief.md): Get brief of the task - [GET /tasks/{task_id}/custom-fields/{custom_field_id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/gettaskcustomfield.md): Get a custom field of a task - [GET /tasks/{task_id}/images/{image_id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/gettaskimage.md): Get an image associated with the task identified by `task_id`. - [GET /tasks/{task_id}/raw-files/{raw_file_id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/gettaskrawfile.md): Get a raw file associated with the task identified by `task_id`. - [GET /tasks/{task_id}/structured-contents/{content_id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/gettaskstructuredcontent.md): Experimental Get a task structured content by its guid. - [GET /tasks/{task_id}/steps/{step_id}/sub-steps/{sub_step_id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/gettasksubstep.md): Get the substep of a task - [GET /tasks/{task_id}/steps/{step_id}/sub-steps/{sub_step_id}/comments/{comment_id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/gettasksubstepcomment.md): Get a task substep comment - [GET /tasks/{task_id}/steps/{step_id}/sub-steps/{sub_step_id}/external-work](https://docs.developers.optimizely.com/content-marketing-platform/reference/gettasksubstepexternalwork.md): Get the external work information of a task external substep - [GET /tasks/{task_id}/videos/{video_id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/gettaskvideo.md): Get a video associated with the task identified by task_id - [GET /tasks/{task_id}/assets/{asset_id}/comments](https://docs.developers.optimizely.com/content-marketing-platform/reference/listtaskassetcomments.md): List all the comments for the latest version of a task asset. - [GET /tasks/{task_id}/assets/{asset_id}/drafts](https://docs.developers.optimizely.com/content-marketing-platform/reference/listtaskassetdrafts.md): Experimental Get the list of drafts on an asset of a task. - [GET /tasks/{task_id}/assets/{asset_id}/fields](https://docs.developers.optimizely.com/content-marketing-platform/reference/listtaskassetfields.md): Experimental List all the fields of a task asset. - [GET /tasks/{id}/assets](https://docs.developers.optimizely.com/content-marketing-platform/reference/listtaskassets.md): Get the list of the assets or contents of a task - [GET /tasks/{id}/attachments](https://docs.developers.optimizely.com/content-marketing-platform/reference/listtaskattachments.md): Get the list of the attachments of a task - [GET /tasks/{task_id}/custom-fields/{custom_field_id}/choices](https://docs.developers.optimizely.com/content-marketing-platform/reference/listtaskcustomfieldchoices.md): Get the list of the choices of a custom field in a task. - [GET tasks/{id}/custom-fields](https://docs.developers.optimizely.com/content-marketing-platform/reference/listtaskcustomfields.md): Get the list of custom fields added to a task. - [GET tasks/{task_id}/fields](https://docs.developers.optimizely.com/content-marketing-platform/reference/listtaskfields.md): Experimental Get the list of fields of a task. - [GET /tasks](https://docs.developers.optimizely.com/content-marketing-platform/reference/listtasks.md): Experimental Get a list of tasks. - [GET /tasks/{task_id}/steps/{step_id}/sub-steps/{sub_step_id}/comments](https://docs.developers.optimizely.com/content-marketing-platform/reference/listtasksubstepcomments.md): Get the list of the comments of a task substep - [GET /tasks/{task_id}/steps/{step_id}/sub-steps/{sub_step_id}/fields](https://docs.developers.optimizely.com/content-marketing-platform/reference/listtasksubstepfields.md): Experimental Get the list of fields of a substep of a task. - [DELETE tasks/{task_id}/fields/{field_id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/removetaskfield.md): Experimental Remove a field of a task. - [PATCH /tasks/{id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/updatetask.md): Update a task - [PUT tasks/{task_id}/assets/{asset_id}/fields](https://docs.developers.optimizely.com/content-marketing-platform/reference/updatetaskassetfields.md): Experimental Replace fields of an asset in a task. - [PATCH /tasks/{task_id}/custom-fields/{custom_field_id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/updatetaskcustomfield.md): Update a custom field of a task. You can update the following types: `text_field`, `multi_line_text_field`, `checkboxes`, `dropdown`, `multi_select_dropdown`, `multiple_choice`, `date_field`, `rich_text_field` - [PUT tasks/{taks_id}/fields/{field_id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/updatetaskfield.md): Experimental Update a field of a task. - [PATCH /tasks/{task_id}/structured-contents/{content_id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/updatetaskstructuredcontent.md): Experimental Update structured content using a task. - [PATCH /tasks/{task_id}/steps/{step_id}/sub-steps/{sub_step_id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/updatetasksubstep.md): Update a substep of a step in a task - [PATCH /tasks/{task_id}/steps/{step_id}/sub-steps/{sub_step_id}/comments/{comment_id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/updatetasksubstepcomment.md): Update a task substep comment - [PATCH /tasks/{task_id}/steps/{step_id}/sub-steps/{sub_step_id}/external-work](https://docs.developers.optimizely.com/content-marketing-platform/reference/updatetasksubstepexternalwork.md): Update the external work information of a task external substep - [POST /campaigns/{id}/attachments](https://docs.developers.optimizely.com/content-marketing-platform/reference/addattachmenttocampaign.md): Experimental Add an attachment to the campaign. - [POST /campaigns/{id}/comments](https://docs.developers.optimizely.com/content-marketing-platform/reference/addcommenttocampaign.md): Experimental Post a comment on a campaign. - [POST campaigns/{id}/fields](https://docs.developers.optimizely.com/content-marketing-platform/reference/addfieldtocampaign.md): Experimental Add a field to a campaign. - [POST /campaigns](https://docs.developers.optimizely.com/content-marketing-platform/reference/createcampaign.md): Experimental Create a campaign - [GET /campaigns/{id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/getcampaign.md): Get a campaign - [GET /campaigns/{id}/brief](https://docs.developers.optimizely.com/content-marketing-platform/reference/getcampaignbrief.md): Get brief of the campaign - [GET campaigns/{id}/fields](https://docs.developers.optimizely.com/content-marketing-platform/reference/listcampaignfields.md): Experimental Get the list of fields of a campaign. - [GET /campaigns](https://docs.developers.optimizely.com/content-marketing-platform/reference/listcampaigns.md): Experimental Get a list of campaigns. - [PATCH /campaigns/{id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/updatecampaign.md): Experimental Update a campaign - [PUT /campaigns/{campaign_id}/fields/{field_id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/updatecampaignfield.md): Experimental Update the field value of a campaign. - [POST /tasks/{task_id}/publishing-intents](https://docs.developers.optimizely.com/content-marketing-platform/reference/createtaskpublishingintent.md): Experimental Create a publishing intent for a task on the specified publishing channel. - [GET /publishing-channels](https://docs.developers.optimizely.com/content-marketing-platform/reference/listpublishingchannels.md): Experimental Get the list of publishing channels available in the organization. Use this to populate a channel picker before creating a publishing intent for a task. - [POST /v3/publishing-events/{publishing_event_id}/publishing-metadata](https://docs.developers.optimizely.com/content-marketing-platform/reference/bulkcreatepublishingeventmetadata.md): Create asset metadata in bulk. - [GET /v3/publishing-events/{publishing_event_id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/getpublishingevent.md): Get the publishing event by ID - [GET v3/publishing-events/{publishing_event_id}/assets/{asset_id}/publishing-metadata/{publishing_metadata_id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/getpublishingeventassetmetadata.md): Get publishing metadata. - [GET /v3/publishing-events/{publishing_event_id}/publishing-metadata](https://docs.developers.optimizely.com/content-marketing-platform/reference/listpublishingeventmetadata.md): Get the list of publishing metadata for each asset of a publishing event. - [GET /templates/{template_id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/gettemplate.md): Experimental Get a template by ID. - [GET /templates](https://docs.developers.optimizely.com/content-marketing-platform/reference/listtemplates.md): Experimental Get a list of templates. - [GET /users](https://docs.developers.optimizely.com/content-marketing-platform/reference/finduserbyemail.md): Find a user by email address - [GET /users/{id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/getuser.md): Get a user - [GET /userlist](https://docs.developers.optimizely.com/content-marketing-platform/reference/listusers.md): Get list of users. - [POST /work-requests](https://docs.developers.optimizely.com/content-marketing-platform/reference/createworkrequest.md): Experimental Create a work request. - [GET /work-requests](https://docs.developers.optimizely.com/content-marketing-platform/reference/listworkrequests.md): Experimental Get a list of work requests. - [GET /work-requests/{id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/getworkrequest.md): Experimental Get a work request by ID. - [PATCH /work-requests/{id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/updateworkrequest.md): Experimental Updates a work request. - [GET /work-requests/{id}/comments](https://docs.developers.optimizely.com/content-marketing-platform/reference/listworkrequestcomments.md): Experimental Get list of comments for a work request. - [POST /work-requests/{id}/comments](https://docs.developers.optimizely.com/content-marketing-platform/reference/addcommenttoworkrequest.md): Experimental Post a comment on a work request. - [GET /work-requests/{work_request_id}/comments/{comment_id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/getworkrequestcomment.md): Experimental Get a work request comment by ID. - [POST /work-requests/{id}/attachments](https://docs.developers.optimizely.com/content-marketing-platform/reference/addattachmenttoworkrequest.md): Experimental Create attachments for a work request. - [DELETE /work-requests/{work_request_id}/attachments/{attachment_id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/deleteworkrequestattachment.md): Experimental Delete a work request attachment. - [POST /work-requests/{id}/creative-assets](https://docs.developers.optimizely.com/content-marketing-platform/reference/createworkrequestcreativeasset.md): Experimental Create creative assets for a work request. - [DELETE /work-requests/{work_request_id}/creative-assets/{creative_asset_id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/deleteworkrequestcreativeasset.md): Experimental Delete a work request creative asset. - [GET /work-requests/{id}/approved-assets](https://docs.developers.optimizely.com/content-marketing-platform/reference/listworkrequestapprovedassets.md): Experimental Get a list of approved assets of a work request. - [POST /work-requests/{id}/campaigns](https://docs.developers.optimizely.com/content-marketing-platform/reference/createcampaignfromworkrequest.md): Experimental Create a new campaign from a work request. - [POST /work-requests/{id}/tasks](https://docs.developers.optimizely.com/content-marketing-platform/reference/createtaskfromworkrequest.md): Experimental Create a new task from a work request. - [GET /work-requests/{id}/related-resources](https://docs.developers.optimizely.com/content-marketing-platform/reference/listworkrequestrelatedresources.md): Experimental Get a list of work request related resources. - [PUT /work-requests/{work_request_id}/form-fields/{form_field_identifier}](https://docs.developers.optimizely.com/content-marketing-platform/reference/updateworkrequestformfield.md): Experimental Updates a work request form field. - [GET /content-graphs](https://docs.developers.optimizely.com/content-marketing-platform/reference/listcontentgraphs.md): Experimental Get the list of content graph instances provisioned for the organization. Use this to discover the `instance_id` of the instance to query, before running a query against it. An organization with no content graph instance of the requested type gets an empty `data` list rather than an error. - [POST /content-graphs/{cg_instance_id}/query](https://docs.developers.optimizely.com/content-marketing-platform/reference/querycontentgraph.md): Experimental Run a GraphQL query against a content graph instance. Get the `cg_instance_id` from `GET /content-graphs`. Use this to check whether a given asset has synced to the graph, by querying for its identifier and seeing whether the graph returns it. **Reading the response.** A `200` carries the graph's JSON payload (`data`, and `extensions` when present) passed through unchanged. If the graph rejects a well-formed query, the endpoint returns the graph's own `4xx` status with its GraphQL `errors` body (for example `429` when the graph rate-limits). A `502` means the content graph is unavailable or returned a server error, and a `504` means it could not be reached in time — both are transient, so retry. A `500` is a server-side failure on our end and, unlike `502`/`504`, will not be resolved by retrying. - [POST /structured-content/contents/{content_id}/versions/{version_id}/previews/{preview_id}/acknowledge](https://docs.developers.optimizely.com/content-marketing-platform/reference/acknowledgesccontentpreview.md): Experimental 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. - [POST /structured-content/contents/{content_id}/versions/{version_id}/previews/{preview_id}/complete](https://docs.developers.optimizely.com/content-marketing-platform/reference/completesccontentpreview.md): Experimental Complete content preview. - [POST /structured-content/content-types](https://docs.developers.optimizely.com/content-marketing-platform/reference/createsccontenttype.md): Experimental Create content type. - [POST /structured-content/content-types/{content_type_id}/managed-migrations](https://docs.developers.optimizely.com/content-marketing-platform/reference/createsccontenttypemanagedmigration.md): Experimental Create a new managed migration job. - [POST /structured-content/content-types/{content_type_id}/versions](https://docs.developers.optimizely.com/content-marketing-platform/reference/createsccontenttypeversion.md): Experimental Add Content Type Version. - [DELETE /structured-content/content-types/{content_type_id}/managed-migrations/{job_id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/deletesccontenttypemanagedmigration.md): Experimental Delete a managed migration job with not_started status. - [GET /structured-content/content-types/{content_type_id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/getsccontenttype.md): Experimental Get content type. - [GET /structured-content/content-types/{content_type_id}/managed-migrations/{job_id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/getsccontenttypemanagedmigration.md): Experimental Get details of a specific managed migration job. - [GET /structured-content/content-types/{content_type_id}/versions/{version_id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/getsccontenttypeversion.md): Experimental Get content type version. - [GET /structured-content/content-types/{content_type_id}/managed-migrations](https://docs.developers.optimizely.com/content-marketing-platform/reference/listsccontenttypemanagedmigrations.md): Experimental Retrieves a list of managed migration jobs for a specific content type. - [GET /structured-content/content-types](https://docs.developers.optimizely.com/content-marketing-platform/reference/listsccontenttypes.md): Experimental Get content types. - [GET /structured-content/content-types/{content_type_id}/versions](https://docs.developers.optimizely.com/content-marketing-platform/reference/listsccontenttypeversions.md): Experimental Get content type versions. - [POST /structured-content/contents/{content_id}/migration](https://docs.developers.optimizely.com/content-marketing-platform/reference/migratesccontent.md): Migrate content to a specific content type version. Experimental - [POST /structured-content/content-types/{content_type_id}/managed-migrations/{job_id}/start](https://docs.developers.optimizely.com/content-marketing-platform/reference/startsccontenttypemanagedmigration.md): Experimental Start managed migration job. - [POST /structured-content/content-types/{content_type_id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/updatesccontenttype.md): Experimental Update content type. - [PATCH /structured-content/content-types/{content_type_id}/managed-migrations/{job_id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/updatesccontenttypemanagedmigration.md): Experimental Update a managed migration job. - [POST /structured-content/content-types/{content_type_id}/managed-migrations/validate](https://docs.developers.optimizely.com/content-marketing-platform/reference/validatesccontenttypemanagedmigration.md): Experimental Check managed migration possible or not. - [POST /events](https://docs.developers.optimizely.com/content-marketing-platform/reference/createevent.md): Experimental Create an event. - [GET /events/{id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/getevent.md): Experimental Get an event. - [GET events/{id}/fields](https://docs.developers.optimizely.com/content-marketing-platform/reference/listeventfields.md): Experimental Get the list of fields of an event. - [GET /events](https://docs.developers.optimizely.com/content-marketing-platform/reference/listevents.md): Experimental Get a list of events. - [PATCH /events/{id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/updateevent.md): Experimental Update an event. - [PUT /events/{id}/fields](https://docs.developers.optimizely.com/content-marketing-platform/reference/updateeventfields.md): Experimental Replace existing fields of an event. - [POST /milestones](https://docs.developers.optimizely.com/content-marketing-platform/reference/createmilestone.md): Experimental Creates a milestone. Defaults to the organization's campaign if campaign_id is omitted. Tasks are validated against the selected campaign and must belong to it. - [GET /milestones/{id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/getmilestone.md): Experimental Get a milestone by ID. - [GET /milestones](https://docs.developers.optimizely.com/content-marketing-platform/reference/listmilestones.md): Experimental Get a list of milestones. - [PATCH /milestones/{id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/updatemilestone.md): Experimental Updates a milestone. All fields are optional. Only provided fields will be updated. Note: If tasks array is empty, it will remove all task associations for that milestone. - [GET /teams/{id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/getteam.md): Experimental Get a team. - [GET /teams](https://docs.developers.optimizely.com/content-marketing-platform/reference/listteams.md): Experimental Get a list of teams. - [GET /settings](https://docs.developers.optimizely.com/content-marketing-platform/reference/getsettings.md): Experimental Get settings. - [POST /settings](https://docs.developers.optimizely.com/content-marketing-platform/reference/updatesettings.md): Experimental Create or update settings. ## Import behavior: - Label: - If a label-group with the same name exists, the label-group is updated. - Labels are merged. - If a label with the same name exists, it is overwritten. - If no label-group with the same name exists, a new label-group is created. - Custom Fields: - If a custom field with the same name exists, the custom field is updated and its choices are merged. - If no custom field with the same name exists, a new custom field will be created. - Workflows: - If the query param overwrite_workflows=true the existing workflows are overwritten. Otherwise, a new workflow will be created where the prefix `Copy of` is added to the name of the workflow. - Webhooks: - If a webhook with the same name exists, the webhook is updated and its events are merged. - If multiple webhooks with the same name exist, a new webhook is created. - If no webhook with the same name exists, a new webhook is created. - Apps: - If an app with the same name exists, the app is updated and its authorization callback URLs are merged. - If multiple apps with the same name exist, a new app is created. - If no app with the same name exists, a new app is created. - Templates: - If a template with the same name exists, the template is updated. - If multiple templates with the same name exist, a new template is created. - If no template with the same name exists, a new template is created. - Routing Rules: - If one single routing rule with the same name exists, the routing rule is updated. - If multiple routing rules with the same name exist, a new routing rule is created. - If no routing rule with the same name exists, a new routing rule is created. - [GET /workflows/{workflow_id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/getworkflow.md): Experimental Get a workflow by ID. - [GET /workflows](https://docs.developers.optimizely.com/content-marketing-platform/reference/listworkflows.md): Experimental Get a list of workflows. - [PATCH /tasks/{task_id}/steps/{step_id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/updatetaskstep.md): Experimental Update a step in a task - [GET /asset-urls/{asset_id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/getasseturl.md): Find URL of an asset by ID - [POST /fields](https://docs.developers.optimizely.com/content-marketing-platform/reference/createfield.md): Experimental Add a new field to an Organization. - [POST /fields/{id}/choices](https://docs.developers.optimizely.com/content-marketing-platform/reference/createfieldchoices.md): Experimental Create choices in a field. - [DELETE /fields/{field_id}/choices/{choice_id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/deletefieldchoice.md): Experimental Delete a choice from a field. - [GET /fields](https://docs.developers.optimizely.com/content-marketing-platform/reference/listfields.md): Experimental Get the list of fields of an Organization. - [PATCH /fields/{id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/updatefield.md): Experimental Update a field in an Organization. - [PATCH /fields/{field_id}/choices/{choice_id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/updatefieldchoice.md): Experimental Update a choice of a field. - [Get started](https://docs.developers.optimizely.com/content-marketing-platform/reference/get-started.md): How to get started using webhooks in Optimizely Content Marketing Platform (CMP). - [Webhook event delivery](https://docs.developers.optimizely.com/content-marketing-platform/reference/event-delivery.md) - [Schemas](https://docs.developers.optimizely.com/content-marketing-platform/reference/schemas.md) - [Campaign](https://docs.developers.optimizely.com/content-marketing-platform/reference/campaign-events.md) - [External work management](https://docs.developers.optimizely.com/content-marketing-platform/reference/external-work-management-events.md) - [Library](https://docs.developers.optimizely.com/content-marketing-platform/reference/library-events.md) - [Publish](https://docs.developers.optimizely.com/content-marketing-platform/reference/publishing-events.md) - [Task](https://docs.developers.optimizely.com/content-marketing-platform/reference/task-events.md) - [Work request](https://docs.developers.optimizely.com/content-marketing-platform/reference/work-request-events.md) - [Event](https://docs.developers.optimizely.com/content-marketing-platform/reference/event-events.md) ## Changelog - [New endpoints](https://docs.developers.optimizely.com/content-marketing-platform/changelog/new-endpoints-2.md) - [API update](https://docs.developers.optimizely.com/content-marketing-platform/changelog/api-update-15.md) - [API update](https://docs.developers.optimizely.com/content-marketing-platform/changelog/api-update-16.md) - [API update](https://docs.developers.optimizely.com/content-marketing-platform/changelog/api-update-17.md) - [API update](https://docs.developers.optimizely.com/content-marketing-platform/changelog/api-update-14.md) - [API update](https://docs.developers.optimizely.com/content-marketing-platform/changelog/api-update-13.md) - [API update and bugfixes](https://docs.developers.optimizely.com/content-marketing-platform/changelog/api-update-12.md) - [New endpoint](https://docs.developers.optimizely.com/content-marketing-platform/changelog/new-endpoint-25.md) - [New endpoint](https://docs.developers.optimizely.com/content-marketing-platform/changelog/api-update-11.md) - [API update](https://docs.developers.optimizely.com/content-marketing-platform/changelog/api-update-10.md)