Canva Resizes API

Resize designs to different dimensions or preset types

Documentation

📖
Documentation
https://www.canva.com/developers/docs/connect-api/
📖
Authentication
https://www.canva.com/developers/docs/connect-api/authentication/
📖
GettingStarted
https://www.canva.com/developers/docs/connect-api/get-started/
📖
APIReference
https://www.canva.com/developers/docs/connect-api/api-reference/
📖
Documentation
https://www.canva.dev/docs/connect/
📖
GettingStarted
https://www.canva.dev/docs/connect/quickstart/
📖
Authentication
https://www.canva.dev/docs/connect/authentication/
📖
Documentation
https://www.canva.dev/docs/connect/webhooks/
📖
RateLimits
https://www.canva.dev/docs/connect/api-requests-responses/
📖
Documentation
https://www.canva.dev/docs/connect/appendix/scopes/
📖
Documentation
https://www.canva.dev/docs/connect/canva-concepts/
📖
Documentation
https://www.canva.dev/docs/connect/autofill-guide/
📖
Documentation
https://www.canva.dev/docs/connect/creating-integrations/
📖
Documentation
https://www.postman.com/canva-developers/canva-developers/collection/oi7dfns/canva-connect-api
📖
APIReference
https://www.canva.dev/docs/connect/api-reference/brand-templates/
📖
APIReference
https://www.canva.dev/docs/connect/api-reference/designs/create-design/
📖
APIReference
https://www.canva.dev/docs/connect/api-reference/resizes/create-design-resize-job/
📖
APIReference
https://www.canva.dev/docs/connect/api-reference/users/users-me/
📖
APIReference
https://www.canva.dev/docs/connect/api-reference/assets/get-asset/
📖
APIReference
https://www.canva.dev/docs/connect/api-reference/folders/get-folder/
📖
APIReference
https://www.canva.dev/docs/connect/api-reference/autofills/create-design-autofill-job/
📖
Documentation
https://www.canva.dev/docs/connect/mcp-server/

Specifications

SDKs

Schemas & Data

Other Resources

OpenAPI Specification

canva-resizes-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Canva Connect Assets Resizes API
  description: The Canva Connect API enables developers to integrate Canva's design platform into their applications. It provides programmatic access to create and manage designs, upload and manage assets, organize content in folders, export designs in multiple formats, manage comments, work with brand templates, autofill designs, and resize designs.
  version: 1.0.0
  contact:
    name: Canva Developers
    url: https://www.canva.dev/docs/connect/
    email: developers@canva.com
  license:
    name: Canva Developer Terms
    url: https://www.canva.com/policies/canva-developer-terms/
  termsOfService: https://www.canva.com/policies/terms-of-use/
servers:
- url: https://api.canva.com/rest/v1
  description: Canva Production API
security:
- oauth2: []
tags:
- name: Resizes
  description: Resize designs to different dimensions or preset types
