Canva Autofill API

The autofill API from Canva — 2 operation(s) for autofill.

Operations 2

POST /v1/autofills #
GET /v1/autofills/{jobId} #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/canva-autofill-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

canva-autofill-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  contact:
    name: Canva Developer Community
    url: https://community.canva.dev/
  description: API for building integrations with Canva via a REST api
  license:
    name: ©2023 All Rights Reserved
  termsOfService: https://www.canva.com/trust/legal/
  title: Canva Connect Autofill API
  version: 2024-06-18
servers:
- description: Canva Connect API
  url: https://api.canva.com/rest
tags:
- name: autofill
paths:
  /v1/autofills:
    post:
      description: "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.\n\n<Availability>\nTo 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.\n\nUsers 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).\n</Availability>\n\nStarts a new [asynchronous job](https://www.canva.dev/docs/connect/api-requests-responses/#asynchronous-job-endpoints) to autofill a Canva design using input data. Use the `type` field to choose the source of the design:\n\n- `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/).\n- `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\nAPI](https://www.canva.dev/docs/connect/api-reference/designs/get-design-dataset/).\n\n  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.\n- `update_design`: autofill an existing design in place, rather than creating a new design. To get the input data fields for the design, use the [Get design dataset API](https://www.canva.dev/docs/connect/api-reference/designs/get-design-dataset/).\n\n  WARNING: Autofilling an existing design in place 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.\n\nData 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.\n\nAvailable data field types to autofill include:\n\n- Images (which you can autofill with an image or a video asset)\n- Text\n- Charts\n- Sheets\n\n\nWARNING: 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.\n\nNOTE: 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/)."
      operationId: createDesignAutofillJob
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateDesignAutofillJobRequest'
      responses:
        '200':
          content:
            application/json:
              examples:
                in_progress:
                  $ref: '#/components/examples/InProgressAutofillJobExample'
                success:
                  $ref: '#/components/examples/SuccessAutofillJobExample'
                failed:
                  $ref: '#/components/examples/FailedAutofillJobExample'
              schema:
                $ref: '#/components/schemas/CreateDesignAutofillJobResponse'
          description: OK
        '400':
          content:
            application/json:
              examples:
                design_title_invalid:
                  $ref: '#/components/examples/DesignTitleInvalidError'
                chart_data_processing_unsupported:
                  $ref: '#/components/examples/ChartDataProcessingUnsupportedError'
                invalid_brand_template_id:
                  $ref: '#/components/examples/InvalidBrandTemplateIdError'
                design_not_fillable:
                  $ref: '#/components/examples/DesignNotFillableError'
                autofill_data_invalid:
                  $ref: '#/components/examples/AutofillDataInvalidError'
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request
        '403':
          content:
            application/json:
              examples:
                brand_template_forbidden:
                  $ref: '#/components/examples/BrandTemplateForbiddenError'
                autofill_design_forbidden:
                  $ref: '#/components/examples/AutofillDesignForbiddenError'
                autofill_feature_forbidden:
                  $ref: '#/components/examples/AutofillFeatureForbiddenError'
              schema:
                $ref: '#/components/schemas/Error'
          description: Forbidden
        '404':
          content:
            application/json:
              examples:
                brand_template_not_found:
                  $ref: '#/components/examples/BrandTemplateNotFoundError'
                autofill_design_not_found:
                  $ref: '#/components/examples/AutofillDesignNotFoundError'
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found
        '429':
          content:
            application/json:
              examples:
                autofill_feature_quota_exceeded:
                  $ref: '#/components/examples/AutofillFeatureQuotaExceededError'
              schema:
                $ref: '#/components/schemas/FeatureQuotaExceededError'
          description: Too Many Requests
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Error Response
      security:
      - oauthAuthCode:
        - design:content:write
      tags:
      - autofill
      x-rate-limit-per-client-user: 60
  /v1/autofills/{jobId}:
    get:
      description: '<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>


        Get the result of a design autofill job that was created using the [Create design autofill job

        API](https://www.canva.dev/docs/connect/api-reference/autofills/create-design-autofill-job/).


        You might need to make multiple requests to this endpoint until you get a `success` or `failed` status. 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).'
      operationId: getDesignAutofillJob
      parameters:
      - description: The design autofill job ID.
        explode: false
        in: path
        name: jobId
        required: true
        schema:
          pattern: ^[a-zA-Z0-9_-]{1,50}$
          type: string
        style: simple
      responses:
        '200':
          content:
            application/json:
              examples:
                in_progress:
                  $ref: '#/components/examples/InProgressAutofillJobExample'
                success:
                  $ref: '#/components/examples/SuccessAutofillJobExample'
                failed:
                  $ref: '#/components/examples/FailedAutofillJobExample'
              schema:
                $ref: '#/components/schemas/GetDesignAutofillJobResponse'
          description: OK
        '404':
          content:
            application/json:
              examples:
                design_autofill_job_not_found:
                  $ref: '#/components/examples/DesignAutofillJobNotFoundError'
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found
        '403':
          content:
            application/json:
              examples:
                design_autofill_job_forbidden:
                  $ref: '#/components/examples/DesignAutofillJobForbiddenError'
              schema:
                $ref: '#/components/schemas/Error'
          description: Forbidden
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Error Response
      security:
      - oauthAuthCode:
        - design:meta:read
      tags:
      - autofill
      x-rate-limit-per-client-user: 120
