Canva

Learn how to use Canva with Composio

Overview

SLUG: CANVA

Description

Canva offers a drag-and-drop design suite for creating social media graphics, presentations, and marketing materials with prebuilt templates and a vast element library

Authentication Details

client_id
stringRequired
client_secret
stringRequired
oauth_redirect_uri
stringDefaults to https://backend.composio.dev/api/v1/auth-apps/add
scopes
stringDefaults to app:read,app:write,asset:read,asset:write,brandtemplate:content:read,brandtemplate:meta:read,comment:read,comment:write,design:content:read,design:content:write,design:meta:read,design:permission:read,design:permission:write,folder:read,folder:write,folder:permission:read,folder:permission:write,profile:read

Connecting to Canva

Create an auth config

Use the dashboard to create an auth config for the Canva toolkit. This allows you to connect multiple Canva accounts to Composio for agents to use.

1

Select App

Navigate to Canva.

2

Configure Auth Config Settings

Select among the supported auth schemes of and configure them here.

3

Create and Get auth config ID

Click “Create Canva Auth Config”. After creation, copy the displayed ID starting with ac_. This is your auth config ID. This is not a sensitive ID — you can save it in environment variables or a database. This ID will be used to create connections to the toolkit for a given user.

Connect Your Account

Using OAuth2

1from composio import Composio
2
3# Replace these with your actual values
4canva_auth_config_id = "ac_YOUR_CANVA_CONFIG_ID" # Auth config ID created above
5user_id = "0000-0000-0000" # UUID from database/application
6
7composio = Composio()
8
9
10def authenticate_toolkit(user_id: str, auth_config_id: str):
11 connection_request = composio.connected_accounts.initiate(
12 user_id=user_id,
13 auth_config_id=auth_config_id,
14 )
15
16 print(
17 f"Visit this URL to authenticate Canva: {connection_request.redirect_url}"
18 )
19
20 # This will wait for the auth flow to be completed
21 connection_request.wait_for_connection(timeout=15)
22 return connection_request.id
23
24
25connection_id = authenticate_toolkit(user_id, canva_auth_config_id)
26
27# You can also verify the connection status using:
28connected_account = composio.connected_accounts.get(connection_id)
29print(f"Connected account: {connected_account}")

Tools

Executing tools

To prototype you can execute some tools to see the responses and working on the Canva toolkit’s playground

For code examples, see the Tool calling guide and Provider examples.

Tool List

Tool Name: Access user specific brand templates list

Description

Lists brand templates available to the user (Canva Enterprise only). This endpoint retrieves all brand templates the user has access to. Brand templates are pre-designed layouts with variable data fields that can be populated programmatically using the autofill API. Returns template metadata including IDs, names, and dataset schemas.

Action Parameters

continuation
string
dataset
string
ownership
string
query
string
sort_by
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Create Asset Upload Job

Description

Uploads an asset file to the user's Canva content library. This endpoint initiates an asynchronous upload job for images, videos, audio files, PDFs, or fonts. Returns a job ID to track the upload progress. Once complete, the asset can be used in designs, referenced by its asset ID, and managed through other asset endpoints. IMPORTANT: This is an async operation. Use CANVA_FETCH_ASSET_UPLOAD_JOB_STATUS to poll the job status until it reaches 'success' or 'failed' status.

Action Parameters

file
objectRequired
name
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Create Canva Design Export Job

Description

Exports a Canva design to various file formats. This endpoint initiates an asynchronous export job for designs. Supports image formats (PNG, JPG, GIF), documents (PDF, PPTX), and video (MP4). Each format has specific configuration options like dimensions, quality, and page selection. IMPORTANT: This is an async operation. Use GET_DESIGN_EXPORT_JOB_RESULT to poll the job status until completion and retrieve the download URLs for the exported files.

Action Parameters

design_id
stringRequired
format
objectRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Create canva design with optional asset

Description

Creates a new Canva design with specified dimensions or from an asset. This endpoint creates a design using either a preset type (doc, presentation, whiteboard), custom dimensions, or by importing an image asset. Returns the design ID, URLs for editing and viewing, owner info, and metadata. The design can be immediately accessed and edited.

