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/