---
title: "POST /v1/designs"
method: POST
path: "/v1/designs"
tags: ["design"]
---

# POST /v1/designs

`POST /v1/designs`

Creates a new Canva design. To create a new design, you can:

- Use a preset design type.
- Set height and width dimensions for a custom design.

  NOTE: Custom designs can have a maximum area of 25,000,000 pixels squared (for example, 5000 × 5000 pixels). Each dimension can be between 40 and 8000 pixels, but the total area must stay within this limit.
- Create a copy of an existing design (currently a [preview feature](https://www.canva.dev/docs/connect/#preview-apis)).
- Create a new design from a brand template (currently a [preview feature](https://www.canva.dev/docs/connect/#preview-apis)).

For preset and custom designs, you can also provide the `asset_id` of an asset in the user's [projects](https://www.canva.com/help/find-designs-and-folders/) to add to the new design. Currently, this only supports image assets. To list the assets in a folder in the user's projects, use the [List folder items API](https://www.canva.dev/docs/connect/api-reference/folders/list-folder-items/).

NOTE: Blank designs created with this API are automatically deleted if they're not edited within 7 days. These blank designs bypass the user's Canva trash and are permanently deleted.

## Request body

- union — Body parameters for creating a new design. Use the `type` discriminator to choose the creation mode: - Use `type_and_asset` to create a design by specifying the design type and/or an asset. - Use `design` to create a copy of an existing design (currently a [preview feature](https://www.canva.dev/docs/connect/#preview-apis)). - Use `brand_template` to create a design from a brand template (currently a [preview feature](https://www.canva.dev/docs/connect/#preview-apis)). NOTE: For backward compatibility, if `type` isn't specified in the request, the request type will be assumed to be `type_and_asset`.
  - object — Create a design by specifying the design type and/or an asset. At least one of `design_type` or `asset_id` must be defined.
    - `type` 'type_and_asset', required — For backward compatibility, if `type` isn't specified in the request, the request type will be assumed to be `type_and_asset`.
    - `design_type` union — The desired design type.
      - object — Provide the common design type.
        - `type` 'preset', required
        - `name` 'doc' | 'email' | 'presentation' | 'whiteboard', required — The name of the design type.
      - object — Provide the width and height to define a custom design type. Each dimension must be between 40 and 8000 pixels, and the total area (width × height) must not exceed 25,000,000 pixels squared. For example, a design with a width of 8000 pixels can have a maximum height of 3125 pixels.
        - `type` 'custom', required
        - `width` integer, required — The width of the design, in pixels.
        - `height` integer, required — The height of the design, in pixels.
    - `asset_id` string — The ID of an asset to insert into the created design. Currently, this only supports image assets.
    - `title` string — The name of the design.
  - object — <Warning> Creating a copy of an existing design is currently provided as a preview. Be aware of the following: - There might be unannounced breaking changes. - Any breaking changes to preview features won't produce a new [API version](https://www.canva.dev/docs/connect/versions/). - Public integrations that use preview features will not pass the review process, and can't be made available to all Canva users. </Warning> Body parameters for creating a copy of an existing design.
    - `type` 'design', required
    - `design_id` string, required — The ID of the design to copy.
    - `page_numbers` integer[] — The pages to copy from the source design. If not specified, all pages are copied. Pages are indexed using one-based numbering.
  - object — <Warning> Creating a copy from a brand template is currently provided as a preview. Be aware of the following: - There might be unannounced breaking changes. - Any breaking changes to preview features won't produce a new [API version](https://www.canva.dev/docs/connect/versions/). - Public integrations that use preview features will not pass the review process, and can't be made available to all Canva users. </Warning> Body parameters for creating a copy from a brand template.
    - `type` 'brand_template', required
    - `brand_template_id` string, required — The ID of the brand template used to create a design copy.
    - `page_numbers` integer[] — The pages to copy from the brand template. If not specified, all pages are copied. Pages are indexed using one-based numbering.

## Response `200`

OK

- CreateDesignResponse — Details about the new design.
  - `design` Design, required — The design object, which contains metadata about the design.
    - `id` string, required — The design ID.
    - `title` string — The design title.
    - `owner` TeamUserSummary, required — Metadata for the user, consisting of the User ID and Team ID.
      - `user_id` string, required — The ID of the user.
      - `team_id` string, required — The ID of the user's Canva Team.
    - `thumbnail` Thumbnail — A thumbnail image representing the object.
      - `width` integer, required — The width of the thumbnail image in pixels.
      - `height` integer, required — The height of the thumbnail image in pixels.
      - `url` string, required — A URL for retrieving the thumbnail image. This URL expires after 15 minutes. This URL includes a query string that's required for retrieving the thumbnail.
    - `urls` DesignLinks, required — A temporary set of URLs for viewing or editing the design.
      - `edit_url` string, required — A temporary editing URL for the design. This URL is only accessible to the user that made the API request, and is designed to support [return navigation](https://www.canva.dev/docs/connect/return-navigation-guide/) workflows. NOTE: This is not a permanent URL, it is only valid for 30 days.
      - `view_url` string, required — A temporary viewing URL for the design. This URL is only accessible to the user that made the API request, and is designed to support [return navigation](https://www.canva.dev/docs/connect/return-navigation-guide/) workflows. NOTE: This is not a permanent URL, it is only valid for 30 days.
    - `created_at` integer, required — When the design was created in Canva, as a Unix timestamp (in seconds since the Unix Epoch).
    - `updated_at` integer, required — When the design was last updated in Canva, as a Unix timestamp (in seconds since the Unix Epoch).
    - `page_count` integer — The total number of pages in the design. Some design types don't have pages (for example, Canva docs).
    - `design_types` DesignTypeOutputName[], required — The type of content a design or page contains. The list of design types may grow over time. The `unknown` value represents design types that haven't been added to the list.

## Other responses

- `400` — Bad Request
- `403` — Forbidden
- `404` — Not Found
- `429` — Too Many Requests
- `default` — Error Response

---

[API](https://skmtc.net/canva/apis/canva-connect-api.md) · [All operations](https://skmtc.net/canva/apis/canva-connect-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/canva/canva-connect-api/versions/499c392c7720/schema)