components:
  schemas:
    AutofillError:
      description: If the autofill job fails, this object provides details about the error.
      properties:
        code:
          $ref: '#/components/schemas/AutofillErrorCode'
        message:
          description: A human-readable description of what went wrong.
          type: string
      required:
      - code
      - message
      type: object
    DataTable:
      description: 'Tabular data, structured in rows of cells.


        - Each cell must have a data type configured.

        - All rows must have the same number of cells.

        - The number of entries in `column_configs` must match the number of columns in the data.


        WARNING: Chart and sheet data fields 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.'
      example:
        column_configs:
        - name: Geographic Region
          type: string
        - name: Sales (millions AUD)
          type: number
        - name: Target (millions AUD)
          type: number
        - name: Target met?
          type: boolean
        - name: Date met
          type: date
        - name: Logo
          type: media
        rows:
        - cells:
          - type: string
            value: Asia Pacific
          - type: number
            value: 10.2
            metadata:
              formatting: '#,##0.0'
          - type: number
            value: 10
            metadata:
              formatting: '#,##0.0'
          - type: boolean
            value: true
          - type: date
            value: 1721944387
          - type: media
            value:
            - type: image_upload
              url: https://example.com/apac-logo.png
              thumbnail_url: https://example.com/apac-logo-thumb.png
              mime_type: image/png
              ai_disclosure: none
            - type: video_upload
              url: https://example.com/apac-logo.mp4
              thumbnail_image_url: https://example.com/apac-logo-thumb.png
              thumbnail_video_url: https://example.com/apac-logo-thumb.mp4
              mime_type: video/mp4
              ai_disclosure: none
        - cells:
          - type: string
            value: EMEA
          - type: number
            value: 13.8
            metadata:
              formatting: '#,##0.0'
          - type: number
            value: 14
            metadata:
              formatting: '#,##0.0'
          - type: boolean
            value: false
          - type: date
          - type: media
            value: []
      properties:
        column_configs:
          description: Column definitions with names and data types.
          items:
            $ref: '#/components/schemas/ColumnConfig'
          type: array
        rows:
          description: Rows of data.
          items:
            $ref: '#/components/schemas/DataTableRow'
          type: array
      required:
      - rows
      type: object
    DatasetImageValue:
      description: If the data field is an image field.
      properties:
        type:
          enum:
          - image
          type: string
        asset_id:
          description: '`asset_id` of the image to insert into the template element.'
          example: Msd59349ff
          type: string
      required:
      - asset_id
      - type
      type: object
    FeatureQuotaExceededError:
      allOf:
      - $ref: '#/components/schemas/Error'
      - properties:
          upsell_url:
            description: URL to redirect users to upgrade their Canva account and reset their quota.
            type: string
        required:
        - upsell_url
        type: object
      description: Feature quota exceeded
    DesignAutofillStatus:
      description: Status of the design autofill job.
      enum:
      - in_progress
      - success
      - failed
      example: success
      type: string
    CreateDesignAutofillJobRequest:
      description: '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`.'
      discriminator:
        mapping:
          create_from_brand_template: '#/components/schemas/CreateFromBrandTemplateAutofillJobRequest'
          create_from_design: '#/components/schemas/CreateFromDesignAutofillJobRequest'
          update_design: '#/components/schemas/UpdateDesignAutofillJobRequest'
        propertyName: type
      oneOf:
      - $ref: '#/components/schemas/CreateFromBrandTemplateAutofillJobRequest'
      - $ref: '#/components/schemas/CreateFromDesignAutofillJobRequest'
      - $ref: '#/components/schemas/UpdateDesignAutofillJobRequest'
    DataTableRow:
      description: A single row of tabular data.
      properties:
        cells:
          description: 'Cells of data in row.


            All rows must have the same number of cells.'
          items:
            $ref: '#/components/schemas/DataTableCell'
          type: array
      required:
      - cells
      type: object
    DatasetVideoValue:
      description: 'If autofilling a video into an image data field.


        WARNING: Autofilling a video 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.'
      properties:
        type:
          enum:
          - video
          type: string
        asset_id:
          description: '`asset_id` of the video to insert into the template element.'
          example: VAHCkrNUANI
          pattern: ^[a-zA-Z0-9_-]{1,50}$
          type: string
      required:
      - asset_id
      - type
      type: object
    DataTableImageMimeType:
      description: The MIME type of an image file that's supported by Canva's backend.
      enum:
      - image/jpeg
      - image/heic
      - image/png
      - image/svg+xml
      - image/webp
      - image/tiff
      type: string
    UpdateDesignAutofillJobRequest:
      description: 'Autofill an existing design in place with the provided data.


        WARNING: Autofilling an existing design in place 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.'
      properties:
        type:
          enum:
          - update_design
          type: string
        design_id:
          description: ID of the design to autofill in place.
          example: DAFVztcvd9z
          pattern: ^[a-zA-Z0-9_-]{1,50}$
          type: string
        data:
          additionalProperties:
            $ref: '#/components/schemas/DatasetValue'
          description: Data object containing the data fields and values to autofill.
          example:
            cute_pet_image_of_the_day:
              type: image
              asset_id: Msd59349ff
            cute_pet_video_of_the_day:
              type: video
              asset_id: VAHCkrNUANI
            cute_pet_witty_pet_says:
              type: text
              text: It was like this when I got here!
            cute_pet_sales_chart:
              type: chart
              chart_data:
                column_configs:
                - name: Geographic Region
                  type: string
                - name: Sales (millions AUD)
                  type: number
                - name: Target (millions AUD)
                  type: number
                - name: Target met?
                  type: boolean
                - name: Date met
                  type: date
                rows:
                - cells:
                  - type: string
                    value: Asia Pacific
                  - type: number
                    value: 10.2
                  - type: number
                    value: 10
                  - type: boolean
                    value: true
                  - type: date
                    value: 1721944387
                - cells:
                  - type: string
                    value: EMEA
                  - type: number
                    value: 13.8
                  - type: number
                    value: 14
                  - type: boolean
                    value: false
                  - type: date
            cute_pet_sales_sheet:
              type: sheet
              sheet_data:
                column_configs:
                - name: Geographic Region
                  type: string
                - name: Sales (millions AUD)
                  type: number
                - name: Target (millions AUD)
                  type: number
                - name: Target met?
                  type: boolean
                - name: Date met
                  type: date
                rows:
                - cells:
                  - type: string
                    value: Asia Pacific
                  - type: number
                    value: 10.2
                  - type: number
                    value: 10
                  - type: boolean
                    value: true
                  - type: date
                    value: 1721944387
                - cells:
                  - type: string
                    value: EMEA
                  - type: number
                    value: 13.8
                  - type: number
                    value: 14
                  - type: boolean
                    value: false
                  - type: date
          type: object
      required:
      - data
      - design_id
      - type
      type: object
    DesignLinks:
      description: A temporary set of URLs for viewing or editing the design.
      properties:
        edit_url:
          description: '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.'
          example: https://www.canva.com/api/design/eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIiwiZXhwaXJ5IjoxNzQyMDk5NDAzMDc5fQ..GKLx2hrJa3wSSDKQ.hk3HA59qJyxehR-ejzt2DThBW0cbRdMBz7Fb5uCpwD-4o485pCf4kcXt_ypUYX0qMHVeZ131YvfwGPIhbk-C245D8c12IIJSDbZUZTS7WiCOJZQ.sNz3mPSQxsETBvl_-upMYA/edit
          type: string
        view_url:
          description: '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.

            '
          example: https://www.canva.com/api/design/eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIiwiZXhwaXJ5IjoxNzQyMDk5NDAzMDc5fQ..GKLx2hrJa3wSSDKQ.hk3HA59qJyxehR-ejzt2DThBW0cbRdMBz7Fb5uCpwD-4o485pCf4kcXt_ypUYX0qMHVeZ131YvfwGPIhbk-C245D8c12IIJSDbZUZTS7WiCOJZQ.sNz3mPSQxsETBvl_-upMYA/view
          type: string
      required:
      - edit_url
      - view_url
      type: object
    DataTableCell:
      description: A single tabular data cell.
      discriminator:
        mapping:
          string: '#/components/schemas/StringDataTableCell'
          number: '#/components/schemas/NumberDataTableCell'
          boolean: '#/components/schemas/BooleanDataTableCell'
          date: '#/components/schemas/DateDataTableCell'
          media: '#/components/schemas/MediaCollectionDataTableCell'
        propertyName: type
      oneOf:
      - $ref: '#/components/schemas/StringDataTableCell'
      - $ref: '#/components/schemas/NumberDataTableCell'
      - $ref: '#/components/schemas/BooleanDataTableCell'
      - $ref: '#/components/schemas/DateDataTableCell'
      - $ref: '#/components/schemas/MediaCollectionDataTableCell'
      type: object
    DatasetTextValue:
      description: If the data field is a text field.
      properties:
        type:
          enum:
          - text
          type: string
        text:
          description: Text to insert into the template element.
          example: It was like this when I got here!
          type: string
      required:
      - text
      - type
      type: object
    DatasetSheetValue:
      description: 'If the data field is a sheet element.


        Note the following behavior:

        - `number` cells with formatting metadata are not currently supported for autofill and will result in an error response.

        - `media` cells are not supported for sheet autofill and will result in an error response.


        WARNING: Sheet element data fields 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.'
      properties:
        type:
          enum:
          - sheet
          type: string
        sheet_data:
          $ref: '#/components/schemas/DataTable'
      required:
      - sheet_data
      - type
      type: object
    Error:
      properties:
        code:
          $ref: '#/components/schemas/ErrorCode'
        message:
          description: A human-readable description of what went wrong.
          type: string
      required:
      - code
      - message
      type: object
    DataTableAiDisclosure:
      description: A disclosure identifying if the app generated this media asset using AI.
      enum:
      - app_generated
      - none
      type: string
      x-enum-descriptions:
      - App creates or significantly alters content using AI
      - No AI involvement in creation or alteration
    DataTableVideoMimeType:
      description: The MIME type of a video file that's supported by Canva's backend.
      enum:
      - video/avi
      - video/x-msvideo
      - image/gif
      - video/x-m4v
      - video/x-matroska
      - video/quicktime
      - video/mp4
      - video/mpeg
      - video/webm
      - application/json
      type: string
      x-enum-descriptions:
      - ''
      - ''
      - GIFs are treated as videos, not images.
      - ''
      - ''
      - ''
      - ''
      - ''
      - ''
      - Used for Lottie files.
    NumberCellMetadata:
      description: Formatting metadata for number cells.
      properties:
        formatting:
          description: 'Formatting pattern using Office Open XML Format.


            These patterns control how numbers are displayed to users, including currency symbols,

            decimal places, and separators.'
          type: string
      type: object
    ErrorCode:
      description: 'A short string indicating what failed. This field can be used to handle errors programmatically.

        '
      enum:
      - internal_error
      - invalid_field
      - invalid_header_value
      - permission_denied
      - too_many_requests
      - not_found
      - bad_request_body
      - bad_http_method
      - bad_request_params
      - bad_query_params
      - user_role_required
      - endpoint_not_found
      - endpoint_gone
      - unsupported_version
      - invalid_access_token
      - revoked_access_token
      - missing_field
      - missing_scope
      - invalid_grant
      - invalid_request
      - invalid_client
      - unauthorized_client
      - unsupported_grant_type
      - invalid_scope
      - invalid_basic_header
      - invalid_file_format
      - quota_exceeded
      - ai_credit_quota_exceeded
      - ai_credit_quota_cooldown
      - unsupported_content_type
      - request_too_large
      - folder_not_found
      - item_in_multiple_folders
      - asset_not_found
      - max_limit_reached
      - permission_not_found
      - permission_exists
      - unauthorized_user
      - user_not_found
      - user_not_eligible
      - group_not_found
      - app_not_found
      - app_has_non_draft_versions
      - invalid_status_transition
      - translation_validation_failed
      - content_not_found
      - doctype_not_found
      - design_not_found
      - offset_too_large
      - page_not_found
      - design_or_comment_not_found
      - design_or_thread_not_found
      - review_dismissed
      - design_type_not_found
      - team_not_found
      - team_is_default
      - comment_not_found
      - too_many_comments
      - too_many_replies
      - message_too_long
      - thread_not_found
      - reply_not_found
      - design_not_fillable
      - autofill_data_invalid
      - feature_not_available
      - unsupported_design_type
      - design_generation_not_enabled
      - license_required
      - input_unsafe
      - display_name_unavailable
      - user_not_managed
      - saml_team_id_conflict
      - saml_name_id_not_available
      - user_email_unverified
      - user_not_active
      - user_pending_consent
      - account_exists
      type: string
    DataTableImageUpload:
      description: Options for uploading an image asset.
      properties:
        type:
          enum:
          - image_upload
          type: string
        url:
          description: 'The URL of the image file to upload.

            This can be an external URL or a data URL.'
          type: string
        thumbnail_url:
          description: 'The URL of a thumbnail image to display while the image is queued for upload.

            This can be an external URL or a data URL.'
          type: string
        mime_type:
          $ref: '#/components/schemas/DataTableImageMimeType'
        width:
          description: The width of the image in pixels.
          format: int32
          type: integer
        height:
          description: The height of the image in pixels.
          format: int32
          type: integer
        ai_disclosure:
          $ref: '#/components/schemas/DataTableAiDisclosure'
      required:
      - ai_disclosure
      - mime_type
      - thumbnail_url
      - type
      - url
      type: object
    AutofillErrorCode:
      enum:
      - autofill_error
      - thumbnail_generation_error
      - create_design_error
      - design_approval_error
      - trial_quota_exceeded
      - design_update_error
      type: string
      x-enum-descriptions:
      - The service encountered an error when autofilling your brand template.
      - The service encountered an error when generating a thumbnail for the autofilled design.
      - The service encountered an error when saving the autofilled design.
      - The service encountered an error when applying design approval settings to the autofilled design.
      - The user has exceeded their autofill trial quota.
      - The service encountered an error when saving the updated design.
    GetDesignAutofillJobResponse:
      properties:
        job:
          $ref: '#/components/schemas/DesignAutofillJob'
      required:
      - job
      type: object
    DesignAutofillJob:
      description: Details about the autofill job.
      properties:
        id:
          description: ID of the asynchronous job that is creating the design using the provided data.
          example: 450a76e7-f96f-43ae-9c37-0e1ce492ac72
          type: string
        status:
          $ref: '#/components/schemas/DesignAutofillStatus'
        result:
          $ref: '#/components/schemas/DesignAutofillJobResult'
        error:
          $ref: '#/components/schemas/AutofillError'
      required:
      - id
      - status
      type: object
    DataTableVideoUpload:
      description: Options for uploading a video asset.
      properties:
        type:
          enum:
          - video_upload
          type: string
        url:
          description: The URL of the video file to upload.
          type: string
        thumbnail_image_url:
          description: 'The URL of a thumbnail image to use as a fallback if thumbnailVideoUrl isn''t provided.

            This can be an external URL or a data URL.'
          type: string
        thumbnail_video_url:
          description: The URL of a thumbnail video to display while the video is queued for upload.
          type: string
        mime_type:
          $ref: '#/components/schemas/DataTableVideoMimeType'
        width:
          description: The width of the video in pixels.
          format: int32
          type: integer
        height:
          description: The height of the video in pixels.
          format: int32
          type: integer
        ai_disclosure:
          $ref: '#/components/schemas/DataTableAiDisclosure'
      required:
      - ai_disclosure
      - mime_type
      - thumbnail_image_url
      - type
      - url
      type: object
    DatasetChartValue:
      description: "If the data field is a chart.\n\nNote the following behavior:\n- If `column_configs` is not provided, the first row is assumed to contain column headers where applicable.\n- Chart autofill supports a maximum of 100 rows and 20 columns.\n- `number` cells with formatting metadata are not currently supported for autofill and will result in an error response.\n- `media` cells are not supported for chart autofill and will result in an error response.\n\n WARNING: Chart data fields 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."
      properties:
        type:
          enum:
          - chart
          type: string
        chart_data:
          $ref: '#/components/schemas/DataTable'
      required:
      - chart_data
      - type
      type: object
    CreateDesignAutofillJobResponse:
      properties:
        job:
          $ref: '#/components/schemas/DesignAutofillJob'
      required:
      - job
      type: object
    Thumbnail:
      description: A thumbnail image representing the object.
      properties:
        width:
          description: The width of the thumbnail image in pixels.
          example: 595
          format: int32
          type: integer
        height:
          description: The height of the thumbnail image in pixels.
          example: 335
          format: int32
          type: integer
        url:
          description: '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.'
          example: https://document-export.canva.com/Vczz9/zF9vzVtdADc/2/thumbnail/0001.png?<query-string>
          type: string
      required:
      - height
      - url
      - width
      type: object
    StringDataTableCell:
      description: A string tabular data cell.
      properties:
        type:
          enum:
          - string
          type: string
        value:
          maxLength: 10000
          type: string
      required:
      - type
      type: object
    CreateFromBrandT

# --- truncated at 32 KB (53 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/canva/refs/heads/main/openapi/canva-autofill-api-openapi.yml