paths:
  /resizes:
    post:
      operationId: createDesignResizeJob
      summary: Canva Create a Design Resize Job
      description: Creates an asynchronous job to resize a design to different dimensions or a preset type (doc, whiteboard, or presentation). The resize creates a new design without modifying the original.
      tags:
      - Resizes
      security:
      - oauth2:
        - design:content:read
        - design:content:write
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateResizeJobRequest'
            examples:
              CreatedesignresizejobRequestExample:
                summary: Default createDesignResizeJob request
                x-microcks-default: true
                value:
                  design_id: '500123'
                  design_type: {}
      responses:
        '200':
          description: The resize job
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResizeJobResponse'
              examples:
                Createdesignresizejob200Example:
                  summary: Default createDesignResizeJob 200 response
                  x-microcks-default: true
                  value:
                    job:
                      id: abc123
                      status: in_progress
                      result: {}
                      error:
                        code: example_value
                        message: example_value
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /resizes/{jobId}:
    get:
      operationId: getDesignResizeJob
      summary: Canva Get a Design Resize Job
      description: Retrieves the status and results of a design resize job. When successful, includes the newly created design metadata.
      tags:
      - Resizes
      security:
      - oauth2:
        - design:content:read
      parameters:
      - $ref: '#/components/parameters/JobId'
      responses:
        '200':
          description: The resize job status and results
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResizeJobResponse'
              examples:
                Getdesignresizejob200Example:
                  summary: Default getDesignResizeJob 200 response
                  x-microcks-default: true
                  value:
                    job:
                      id: abc123
                      status: in_progress
                      result: {}
                      error:
                        code: example_value
                        message: example_value
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  responses:
    Forbidden:
      description: Forbidden - insufficient permissions or scopes
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    TooManyRequests:
      description: Too many requests - rate limit exceeded
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Unauthorized - missing or invalid authentication
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    BadRequest:
      description: Bad request - invalid parameters or request body
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: Not found - the requested resource does not exist
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    ResizeJob:
      type: object
      description: A resize job for creating a resized copy of a design
      properties:
        id:
          type: string
          description: The resize job ID
          example: abc123
        status:
          type: string
          description: The current status of the resize job
          enum:
          - in_progress
          - success
          - failed
          example: in_progress
        result:
          type: object
          description: The resize result (present when status is success)
          properties:
            design:
              $ref: '#/components/schemas/Design'
          example: example_value
        error:
          type: object
          description: Error details (present when status is failed)
          properties:
            code:
              type: string
              description: Error code
            message:
              type: string
              description: Human-readable error message
          required:
          - code
          - message
          example: example_value
      required:
      - id
      - status
    ResizeJobResponse:
      type: object
      properties:
        job:
          $ref: '#/components/schemas/ResizeJob'
      required:
      - job
    Design:
      type: object
      description: A Canva design
      properties:
        id:
          type: string
          description: The design ID
          example: abc123
        title:
          type: string
          description: The design title
          example: Example Title
        owner:
          $ref: '#/components/schemas/Owner'
        urls:
          $ref: '#/components/schemas/DesignUrls'
        created_at:
          type: integer
          description: Unix timestamp in seconds when the design was created
          example: '2026-01-15T10:30:00Z'
        updated_at:
          type: integer
          description: Unix timestamp in seconds when the design was last updated
          example: '2026-01-15T10:30:00Z'
        thumbnail:
          $ref: '#/components/schemas/Thumbnail'
        page_count:
          type: integer
          description: The number of pages in the design
          example: 10
      required:
      - id
      - title
      - owner
      - urls
      - created_at
      - updated_at
    DesignUrls:
      type: object
      description: Temporary URLs for accessing a design (expire after 30 days)
      properties:
        edit_url:
          type: string
          format: uri
          description: URL to edit the design (expires in 30 days)
          example: https://www.example.com
        view_url:
          type: string
          format: uri
          description: URL to view the design (expires in 30 days)
          example: https://www.example.com
      required:
      - edit_url
      - view_url
    DesignType:
      oneOf:
      - $ref: '#/components/schemas/PresetDesignType'
      - $ref: '#/components/schemas/CustomDesignType'
      description: The type and dimensions for a new design
    CustomDesignType:
      type: object
      description: A custom design type with specific dimensions
      properties:
        type:
          type: string
          enum:
          - custom
          example: custom
        width:
          type: integer
          description: Width in pixels (40-8000)
          minimum: 40
          maximum: 8000
          example: 10
        height:
          type: integer
          description: Height in pixels (40-8000)
          minimum: 40
          maximum: 8000
          example: 10
      required:
      - type
      - width
      - height
    CreateResizeJobRequest:
      type: object
      description: Request body for creating a design resize job
      properties:
        design_id:
          type: string
          description: The design ID to resize
          example: '500123'
        design_type:
          $ref: '#/components/schemas/DesignType'
      required:
      - design_id
      - design_type
    Owner:
      type: object
      description: The owner of a resource
      properties:
        user_id:
          type: string
          description: The user ID of the owner
          example: '500123'
        team_id:
          type: string
          description: The team ID of the owner
          example: '500123'
      required:
      - user_id
      - team_id
    PresetDesignType:
      type: object
      description: A preset design type
      properties:
        type:
          type: string
          enum:
          - preset
          example: preset
        name:
          type: string
          description: The preset design type name
          enum:
          - doc
          - whiteboard
          - presentation
          example: doc
      required:
      - type
      - name
    Error:
      type: object
      description: An error response
      properties:
        code:
          type: string
          description: Machine-readable error code
          example: example_value
        message:
          type: string
          description: Human-readable error message
          example: example_value
      required:
      - code
      - message
    Thumbnail:
      type: object
      description: A thumbnail image for a resource (URL expires in 15 minutes)
      properties:
        width:
          type: integer
          description: Thumbnail width in pixels
          example: 10
        height:
          type: integer
          description: Thumbnail height in pixels
          example: 10
        url:
          type: string
          format: uri
          description: Thumbnail URL (expires in 15 minutes)
          example: https://www.example.com
      required:
      - width
      - height
      - url
  parameters:
    JobId:
      name: jobId
      in: path
      required: true
      description: The job ID
      schema:
        type: string
  securitySchemes:
    oauth2:
      type: oauth2
      description: Canva uses OAuth 2.0 with authorization code flow. Access tokens must be included in the Authorization header as a Bearer token.
      flows:
        authorizationCode:
          authorizationUrl: https://www.canva.com/api/oauth/authorize
          tokenUrl: https://api.canva.com/rest/v1/oauth/token
          scopes:
            design:meta:read: Read design metadata
            design:content:read: Read design content
            design:content:write: Create and modify designs
            asset:read: Read asset metadata
            asset:write: Upload and delete assets
            folder:read: Read folder metadata and contents
            folder:write: Modify folder contents
            comment:read: Read comments on designs
            comment:write: Create and manage comments
            brandtemplate:meta:read: Read brand template metadata
            brandtemplate:content:read: Read brand template content and datasets
externalDocs:
  description: Canva Connect API Documentation
  url: https://www.canva.dev/docs/connect/