Action Parameters

asset_id
string
design_type
object
title
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Create comment reply in design

Description

This preview API allows replying to comments within a design on Canva, with a limit of 100 replies per comment. Users should note potential unannounced changes, and that preview APIs are not eligible for public integrations.

Action Parameters

commentId
stringRequired
message
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Create design comment in preview api

Description

Creates a new comment thread on a Canva design. This preview API allows adding text comments to designs for collaboration and feedback. Returns the created comment with ID, author info, and timestamp. Comments can be replied to using the comment reply endpoint.

Action Parameters

assignee_id
string
attached_to
objectRequired
design_id
stringRequired
message
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Create Design Import Job

Description

Imports an external file as a new Canva design. This endpoint converts documents (PDF, Word, PowerPoint, Excel) and design files (PSD, AI) into editable Canva designs. The import runs asynchronously and returns a job ID to track progress and retrieve the created design. IMPORTANT: This is an async operation. Use CANVA_RETRIEVE_DESIGN_IMPORT_JOB_STATUS to poll the job status until it reaches 'success' or 'failed' to get the final design ID.

Action Parameters

file
objectRequired
mime_type
string
title
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Create Design Resize Job

Description

Creates a resized copy of an existing design (Canva Pro/Enterprise only). This endpoint creates a new design with different dimensions from an existing one. The resize operation runs asynchronously and preserves content where possible. Returns a job ID to track progress and retrieve the new design once complete. IMPORTANT: This is an async operation. Use CANVA_RETRIEVE_DESIGN_RESIZE_JOB_STATUS to poll the job status until completion to get the resized design ID and access URLs.

Action Parameters

design_id
stringRequired
design_type
objectRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Create URL Asset Upload Job

Description

Tool to create an asynchronous Canva asset import job from a public URL. Use when you need to import an asset into Canva directly from a publicly accessible URL without S3 choreography.

Action Parameters

name
stringRequired
url
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Create user or sub folder

Description

Creates a new folder in the user's Canva projects. This endpoint creates a single folder at the specified location (root level or inside another folder). Returns the new folder's ID, name, and timestamps. The created folder can store designs, assets, and subfolders.

Action Parameters

name
stringRequired
parent_folder_id
stringDefaults to root

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Delete asset by id

Description

You can delete an asset by specifying its `assetId`. This operation mirrors the behavior in the Canva UI. Deleting an item moves it to the trash. Deleting an asset doesn't remove it from designs that already use it.

Action Parameters

assetId
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Exchange oauth 2 0 access or refresh token

Description

The OAuth 2.0 endpoint issues time-limited (4-hour) access tokens of up to 4KB for user authorization via codes or refresh tokens. It requires client ID/secret for authentication.

Action Parameters

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Fetch asset upload job status

Description

Polls for asset upload job completion status. Use this after CANVA_CREATE_ASSET_UPLOAD_JOB to check the upload progress. Repeatedly call this endpoint until a 'success' or 'failed' status is received to get the final asset ID and metadata.

Action Parameters

jobId
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Fetch canva connect signing public keys

Description

The API for verifying Canva webhooks, 'connect/keys,' is in preview, meaning unstable, not for public integrations, and provides a rotating JWK for signature verification to prevent replay attacks. Cache keys for efficiency.

Action Parameters

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Fetch current user details

Description

Returns the User ID, Team ID, and display name of the user account associated with the provided access token.

Action Parameters

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Fetch design metadata and access information

Description

Gets the metadata for a design. This includes owner information, URLs for editing and viewing, and thumbnail information.

Action Parameters

designId
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get design comment thread replies

Description

Retrieves a list of replies for a comment or suggestion thread on a design. Use when you need to view all replies in a specific thread.

Action Parameters

continuation
string
designId
stringRequired
limit
integerDefaults to 50
threadId
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get specific design comment reply

Description

Retrieves a specific reply to a comment or suggestion thread on a design. Use when you need to view details of a particular reply.

Action Parameters

designId
stringRequired
replyId
stringRequired
threadId
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get design export job result

Description

