---
title: Import manifest
slug: cms-13/api/import-manifest
docTags: 
createdAt: 2026-08-28T15:24:16.532Z
---

{
  "id": "4JJQuLNlYT_4YU-X1ulBa",
  "type": "api-oas-v2",
  "data": {
    "method": "POST",
    "url": "/_cms/v1/manifest",
    "servers": [
      {
        "url": "/_cms/v1/manifest",
        "description": "Optimizely CMS API"
      }
    ],
    "name": "Import manifest",
    "description": "Import a CMS content manifest.",
    "contentType": "application/json",
    "request": {
      "pathParameters": [],
      "headerParameters": [
        {
          "name": "accept",
          "type": "string",
          "kind": "optional",
          "description": "Generated from available response content types",
          "enum": [
            "application/json"
          ],
          "default": "application/json"
        },
        {
          "kind": "optional",
          "name": "cms-ignore-data-loss-warnings",
          "type": "boolean",
          "description": "Indicates if manifest resources should be updated even though the changes might result in data loss.",
          "default": false
        }
      ],
      "queryParameters": [],
      "bodyDataParameters": [
        {
          "kind": "required",
          "name": "body",
          "type": "object",
          "description": "The manifest that should be imported.",
          "customType": "Manifest",
          "schema": [
            {
              "name": "locales",
              "kind": "optional",
              "type": "array",
              "nullable": true,
              "description": "List of locales that are part of this manifest.",
              "modelRef": "#/components/schemas/Locale",
              "customType": "Locale[]",
              "schema": [
                {
                  "name": "key",
                  "kind": "required",
                  "type": "string",
                  "description": "<p>The unique identifier (key) of the resource. This is the IETF BCP-47 language tag (e.g., \"en\", \"en-US\", \"sv-SE\").</p>",
                  "minLength": 1
                },
                {
                  "name": "displayName",
                  "kind": "required",
                  "type": "string",
                  "description": "The display name of this locale.",
                  "minLength": 1,
                  "maxLength": 255
                },
                {
                  "name": "isEnabled",
                  "kind": "optional",
                  "type": "boolean",
                  "description": "Indicates whether this locale is enabled and can be used to create content."
                },
                {
                  "name": "routeSegment",
                  "kind": "required",
                  "type": "string",
                  "description": "A string that represents the segment that should be used when routing or generate routes to the current locale",
                  "minLength": 1,
                  "maxLength": 255
                },
                {
                  "name": "sortOrder",
                  "kind": "optional",
                  "type": "integer<int32>",
                  "description": "A value that is used when sorting locales.",
                  "format": "int32"
                },
                {
                  "name": "accessRights",
                  "kind": "optional",
                  "type": "array",
                  "nullable": true,
                  "description": "<p>The access rights assigned to this locale that defines who can create content in this locale. If no access rights are assigned, everyone will be able to create content in this locale. An empty array means that no user will be allowed to create or change content in this locale.</p>",
                  "modelRef": "#/components/schemas/SecurityIdentity",
                  "customType": "SecurityIdentity[]",
                  "schema": [
                    {
                      "name": "name",
                      "kind": "required",
                      "type": "string",
                      "description": "<p>The unique name of the user, role or application that this identifier references.</p>",
                      "minLength": 1,
                      "maxLength": 255
                    },
                    {
                      "name": "type",
                      "kind": "optional",
                      "type": "string<user | role | application>",
                      "description": "The type of the security entity that this identifier references. Will default to 'role' if not specified.",
                      "enum": [
                        "user",
                        "role",
                        "application"
                      ]
                    }
                  ]
                },
                {
                  "name": "created",
                  "kind": "optional",
                  "type": "string<date-time>",
                  "readOnly": true,
                  "description": "A timestamp indicating when this locale was first created.",
                  "format": "date-time"
                },
                {
                  "name": "createdBy",
                  "kind": "optional",
                  "type": "string",
                  "readOnly": true,
                  "description": "The username of the user that created this locale."
                },
                {
                  "name": "lastModified",
                  "kind": "optional",
                  "type": "string<date-time>",
                  "readOnly": true,
                  "description": "",
                  "format": "date-time"
                },
                {
                  "name": "lastModifiedBy",
                  "kind": "optional",
                  "type": "string",
                  "readOnly": true,
                  "description": "The username of the user that last modified this locale."
                }
              ]
            },
            {
              "name": "propertyGroups",
              "kind": "optional",
              "type": "array",
              "nullable": true,
              "description": "List of content type property groups that are part of this manifest.",
              "modelRef": "#/components/schemas/PropertyGroup",
              "customType": "PropertyGroup[]",
              "schema": [
                {
                  "name": "key",
                  "kind": "required",
                  "type": "string",
                  "description": "<p>The unique identifier (key) of the resource.</p>",
                  "minLength": 2,
                  "maxLength": 255,
                  "pattern": "^[A-Za-z][_0-9A-Za-z]+$"
                },
                {
                  "name": "displayName",
                  "kind": "required",
                  "type": "string",
                  "description": "The display name of this PropertyGroup.",
                  "minLength": 1,
                  "maxLength": 255
                },
                {
                  "name": "source",
                  "kind": "optional",
                  "type": "string",
                  "readOnly": true,
                  "description": "A string that indicates the source of this property group. Can be used to distinguish property groups created by the system from types coming from model classes deployed to the CMS server."
                },
                {
                  "name": "sortOrder",
                  "kind": "optional",
                  "type": "integer<int32>",
                  "description": "A value that is used to when sorting PropertyGroup instances.",
                  "format": "int32"
                },
                {
                  "name": "created",
                  "kind": "optional",
                  "type": "string<date-time>",
                  "readOnly": true,
                  "description": "A timestamp indicating when this property group was first created.",
                  "format": "date-time"
                },
                {
                  "name": "createdBy",
                  "kind": "optional",
                  "type": "string",
                  "readOnly": true,
                  "description": "The username of the user that created this property group."
                },
                {
                  "name": "lastModified",
                  "kind": "optional",
                  "type": "string<date-time>",
                  "readOnly": true,
                  "description": "",
                  "format": "date-time"
                },
                {
                  "name": "lastModifiedBy",
                  "kind": "optional",
                  "type": "string",
                  "readOnly": true,
                  "description": "The username of the user that last modified this property group."
                }
              ]
            },
            {
              "name": "contentTypes",
              "kind": "optional",
              "type": "array",
              "nullable": true,
              "description": "List of content types that are part of this manifest.",
              "modelRef": "#/components/schemas/ContentType",
              "customType": "ContentType[]",
              "schema": [
                {
                  "name": "key",
                  "kind": "optional",
                  "type": "string",
                  "description": "<p>The unique identifier (key) of the resource.</p>",
                  "minLength": 2,
                  "maxLength": 255,
                  "pattern": "^[A-Za-z][_0-9A-Za-z]+$"
                },
                {
                  "name": "displayName",
                  "kind": "required",
                  "type": "string",
                  "description": "The display name of this ContentType.",
                  "minLength": 1,
                  "maxLength": 255
                },
                {
                  "name": "description",
                  "kind": "optional",
                  "type": "string",
                  "description": "A description of this ContentType.",
                  "maxLength": 255
                },
                {
                  "name": "baseType",
                  "kind": "optional",
                  "type": "string",
                  "nullable": true,
                  "description": "<p>The base type of this ContentType. Ignored for contracts; required for all other content types.</p>"
                },
                {
                  "name": "isContract",
                  "kind": "optional",
                  "type": "boolean",
                  "description": "Specifies if the ContentType is a contract type."
                },
                {
                  "name": "source",
                  "kind": "optional",
                  "type": "string",
                  "readOnly": true,
                  "description": "A string that indicates the source of this content type. Can be used to distinguish content types created by the system from types coming from model classes in the CMS solution."
                },
                {
                  "name": "sortOrder",
                  "kind": "optional",
                  "type": "integer<int32>",
                  "description": "A value that is used to when sorting ContentType instances.",
                  "format": "int32"
                },
                {
                  "name": "mayContainTypes",
                  "kind": "optional",
                  "type": "array",
                  "description": "Provides a set of content types that can be created in containers of this type",
                  "example": "",
                  "itemType": "string",
                  "customType": "string[]",
                  "itemExample": "",
                  "itemDefault": ""
                },
                {
                  "name": "mediaFileExtensions",
                  "kind": "optional",
                  "type": "array",
                  "description": "Provides a set of media file extensions that this content type can handle.",
                  "example": "",
                  "itemType": "string",
                  "customType": "string[]",
                  "itemExample": "",
                  "itemDefault": ""
                },
                {
                  "name": "compositionBehaviors",
                  "kind": "optional",
                  "type": "array",
                  "description": "Provides a set of composition behaviors specifying how this content type can be used within compositions. Currently this can only be assigned when baseType is 'component'.",
                  "example": "",
                  "itemType": "string",
                  "customType": "string[]",
                  "itemExample": "",
                  "itemDefault": ""
                },
                {
                  "name": "contracts",
                  "kind": "optional",
                  "type": "array",
                  "description": "Provides a set of contract content types that this content type is bound to.",
                  "example": "",
                  "itemType": "string",
                  "customType": "string[]",
                  "itemExample": "",
                  "itemDefault": ""
                },
                {
                  "name": "created",
                  "kind": "optional",
                  "type": "string<date-time>",
                  "readOnly": true,
                  "description": "A timestamp indicating when this resource was first created.",
                  "format": "date-time"
                },
                {
                  "name": "createdBy",
                  "kind": "optional",
                  "type": "string",
                  "readOnly": true,
                  "description": "The name of the user or application that created this resource."
                },
                {
                  "name": "lastModified",
                  "kind": "optional",
                  "type": "string<date-time>",
                  "readOnly": true,
                  "description": "Indicates the last time this resource was modified.",
                  "format": "date-time"
                },
                {
                  "name": "lastModifiedBy",
                  "kind": "optional",
                  "type": "string",
                  "readOnly": true,
                  "description": "The name of the user or application that last modified this resource."
                },
                {
                  "name": "properties",
                  "kind": "optional",
                  "type": "map",
                  "description": "Dictionary with all custom properties of this ContentType.",
                  "example": "",
                  "customType": "map<string, ContentTypeProperty>",
                  "schema": []
                },
                {
                  "name": "accessRights",
                  "kind": "optional",
                  "type": "array",
                  "nullable": true,
                  "description": "<p>The access rights assigned to this content type that defines who can create content of this type. If no access rights are assigned, everyone will be able to create content of this type. An empty array means that no new content of this type can be created.</p>",
                  "modelRef": "#/components/schemas/SecurityIdentity",
                  "customType": "SecurityIdentity[]",
                  "schema": [
                    {
                      "name": "name",
                      "kind": "required",
                      "type": "string",
                      "description": "<p>The unique name of the user, role or application that this identifier references.</p>",
                      "minLength": 1,
                      "maxLength": 255
                    },
                    {
                      "name": "type",
                      "kind": "optional",
                      "type": "string<user | role | application>",
                      "description": "The type of the security entity that this identifier references. Will default to 'role' if not specified.",
                      "enum": [
                        "user",
                        "role",
                        "application"
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "name": "displayTemplates",
              "kind": "optional",
              "type": "array",
              "nullable": true,
              "description": "List of display templates that are part of this manifest.",
              "modelRef": "#/components/schemas/DisplayTemplate",
              "customType": "DisplayTemplate[]",
              "schema": [
                {
                  "name": "key",
                  "kind": "optional",
                  "type": "string",
                  "description": "<p>The unique identifier (key) of the resource.</p>",
                  "minLength": 2,
                  "maxLength": 255,
                  "pattern": "^[A-Za-z][_0-9A-Za-z]+$"
                },
                {
                  "name": "displayName",
                  "kind": "required",
                  "type": "string",
                  "description": "The display name of this display template.",
                  "minLength": 1,
                  "maxLength": 255
                },
                {
                  "name": "nodeType",
                  "kind": "optional",
                  "type": "string",
                  "description": "The optional node type this display template is valid for.",
                  "minLength": 2,
                  "maxLength": 50,
                  "pattern": "^[A-Za-z][_0-9A-Za-z]+$"
                },
                {
                  "name": "baseType",
                  "kind": "optional",
                  "type": "string",
                  "nullable": true,
                  "description": "The optional base type this display template is valid for."
                },
                {
                  "name": "contentType",
                  "kind": "optional",
                  "type": "string",
                  "description": "The optional key of the content type this display template is valid for."
                },
                {
                  "name": "isDefault",
                  "kind": "optional",
                  "type": "boolean",
                  "description": "<p>If this is the default display template for the associated base type, node type or content type.</p>"
                },
                {
                  "name": "created",
                  "kind": "optional",
                  "type": "string<date-time>",
                  "readOnly": true,
                  "description": "A timestamp indicating when this display template was first created.",
                  "format": "date-time"
                },
                {
                  "name": "createdBy",
                  "kind": "optional",
                  "type": "string",
                  "readOnly": true,
                  "description": "The username of the user that created this display template."
                },
                {
                  "name": "lastModified",
                  "kind": "optional",
                  "type": "string<date-time>",
                  "readOnly": true,
                  "description": "A timestamp indicating when this display template was last modified.",
                  "format": "date-time"
                },
                {
                  "name": "lastModifiedBy",
                  "kind": "optional",
                  "type": "string",
                  "readOnly": true,
                  "description": "The username of the user that last modified this display template."
                },
                {
                  "name": "settings",
                  "kind": "optional",
                  "type": "map",
                  "description": "The available settings for this display template.",
                  "example": "",
                  "customType": "map<string, DisplaySetting>",
                  "schema": []
                }
              ]
            },
            {
              "name": "lastModified",
              "kind": "optional",
              "type": "string<date-time>",
              "description": "A timestamp indicating the last time an item included in this manifest was modified.",
              "format": "date-time"
            }
          ],
          "modelRef": "#/components/schemas/Manifest",
          "isExpanded": true
        }
      ],
      "formDataParameters": [],
      "oAuthParameters": [
        {
          "id": "apiAuth",
          "name": "apiAuth",
          "kind": "optional",
          "type": "oauth2",
          "description": "Use this scheme to generate an access token that can be used to access the API.",
          "oauth2Flows": {
            "clientCredentials": {
              "tokenUrl": "/_cms/v1/oauth/token",
              "scopes": {
                "api:admin": "Grants full administrative access to the API"
              }
            }
          },
          "requiredScopes": [
            "api:admin"
          ]
        }
      ],
      "cookieParameters": []
    },
    "responses": [
      {
        "statusCode": "200",
        "description": "OK",
        "jsonExample": "",
        "isExpanded": true,
        "schema": [
          {
            "kind": "optional",
            "type": "object",
            "description": "The result of a manifest import operation.",
            "customType": "ManifestImportResult",
            "schema": [
              {
                "name": "outcomes",
                "kind": "optional",
                "type": "array",
                "readOnly": true,
                "description": "List of messages describing the outcome from the manifest import.",
                "modelRef": "#/components/schemas/ManifestImportMessage",
                "customType": "ManifestImportMessage[]",
                "schema": [
                  {
                    "name": "section",
                    "kind": "optional",
                    "type": "string",
                    "description": "The section where the message originated from."
                  },
                  {
                    "name": "message",
                    "kind": "optional",
                    "type": "string",
                    "description": "The message describing an outcome or error."
                  },
                  {
                    "name": "resource",
                    "kind": "optional",
                    "type": "string",
                    "nullable": true,
                    "description": "The identifier of the resource that was the reason for this message to be created."
                  }
                ]
              },
              {
                "name": "errors",
                "kind": "optional",
                "type": "array",
                "readOnly": true,
                "description": "List of error messages from the manifest import.",
                "modelRef": "#/components/schemas/ManifestImportMessage",
                "customType": "ManifestImportMessage[]",
                "schema": [
                  {
                    "name": "section",
                    "kind": "optional",
                    "type": "string",
                    "description": "The section where the message originated from."
                  },
                  {
                    "name": "message",
                    "kind": "optional",
                    "type": "string",
                    "description": "The message describing an outcome or error."
                  },
                  {
                    "name": "resource",
                    "kind": "optional",
                    "type": "string",
                    "nullable": true,
                    "description": "The identifier of the resource that was the reason for this message to be created."
                  }
                ]
              }
            ],
            "modelRef": "#/components/schemas/ManifestImportResult",
            "isExpanded": true
          }
        ]
      },
      {
        "statusCode": "202",
        "description": "Accepted",
        "jsonExample": "",
        "isExpanded": true
      },
      {
        "statusCode": "400",
        "description": "Bad Request",
        "jsonExample": "",
        "isExpanded": true
      },
      {
        "statusCode": "401",
        "description": "Unauthorized",
        "jsonExample": "",
        "isExpanded": true
      },
      {
        "statusCode": "403",
        "description": "Forbidden",
        "jsonExample": "",
        "isExpanded": true
      },
      {
        "statusCode": "409",
        "description": "Conflict",
        "jsonExample": "",
        "isExpanded": true
      },
      {
        "statusCode": "500",
        "description": "Internal Server Error",
        "jsonExample": "",
        "isExpanded": true
      }
    ],
    "hasXCodeSamples": false,
    "examples": {
      "languages": [
        {
          "id": "s-Cwu3a1-DVN1gjaYrKFp",
          "language": "curl",
          "label": "cURL",
          "code": "curl --request POST \\\n     --url /_cms/v1/manifest \\\n     --header 'accept: application/json' \\\n     --header 'content-type: application/json' \\\n     --data '{\n     \"locales\": [\n     {\n     \"key\": \"\",\n     \"displayName\": \"\",\n     \"routeSegment\": \"\",\n     \"accessRights\": [\n     {\n     \"name\": \"\"\n     }\n     ]\n     }\n     ],\n     \"propertyGroups\": [\n     {\n     \"key\": \"\",\n     \"displayName\": \"\"\n     }\n     ],\n     \"contentTypes\": [\n     {\n     \"displayName\": \"\",\n     \"accessRights\": [\n     {\n     \"name\": \"\"\n     }\n     ]\n     }\n     ],\n     \"displayTemplates\": [\n     {\n     \"displayName\": \"\"\n     }\n     ]\n     }'"
        },
        {
          "id": "j5YzzUTjyq_ZDBgvzzZ2B",
          "language": "javascript",
          "label": "javascript",
          "code": "var myHeaders = new Headers();\nmyHeaders.append(\"accept\", \"application/json\");\nmyHeaders.append(\"content-type\", \"application/json\");\n\nvar raw = JSON.stringify({\n   \"locales\": [\n      {\n         \"key\": \"\",\n         \"displayName\": \"\",\n         \"routeSegment\": \"\",\n         \"accessRights\": [\n            {\n               \"name\": \"\"\n            }\n         ]\n      }\n   ],\n   \"propertyGroups\": [\n      {\n         \"key\": \"\",\n         \"displayName\": \"\"\n      }\n   ],\n   \"contentTypes\": [\n      {\n         \"displayName\": \"\",\n         \"accessRights\": [\n            {\n               \"name\": \"\"\n            }\n         ]\n      }\n   ],\n   \"displayTemplates\": [\n      {\n         \"displayName\": \"\"\n      }\n   ]\n});\n\nvar requestOptions = {\n   method: 'POST',\n   headers: myHeaders,\n   body: raw,\n   redirect: 'follow'\n};\n\nfetch(\"/_cms/v1/manifest\", requestOptions)\n   .then(response => response.text())\n   .then(result => console.log(result))\n   .catch(error => console.log('error', error));"
        },
        {
          "id": "eVe-FRh4wCaTs_CaFaDsB",
          "language": "ruby",
          "label": "Ruby",
          "code": "require \"uri\"\nrequire \"json\"\nrequire \"net/http\"\n\nurl = URI(\"/_cms/v1/manifest\")\n\nhttp = Net::HTTP.new(url.host, url.port);\nrequest = Net::HTTP::Post.new(url)\nrequest[\"accept\"] = \"application/json\"\nrequest[\"content-type\"] = \"application/json\"\nrequest.body = JSON.dump({\n   \"locales\": [\n      {\n         \"key\": \"\",\n         \"displayName\": \"\",\n         \"routeSegment\": \"\",\n         \"accessRights\": [\n            {\n               \"name\": \"\"\n            }\n         ]\n      }\n   ],\n   \"propertyGroups\": [\n      {\n         \"key\": \"\",\n         \"displayName\": \"\"\n      }\n   ],\n   \"contentTypes\": [\n      {\n         \"displayName\": \"\",\n         \"accessRights\": [\n            {\n               \"name\": \"\"\n            }\n         ]\n      }\n   ],\n   \"displayTemplates\": [\n      {\n         \"displayName\": \"\"\n      }\n   ]\n})\n\nresponse = http.request(request)\nputs response.read_body\n"
        },
        {
          "id": "m5crDvu6-MwC-DnUyBkMl",
          "language": "python",
          "label": "Python",
          "code": "import requests\nimport json\n\nurl = \"/_cms/v1/manifest\"\n\npayload = json.dumps({\n   \"locales\": [\n      {\n         \"key\": \"\",\n         \"displayName\": \"\",\n         \"routeSegment\": \"\",\n         \"accessRights\": [\n            {\n               \"name\": \"\"\n            }\n         ]\n      }\n   ],\n   \"propertyGroups\": [\n      {\n         \"key\": \"\",\n         \"displayName\": \"\"\n      }\n   ],\n   \"contentTypes\": [\n      {\n         \"displayName\": \"\",\n         \"accessRights\": [\n            {\n               \"name\": \"\"\n            }\n         ]\n      }\n   ],\n   \"displayTemplates\": [\n      {\n         \"displayName\": \"\"\n      }\n   ]\n})\nheaders = {\n   'accept': 'application/json',\n   'content-type': 'application/json'\n}\n\nresponse = requests.request(\"POST\", url, headers=headers, data=payload)\n\nprint(response.text)\n"
        }
      ],
      "selectedLanguageId": "s-Cwu3a1-DVN1gjaYrKFp"
    },
    "results": {
      "languages": [
        {
          "id": "response-0-200",
          "language": "200",
          "code": "// OK\n{\n  \"outcomes\": [\n    {\n      \"section\": \"\",\n      \"message\": \"\",\n      \"resource\": \"\"\n    }\n  ],\n  \"errors\": [\n    {\n      \"section\": \"\",\n      \"message\": \"\",\n      \"resource\": \"\"\n    }\n  ]\n}"
        },
        {
          "id": "response-1-202",
          "language": "202",
          "code": "// Accepted\n"
        },
        {
          "id": "response-2-400",
          "language": "400",
          "code": "// Bad Request\n"
        },
        {
          "id": "response-3-401",
          "language": "401",
          "code": "// Unauthorized\n"
        },
        {
          "id": "response-4-403",
          "language": "403",
          "code": "// Forbidden\n"
        },
        {
          "id": "response-5-409",
          "language": "409",
          "code": "// Conflict\n"
        },
        {
          "id": "response-6-500",
          "language": "500",
          "code": "// Internal Server Error\n"
        }
      ],
      "selectedLanguageId": "response-0-200"
    }
  },
  "children": [
    {
      "text": ""
    }
  ]
}