---
title: "POST /v1/autofills"
method: POST
path: "/v1/autofills"
tags: ["autofill"]
---

# POST /v1/autofills

`POST /v1/autofills`

WARNING: Brand templates were migrated to use a new ID format in September 2025. If your integration stores brand template IDs, you'll need to migrate to use the new IDs. Old brand template IDs will continue to be accepted for 6 months to give you time to migrate to the new IDs.

<Availability>
To use this API, your integration must act on behalf of a user who is a member of a [Canva Enterprise](https://www.canva.com/enterprise/) organization.

Users on Canva paid plans have access to a limited trial while your integration is under development. For more information, see [Trial quotas](https://www.canva.dev/docs/connect/api-requests-responses/#trial-quotas).
</Availability>

Starts a new [asynchronous job](https://www.canva.dev/docs/connect/api-requests-responses/#asynchronous-job-endpoints) to autofill a new Canva design using input data. Use the `type` field to choose the source of the design:

- `create_from_brand_template`: autofill a new design from a brand template. If `type` isn't specified in the request, the request type is assumed to be `create_from_brand_template`. To get a list of input data fields for a brand template, use the [Get brand template dataset API](https://www.canva.dev/docs/connect/api-reference/brand-templates/get-brand-template-dataset/).
- `create_from_design`: autofill a new design from an existing design that contains autofill data fields. To get the input data fields for an existing design, use the [Get design dataset
API](https://www.canva.dev/docs/connect/api-reference/designs/get-design-dataset/).

  WARNING: Creating an autofilled design from an existing design is a [preview feature](https://www.canva.dev/docs/connect/#preview-apis). There might be unannounced breaking changes to this feature which won't produce a new API version.

Data fields in brand templates or designs might change (for example, they might be renamed or removed). If you provide data for a field name that doesn't exist, it's silently skipped. Use the Get dataset APIs to confirm the current fields before creating an autofill job.

Available data field types to autofill include:

- Images (which you can autofill with an image or a video asset)
- Text
- Charts
- Sheets


WARNING: Chart and sheet data fields and autofilling a video are [preview features](https://www.canva.dev/docs/connect/#preview-apis). There might be unannounced breaking changes to these features which won't produce a new API version.

NOTE: For more information on the workflow for using asynchronous jobs, see [API requests and responses](https://www.canva.dev/docs/connect/api-requests-responses/#asynchronous-job-endpoints). You can check the status and get the results of autofill jobs created with this API using the [Get design autofill job API](https://www.canva.dev/docs/connect/api-reference/autofills/get-design-autofill-job/).

## Request body

- union — Body parameters for creating a new autofill job. Use the `type` discriminator to choose the autofill mode: - Use `create_from_brand_template` to create a new design from a brand template. NOTE: For backward compatibility, if `type` isn't specified in the request, the request type is assumed to be `create_from_brand_template`.
  - CreateFromBrandTemplateAutofillJobRequest — Create a new autofilled design from a brand template.
    - `type` 'create_from_brand_template', required — For backward compatibility, if `type` isn't specified in the request, the request type is assumed to be `create_from_brand_template`.
    - `brand_template_id` string, required — ID of the input brand template.
    - `title` string — Title to use for the autofilled design. If no design title is provided, the autofilled design will have the same title as the brand template.
    - `data` object, required — Data object containing the data fields and values to autofill.
  - CreateFromDesignAutofillJobRequest — Create a new autofilled design from an existing design that contains autofill data fields. WARNING: Creating an autofilled design from an existing design is a [preview feature](https://www.canva.dev/docs/connect/#preview-apis). There might be unannounced breaking changes to this feature which won't produce a new API version.
    - `type` 'create_from_design', required
    - `design_id` string, required — ID of the design to use as the autofill source.
    - `title` string — Title to use for the autofilled design. If no design title is provided, the autofilled design will have the same title as the source design.
    - `data` object, required — Data object containing the data fields and values to autofill.

## Response `200`

OK

- CreateDesignAutofillJobResponse
  - `job` DesignAutofillJob, required — Details about the autofill job.
    - `id` string, required — ID of the asynchronous job that is creating the design using the provided data.
    - `status` 'in_progress' | 'success' | 'failed', required — Status of the design autofill job.
    - `result` DesignAutofillJobResult — A new autofilled design has been created and saved to the user's root folder.
      - `type` 'create_design', required
      - `design` DesignSummary, required — Basic details about the design, such as the design's ID, title, and URL.
        - `id` string, required — The design ID.
        - `title` string — The design title.
        - `url` string — URL of the design.
        - `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).
      - `trial_information` AutofillTrialInformation — WARNING: Trials and trial information are a [preview feature](https://www.canva.dev/docs/connect/#preview-apis). There might be unannounced breaking changes to this feature which won't produce a new API version. Trial information for non-enterprise users. Non-enterprise users have a limited number of autofill uses. Once the trial is exhausted, users must upgrade to [Canva Enterprise](https://www.canva.com/enterprise/) to continue using the Autofill API.
        - `uses_remaining` integer, required — The number of uses remaining in the free trial.
        - `upgrade_url` string, required — The URL for a user to upgrade their Canva account to Canva Enterprise.
    - `error` AutofillError — If the autofill job fails, this object provides details about the error.
      - `code` 'autofill_error' | 'thumbnail_generation_error' | 'create_design_error' | 'design_approval_error' | 'trial_quota_exceeded' | 'design_update_error', required
      - `message` string, required — A human-readable description of what went wrong.

## 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)