Polls for design export job completion status. Use this after CANVA_CREATE_CANVA_DESIGN_EXPORT_JOB to check the export progress. Call this endpoint repeatedly until the job is complete to receive download links for the exported design pages. Download URLs expire after 30 days.

Action Parameters

exportId
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get designs designid comments threadid

Description

Retrieves metadata for a comment or suggestion thread on a design. Use when you need to get details about a specific thread including content, author, timestamps, and status.

Action Parameters

designId
stringRequired
threadId
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get design export formats

Description

Lists available file formats for exporting a design. Use this to check which export formats (PDF, JPG, PNG, SVG, PPTX, GIF, MP4) are supported for a specific design.

Action Parameters

designId
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get URL asset upload job status

Description

Tool to retrieve the status and result of a URL-based asset upload job. Use this after creating a URL asset upload job to check progress and retrieve the uploaded asset ID when successful.

Action Parameters

jobId
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get URL import job status

Description

Polls for URL import job completion status. Use this after creating a URL import job to check the import progress. Repeatedly call this endpoint until a 'success' or 'failed' status is received to get the final imported design ID and metadata.

Action Parameters

jobId
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get user capabilities

Description

Lists the API capabilities for the user account associated with the provided access token. Use when you need to check what features are available based on the user's Canva plan.

Action Parameters

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Initiate canva design autofill job

Description

Upcoming brand template ID updates require migration within 6 months. Canva Enterprise users can auto-fill designs using various data types, including experimental chart data. Monitor jobs with specific API.

Action Parameters

brand_template_id
stringRequired
data
objectRequired
title
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List design pages with pagination

Description

Preview API for Canva: subject to unannounced changes and not for public integrations. Lists metadata for design pages with optional `offset` and `limit`; not applicable to all design types.

Action Parameters

designId
stringRequired
limit
integerDefaults to 50
offset
integerDefaults to 1

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List folder items by type with sorting

Description

Lists the items in a folder, including each item's `type`. Folders can contain: - Other folders. - Designs, such as Instagram posts, Presentations, and Documents ([Canva Docs](https://www.canva.com/create/documents/)). - Image assets.

Action Parameters

continuation
string
folderId
stringRequired
item_types
array
sort_by
stringDefaults to modified_descending

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List User Designs

Description

Provides a summary of Canva user designs, includes search filtering, and allows showing both self-created and shared designs with sorting options.

Action Parameters

continuation
string
ownership
string
query
string
sort_by
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Move item to specified folder

Description

Transfers an item to a different folder by specifying both the destination folder's ID and the item's ID. If the item is in various folders, an error occurs; manual relocation via Canva UI is required.

Action Parameters

item_id
stringRequired
to_folder_id
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Post Asset Uploads

Description

Starts an asynchronous job to upload an asset to the user's content library. Use when you need to upload images, videos, audio, PDFs, or fonts to Canva.

Action Parameters

file
objectRequired
name
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Create new Canva design

Description

Creates a new Canva design with preset type or custom dimensions. Use when creating new designs for docs, presentations, whiteboards, or with specific pixel dimensions. Optionally insert an image asset into the design. Returns design ID, edit/view URLs, and metadata.

Action Parameters

asset_id
string
design_type
objectRequired
title
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Post designs designid comments

Description

Creates a comment thread on a Canva design. Use when you need to add feedback or collaboration comments to a specific design. Rate limited to 100 requests per minute per user.

Action Parameters

assignee_id
string
designId
stringRequired
message_plaintext
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Create reply to comment thread

Description

Tool to create a reply to a comment or suggestion thread on a Canva design. Use when you need to respond to existing comments or suggestions. Maximum 100 replies per thread allowed.

Action Parameters

design_id
stringRequired
message_plaintext
stringRequired
thread_id
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Start design export job

Description

Starts a new asynchronous job to export a Canva design file. Use when exporting designs to various formats (PDF, JPG, PNG, GIF, PPTX, MP4). Returns a job ID that can be used to poll for completion status and download URLs.

Action Parameters

design_id
stringRequired
format
objectRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Create folder

Description

Tool to create a folder in Canva. Use when you need to organize designs, assets, or create nested folder structures in a user's projects or uploads folder.

Action Parameters

name
stringRequired
parent_folder_id
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Start Design Import Job

Description

Starts an asynchronous job to import an external file as a new Canva design. Converts documents (PDF, Word, PowerPoint, Excel) and design files (PSD, AI, Keynote, etc.) into editable Canva designs. The import runs asynchronously - use the returned job ID to poll for completion status and retrieve the created design details.

Action Parameters

file
objectRequired
mime_type
string
title
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Upload asset from URL

Description

Tool to initiate an asynchronous job to upload an asset from a URL to a user's content library. Use when you need to import an asset into Canva from a publicly accessible URL without requiring file upload choreography.

Action Parameters

name
stringRequired
tags
array
url
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Create URL Import Job

Description

Tool to start an asynchronous job to import an external file from a URL as a new design in Canva. Use when you need to import a design from a publicly accessible URL. This is an async operation; poll the job status using the job ID until it reaches 'success' or 'failed'.

Action Parameters

mime_type
string
title
stringRequired
url
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Remove folder and move contents to trash

Description

Deletes a folder by moving the user's content to Trash and reassigning other users' content to their top-level projects.

Action Parameters

folderId
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Retrieve app public key set

Description

Returns the Json Web Key Set (public keys) of an app. These keys are used to verify JWTs sent to app backends.

Action Parameters

appId
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Retrieve a specific design comment

Description

This preview API is subject to unannounced changes and can't be used in public integrations. It retrieves a comment, details of which are on Canva Help Center.

Action Parameters

commentId
stringRequired
designId
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Retrieve asset metadata by id

Description

You can retrieve the metadata of an asset by specifying its `assetId`.

Action Parameters

assetId
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Retrieve brand template dataset definition

Description

Canva's brand template IDs will change later this year, including a 6-month integration migration. API access requires Enterprise membership, providing autofill for images, text, and charts, although chart data could change during preview.

Action Parameters

brandTemplateId
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Retrieve canva enterprise brand template metadata

Description

Upcoming update will change brand template IDs; integrations must migrate within 6 months. API use requires Canva Enterprise membership.

Action Parameters

brandTemplateId
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Retrieve design autofill job status

Description

API users with Canva Enterprise membership can retrieve design autofill job results, potentially requiring multiple requests until a `success` or `failed` status is received.

Action Parameters

jobId
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Retrieve design import job status

Description

Polls for design import job completion status. Use this after CANVA_CREATE_DESIGN_IMPORT_JOB to check the import progress. Repeatedly call this endpoint until a 'success' or 'failed' status is received to get the final imported design ID and metadata.

Action Parameters

jobId
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Retrieve Design Resize Job Status

Description

Retrieves the status and results of a design resize job. Polls for design resize job completion status. Use this after CANVA_CREATE_DESIGN_RESIZE_JOB to check the resize progress. Keep polling until status is 'success' or 'failed'. Successful jobs include the new design ID and temporary access URLs.

Action Parameters

job_id
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Retrieve folder details by id

Description

Gets the name and other details of a folder using a folder's `folderID`.

Action Parameters

folderId
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Retrieveuserprofiledata

Description

Currently, this returns the display name of the user account associated with the provided access token. More user information is expected to be included in the future.

Action Parameters

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Revoke oauth tokens

Description

Revoke a refresh token to end its lineage and user consent, requiring re-authentication. Authenticate using either basic access with Base64-encoded credentials or body parameters with client ID and secret.

Action Parameters

client_id
string
client_secret
string
token
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Update asset s name and tags by id

Description

You can update the name and tags of an asset by specifying its `assetId`. Updating the tags replaces all existing tags of the asset.

Action Parameters

assetId
stringRequired
name
string
tags
array

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Update folder details by id

Description

Updates a folder's details using its `folderID`. Currently, you can only update a folder's name.

Action Parameters

folderId
stringRequired
name
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Validate oauth token properties

Description

Check an access token's validity and properties via introspection, requiring authentication. Use Basic access (Base64 encoded `client_id:client_secret`) or body parameters for credentialing.

Action Parameters

client_id
string
client_secret
string
token
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired