← Back to all apps

Overview

Tools Available34
CategoryDesign

Search, create, edit designs

Available Tools

Canva provides 34 tools that can be used to interact with its services.

Autofill Brand Template

autofill-design
Full Description

Generate designs from template. Automatically fill in dynamic content (text, images, etc.) into a brand template using a dataset. The dataset must match the schema defined by the template's dataset.

CRITICAL REQUIREMENTS: 1. MUST only be used AFTER 'search-brand-templates' tool identifies the user’s chosen template 2. MUST use the brand template id returned from 'search-brand-templates' tool 3. ALWAYS confirm with the user for the template, and call 'get-brand-template-dataset' tool to confirm that the template is non-empty 4. It is INVALID to call this tool without first calling 'search-brand-templates' tool or with an empty template.

End-to-end workflow: 1. User asks that they want to generate or create a design from a template. 2. System calls the 'search-brand-templates' tool with non-empty dataset parameter 3. System returns a list of fillable templates to generate or create designs from. 4. User selects one of the templates. 5. System calls 'get-brand-template-dataset' tool to confirm that the designs can be created from the template (ie. its non-empty) 6. System calls this tool with that template, once the template is confirmed by the user. 7. System returns the new design created from the template.

Parameters

Required
brand_template_idstring

ID of the brand template to autofill

dataobject

Data object containing the data fields and values to autofill. The dataset keys must match the template's dataset schema. Example: { cute_pet_image_of_the_day: { type: 'image', asset_id: 'Msd59349ff' }, cute_pet_witty_pet_says: { type: 'text', text: 'It was like this when I got here!' }, cute_pet_sales_chart: { type: 'chart', chart_data: { rows: [{ cells: [{ type: 'string', value: 'Geographic Region' }, { type: 'string', value: 'Sales (millions AUD)' }] }] } } }

Optional
titlestring

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.

user_intentstring

Mandatory description of what the user is trying to accomplish with this tool call. This should always be provided by LLM clients. Please keep it concise (255 characters or less recommended).

Discard Design Edits

cancel-editing-transaction
Full Description

Cancel an editing transaction. This will discard all changes made to the design in the specified editing transaction. Once an editing transaction has been cancelled, the transaction_id for that editing transaction becomes invalid and should no longer be used.

Parameters

Required
transaction_idstring

The transaction ID of the editing transaction to cancel. This must be the exact `transaction_id` value returned in the `start-editing-transaction` tool response for the editing transaction to cancel.

Optional
user_intentstring

Mandatory description of what the user is trying to accomplish with this tool call. This should always be provided by LLM clients. Please keep it concise (255 characters or less recommended).

Add Comment To Design

comment-on-design
Full Description

Add a comment on a Canva design. You need to provide the design ID and the message text. The comment will be added to the design and visible to all users with access to the design.

Parameters

Required
design_idstring

ID of the design to comment on. You can find the design ID by using the `search-designs` tool.

message_plaintextstring

The text content of the comment to add

Optional
user_intentstring

Mandatory description of what the user is trying to accomplish with this tool call. This should always be provided by LLM clients. Please keep it concise (255 characters or less recommended).

Save Design Edits

commit-editing-transaction
Full Description

Commit an editing transaction. This will save all the changes made to the design in the specified editing transaction. CRITICAL: You must ALWAYS ask the user to explicitly approve saving the changes before calling this tool. Show them what changes were made and ask "Would you like me to save these changes to your design?" Wait for their clear approval before proceeding. After successfully saving changes always provide the user with a direct link to open their design in Canva for review. Use the link they gave you or from the get-design tool. All editing operations are temporary until successfully committed. If the commit fails, ALL changes made during the transaction are lost and no changes are saved to the actual design. Users must start a new editing transaction to retry any failed operations. Once an editing transaction has been committed, the transaction_id for that editing transaction becomes invalid and should no longer be used.

Parameters

Required
transaction_idstring

The transaction ID of the editing transaction to commit. This must be the exact `transaction_id` value returned in the `start-editing-transaction` tool response for the editing transaction to commit.

Optional
user_intentstring

Mandatory description of what the user is trying to accomplish with this tool call. This should always be provided by LLM clients. Please keep it concise (255 characters or less recommended).

Create Design From Candidate

create-design-from-candidate
Full Description

Create a new Canva design from a generation job candidate ID. This converts an AI-generated design candidate into an editable Canva design. If successful, returns a design summary containing a design ID that can be used with the editing_transaction_tools. To make changes to the design, first call this tool with the candidate_id from generate-design results, then use the returned design_id with start-editing-transaction and subsequent editing tools.

Parameters

Required
candidate_idstring

ID of the candidate design to convert into an editable Canva design. This is returned in the generate-design response for each design candidate.

job_idstring

ID of the design generation job that created the candidate design. This is returned in the generate-design response.

Optional
user_intentstring

Mandatory description of what the user is trying to accomplish with this tool call. This should always be provided by LLM clients. Please keep it concise (255 characters or less recommended).

Create Folder

create-folder
Full Description

Create a new folder in Canva. You can create it at the root level or inside another folder.

Parameters

Required
namestring

Name of the folder to create

parent_folder_idstring

ID of the parent folder. Use 'root' to create at the top level

Optional
user_intentstring

Mandatory description of what the user is trying to accomplish with this tool call. This should always be provided by LLM clients. Please keep it concise (255 characters or less recommended).

Fetch Design Content

fetch
Full Description

Get the content of a doc, presentation, whiteboard, social media post, sheet, and other designs in Canva. You must provide the design ID, which you can find with the 'search' tool. When given a URL to a Canva design, you can extract the design ID from the URL. Do not use web search to get the content of a design as the content is not accessible to the public. Example URL: https://www.canva.com/design/{design_id}.

Parameters

Required
idstring

ID of the design to get content of

Optional
user_intentstring

Mandatory description of what the user is trying to accomplish with this tool call. This should always be provided by LLM clients. Please keep it concise (255 characters or less recommended).

Generate Design with AI

generate-design
Full Description

⚠️ CRITICAL: This tool does NOT support 'presentation' design_type.

⚠️ IMPORTANT EXCLUSION: Do NOT use this tool for presentations after completing the outline review flow with request-outline-review. If the user has already reviewed an outline in the widget, use generate-design-structured instead.

⚠️ For presentations with detailed outlines: Consider using the guided workflow by calling 'request-outline-review' first to let users review and refine the presentation structure before generation.

Generate professionally designed content in Canva including visual designs (posters, social media posts, flyers) and text-based documents (memos, articles, newsletters, proposals, reports, business plans, requirements documents).

Use this tool when the user asks you to write, create, generate, or draft ANY document or visual design. Examples:

  • "Write a memo..." → use this tool to create a Canva Doc
  • "Generate a business proposal..." → use this tool to create a Canva Doc
  • "Draft a product overview..." → use this tool to create a Canva Doc

⚠️ Do NOT use this tool when the user just wants advice, explanations, or information.

Use the 'query' parameter to tell AI what you want to create. The tool doesn't have context of previous requests. ALWAYS include details from previous queries for each iteration. The tool provides best results with detailed context. ALWAYS look up the chat history and provide as much context as possible in the 'query' parameter. Ask for more details when the tool returns this error message 'Common queries will not be generated'. The generated designs are design candidates for users to select from. Ask for a preferred design and use 'create-design-from-candidate' tool to add the design to users' account. The IDs in the URLs are not design IDs. Do not use them to get design or design content. When using the 'asset_ids' parameter, assets are inserted in the order provided. For small designs with few image slots, only supply the images the user wants. The tool will return a list of generated design candidates, including a candidate ID, preview thumbnail and url. Before editing, exporting, or resizing a generated design, follow these steps: 1. call 'create-design-from-candidate' tool with 'job_id' and 'candidate_id' of the selected design 2. call other tools with 'design_id' in the response

Parameters

Required
querystring

Query describing the design to generate. Ask for more details to avoid errors like 'Common queries will not be generated'.

Optional
asset_idsarray

Optional list of asset IDs to insert into the generated design. Assets are inserted in order, so provide them in the intended sequence.

brand_kit_idstring

ID of the brand kit to base the generated design on. IMPORTANT: Before calling this tool, ALWAYS ask the user if they want to create an on-brand design. If they say yes, use the list-brand-kits tool to show available brand kits and let the user select one. Only call this tool after the user has confirmed their brand kit selection. If the user prefers not to use a brand kit, proceed without this parameter.

design_typestring

The design type to generate. IMPORTANT THIS FIELD IS REQUIRED! ENSURE POPULATION OF THIS FIELD WITH ONE OF THE OPTIONS. Options and their descriptions: - 'business_card': A [business card](https://www.canva.com/create/business-cards/); professional contact information card. - 'card': A [card](https://www.canva.com/create/cards/); for various occasions like birthdays, holidays, or thank you notes. - 'desktop_wallpaper': A desktop wallpaper; background image for computer screens. - 'doc': A [Canva Doc](https://www.canva.com/docs/); Modern, collaborative documents for business communications and written content. Use this for: memos, articles, technical articles, newsletters, requirements documents (product requirements, business requirements), agendas, strategic plans, go-to-market plans, business proposals, solution proposals, event proposals, company announcements, product overviews, summaries, and other text-heavy professional documents. Canva Docs are web-first with dynamic layouts optimized for online collaboration and interactive content. NOT for: Visual proposal templates with graphics (use 'proposal'), data-heavy reports with charts (use 'report'), traditional fixed-layout templates (use 'document'). - 'document': A [document](https://www.canva.com/create/documents/); traditional page-based document template with fixed layouts. For most business writing, use "doc" instead. - 'facebook_cover': A [Facebook cover](https://www.canva.com/create/facebook-covers/); banner image for your Facebook profile or page. - 'facebook_post': A Facebook post; ideal for sharing content on Facebook. - 'flyer': A [flyer](https://www.canva.com/create/flyers/); single-page promotional material. - 'infographic': An [infographic](https://www.canva.com/create/infographics/); for visualizing data and information. - 'instagram_post': An [Instagram post](https://www.canva.com/create/instagram-posts/); perfect for sharing content on Instagram. - 'invitation': An invitation; for events, parties, or special occasions. - 'logo': A [logo](https://www.canva.com/create/logos/); for creating brand identity. - 'phone_wallpaper': A phone wallpaper; background image for mobile devices. - 'photo_collage': A [photo collage](https://www.canva.com/create/photo-collages/); for combining multiple photos into one design. - 'pinterest_pin': A Pinterest pin; vertical image optimized for Pinterest. - 'postcard': A [postcard](https://www.canva.com/create/postcards/); for sending greeting cards through the mail. - 'poster': A [poster](https://www.canva.com/create/posters/); large format print for events or decoration. - 'presentation': A [presentation](https://www.canva.com/presentations/); lets you create and collaborate for presenting to an audience. - 'proposal': A [proposal](https://www.canva.com/create/proposals/); visually-designed business proposal template with graphics and structured layouts. For text-focused proposals, use "doc" instead. - 'report': A [report](https://www.canva.com/create/reports/); visually-designed report template with charts, graphics, and data visualization. For text-focused reports, use "doc" instead. - 'resume': A [resume](https://www.canva.com/create/resumes/); professional document for job applications. - 'twitter_post': A Twitter post; optimized for sharing on Twitter/X. - 'your_story': A Story; vertical format for Instagram and Facebook Stories. - 'youtube_banner': A [YouTube banner](https://www.canva.com/create/youtube-banners/); channel header image for YouTube - 'youtube_thumbnail': A [YouTube thumbnail](https://www.canva.com/create/youtube-thumbnails/); eye-catching image for video previews.

Options:business_cardcarddesktop_wallpaperdocdocumentfacebook_coverfacebook_postflyerinfographicinstagram_postinvitationlogophone_wallpaperphoto_collagepinterest_pinpostcardposterpresentationproposalreportresumetwitter_postyour_storyyoutube_banneryoutube_thumbnail
user_intentstring

Mandatory description of what the user is trying to accomplish with this tool call. This should always be provided by LLM clients. Please keep it concise (255 characters or less recommended).

Generate Structured Design with AI

generate-design-structured
Full Description

Generate a structured presentation design from a user-reviewed and approved outline.

⚠️ HARD REQUIREMENT:

  • This tool MUST ONLY be called AFTER request-outline-review has been called AND the user has reviewed and approved the outline in the widget UI.
  • This requirement applies regardless of how complete or detailed the user's original request or supplied outline is.
  • If there is no approved outline from the widget, DO NOT call this tool.

DO NOT USE THIS TOOL IF:

  • The user has not yet seen the outline review widget.
  • The user has not approved the outline.
  • The user is still requesting changes to the outline structure (e.g., "remove page 3", "add a slide about X", "change the order").

In all of these cases, you MUST call request-outline-review instead with the updated outline.

⚠️ CRITICAL

  • HANDLING OUTLINE MODIFICATION REQUESTS:

If the user asks to modify the outline in any way (add, remove, reorder, or change pages), you MUST: 1. Update the outline according to their request 2. Call request-outline-review again with the modified outline 3. Wait for the user to approve the new outline 4. DO NOT call this tool (generate-design-structured) until the modified outline is approved

Examples of requests that require calling request-outline-review:

  • "Remove pages 6-8"
  • "Add a slide about marketing strategy"
  • "Change the order of slides 2 and 3"
  • "Make it shorter"
  • Any other request to modify the outline structure or content

PURPOSE:

  • Generate a Canva presentation design using the finalized outline that was reviewed and approved by the user.
  • Convert the approved outline into a fully structured presentation design.

WHEN TO USE:

  • AFTER the outline review flow is complete AND one of the following is true:
    • The user clicks the "Generate Design" button in the outline review widget, OR
    • The user explicitly asks you to generate the design after approving the outline WITHOUT requesting any changes.

WHAT YOU MUST PROVIDE:

  • Use ONLY the reviewed and approved outline parameters from the widget.
  • You MUST pass:
    • topic
    • audience
    • style
    • length
    • presentation_outlines (titles + descriptions exactly as approved)
    • Do NOT modify, reorder, add, or remove slides unless the user has explicitly approved those changes in the outline review step.

IMPORTANT CONSTRAINTS:

  • This tool must never be used as an entry point for presentation creation.
  • Design generation must never bypass outline review.
  • request-outline-review is the single, mandatory gateway for all presentations.

Parameters

Required
audiencestring

Target audience for the presentation

lengthstring

Desired length or scope of the presentation

presentation_outlinesarray

Array of slide outlines, each with a title and description

stylestring

Visual style for the presentation

topicstring

High-level presentation topic (max 150 chars)

Optional
asset_idsarray

Optional list of asset IDs to insert into the generated design. Assets are inserted in order.

brand_kit_idstring

Optional ID of the brand kit to apply to the generated design

design_typestring

The design type to generate. IMPORTANT THIS FIELD IS REQUIRED! ENSURE POPULATION OF THIS FIELD WITH ONE OF THE OPTIONS. Options and their descriptions: - 'presentation': A [presentation](https://www.canva.com/presentations/); lets you create and collaborate for presenting to an audience.

Options:presentation
user_intentstring

Mandatory description of what the user is trying to accomplish with this tool call. This should always be provided by LLM clients. Please keep it concise (255 characters or less recommended).

Get Assets Metadata

get-assets
Full Description

Get metadata for particular assets by a list of their IDs. Returns information about ALL the assets including their names, tags, types, creation dates, and thumbnails. Thumbnails returned are in the same order as the list of asset IDs requested. When editing a page with more than one image or video asset ALWAYS request ALL assets from that page.IMPORTANT: ALWAYS ALWAYS ALWAYS show the preview to the user of EACH thumbnail you get in the response in the chat, EVERY SINGLE TIME you call this tool

Parameters

Required
asset_idsarray

Required array of asset IDs to get the asset metadatas of, as part of this call.

Optional
user_intentstring

Mandatory description of what the user is trying to accomplish with this tool call. This should always be provided by LLM clients. Please keep it concise (255 characters or less recommended).

Get Brand Template Dataset

get-brand-template-dataset
Full Description

Gets the dataset schema of a brand template. The schema contains available autofill fields and their data types (text, image, etc.). The schema is used to understand what dynamic content can be autofilled into the template. If this tool returns an empty object, it means the template does not support autofill, and you could suggest the user to create a Canva design using the brand template manually by clicking the create_url field of the brand template. The create_url can be found by the search-brand-templates tool.

Parameters

Required
template_idstring

ID of the brand template to get the dataset schema for

Optional
user_intentstring

Mandatory description of what the user is trying to accomplish with this tool call. This should always be provided by LLM clients. Please keep it concise (255 characters or less recommended).

Get Design Information

get-design
Full Description

Get detailed information about a Canva design, such as a doc, presentation, whiteboard, video, or sheet. This includes design owner information, title, URLs for editing and viewing, thumbnail, created/updated time, and page count. This tool doesn't work on folders or images. You must provide the design ID, which you can find by using the search-designs or list-folder-items tools. When given a URL to a Canva design, you can extract the design ID from the URL. Example URL: https://www.canva.com/design/{design_id}. If the user provides a shortlink (e.g. https://canva.link/abc123), use resolve-shortlink with the shortlink ID first to get the full URL.

Parameters

Required
design_idstring

ID of the design to get information for

Optional
user_intentstring

Mandatory description of what the user is trying to accomplish with this tool call. This should always be provided by LLM clients. Please keep it concise (255 characters or less recommended).

Get Design Text Content

get-design-content
Full Description

Get the text content of a doc, presentation, whiteboard, social media post, sheet, and other designs in Canva. Use this when you only need to read text content without making changes. IMPORTANT: If the user wants to edit, update, change, translate, or fix content, use start-editing-transaction instead as it shows content AND enables editing. You must provide the design ID, which you can find with the search-designs tool. When given a URL to a Canva design, you can extract the design ID from the URL. Do not use web search to get the content of a design as the content is not accessible to the public. Example URL: https://www.canva.com/design/{design_id}.

Parameters

Required
content_typesarray

Types of content to retrieve. Currently, only `richtexts` is supported so use the `start-editing-transaction` tool to get other content types

design_idstring

ID of the design to get content of

Optional
pagesarray

Optional array of page numbers to get content from. If not specified, content from all pages will be returned. Pages are indexed using one-based numbering, so the first page in a design has the index value `1`.

user_intentstring

Mandatory description of what the user is trying to accomplish with this tool call. This should always be provided by LLM clients. Please keep it concise (255 characters or less recommended).

Get Design Pages

get-design-pages
Full Description

Get a list of pages in a Canva design, such as a presentation. Each page includes its index and thumbnail. This tool doesn't work on designs that don't have pages (e.g. Canva docs). You must provide the design ID, which you can find using tools like search-designs or list-folder-items. You can use 'offset' and 'limit' to paginate through the pages. Use get-design to find out the total number of pages, if needed.

Parameters

Required
design_idstring

The design ID to get pages from

Optional
limitinteger

Maximum number of pages to return (for pagination)

offsetinteger

The page index to start the range of pages to return, for pagination. The first page in a design has an index value of 1

user_intentstring

Mandatory description of what the user is trying to accomplish with this tool call. This should always be provided by LLM clients. Please keep it concise (255 characters or less recommended).

Get Design Page Thumbnail

get-design-thumbnail
Full Description

Get the thumbnail for a particular page of the design in the specified editing transaction. This tool needs to be used with the start-editing-transaction tool to obtain an editing transaction ID. You need to provide the transaction ID and a page index to get the thumbnail of that particular page. Each call can only get the thumbnail for one page. Retrieving the thumbnails for multiple pages will require multiple calls of this tool.IMPORTANT: ALWAYS ALWAYS ALWAYS show the preview to the user of EACH thumbnail you get in the response in the chat, EVERY SINGLE TIME you call this tool

Parameters

Required
page_indexinteger

Required page index to get the thumbnail for. Pages are indexed using one-based numbering, so the first page in a design has the index value `1`.

transaction_idstring

The editing transaction ID. This must be the exact `transaction_id` value returned in the `start-editing-transaction` tool response for the editing transaction to get a thumbnail for.

Optional
user_intentstring

Mandatory description of what the user is trying to accomplish with this tool call. This should always be provided by LLM clients. Please keep it concise (255 characters or less recommended).

Get Presenter Notes

get-presenter-notes
Full Description

Get the presenter notes from a presentation design in Canva. Use this when you need to read the speaker notes attached to presentation slides. You must provide the design ID, which you can find with the search-designs tool. When given a URL to a Canva design, you can extract the design ID from the URL. Example URL: https://www.canva.com/design/{design_id}.

Parameters

Required
design_idstring

ID of the design to get presenter notes from

Optional
pagesarray

Optional array of page numbers to get notes from. If not specified, notes from all pages will be returned. Pages are indexed using one-based numbering, so the first page in a design has the index value `1`.

user_intentstring

Mandatory description of what the user is trying to accomplish with this tool call. This should always be provided by LLM clients. Please keep it concise (255 characters or less recommended).

Import Design From Public HTTPS URL

import-design-from-url
Full Description

Import a file from a URL as a new Canva design. URL must be a public HTTPS link (e.g., https://example.com/file.pdf, https://s3.us-east-1.amazonaws.com/...). Local file paths (file://..., /Users/..., C:\..., or mentions of Downloads/Documents/Desktop) cannot be accessed. If user provides a local path, tell them to upload file to public, internet-accessible URLs that resolve directly to a downloadable file and share a public HTTPS link.

Parameters

Required
namestring

Name for the new design

urlstring

MUST BE HTTPS URL STARTING WITH https://. CRITICAL: Check if user input is a local pattern (starts with /, C:\, file://, or mentions Downloads/Documents/Desktop). If so, DO NOT USE THIS TOOL. LOCAL PATHS CANNOT BE IMPORTED. ✅ ONLY: https://example.com/file.pdf, https://s3.us-east-1.amazonaws.com/... CHECK THE USER INPUT FIRST. If it looks like a local pattern or Canva design URL, DO NOT call this tool.

Optional
user_intentstring

Mandatory description of what the user is trying to accomplish with this tool call. This should always be provided by LLM clients. Please keep it concise (255 characters or less recommended).

List Brand Kits

list-brand-kits
Full Description

Get a list of brand kits available to the user. If the API call returns "Missing scopes: [brandkit:read]", you should ask the user to disconnect and reconnect their connector. This will generate a new access token with the required scope for this tool. Use this tool when the user wants to create designs using their brand identity, mentions their brand, or asks what brand kits are available. Returns brand kit IDs, names, and thumbnails that can be used with the 'generate-design' tool.

Parameters

Optional
continuationstring

Token for getting the next page of results. Use the continuation token from the previous response.

user_intentstring

Mandatory description of what the user is trying to accomplish with this tool call. This should always be provided by LLM clients. Please keep it concise (255 characters or less recommended).

List Design Comments

list-comments
Full Description

Get a list of comments for a particular Canva design.

Comments are discussions attached to designs that help teams collaborate. Each comment can contain replies, mentions, and can be marked as resolved or unresolved.

You need to provide the design ID, which you can find using the search-designs tool. Use the continuation token to get the next page of results, when there are more results.

You can filter comments by their resolution status (resolved or unresolved) using the comment_resolution parameter.

Parameters

Required
design_idstring

ID of the design to get comments for. You can find the design ID using the `search-designs` tool.

Optional
continuationstring

Pagination token for the current search context. CRITICAL RULES: - ONLY set this parameter if the previous response included a continuation token. - If no continuation token was returned → OMIT this parameter completely. NEVER EVER fabricate a token. - Do not set to null, empty string, or any other value when no token was provided. Usage: - First request: omit this parameter - Previous response had continuation token: use that exact token - Previous response had NO continuation token: omit this parameter - New search query: omit this parameter

limitinteger

Maximum number of comments to return (1-100). Defaults to 50 if not specified.

Default: 50
user_intentstring

Mandatory description of what the user is trying to accomplish with this tool call. This should always be provided by LLM clients. Please keep it concise (255 characters or less recommended).

List Folder Items

list-folder-items
Full Description

List items in a Canva folder. An item can be a design, folder, or image. You can filter by item type and sort the results. Use the continuation token to get the next page of results, when there are more results.

Parameters

Required
folder_idstring

ID of the folder to list items from. Use 'root' to list items at the top level

Optional
continuationstring

Pagination token for the current search context. CRITICAL RULES: - ONLY set this parameter if the previous response included a continuation token. - If no continuation token was returned → OMIT this parameter completely. NEVER EVER fabricate a token. - Do not set to null, empty string, or any other value when no token was provided. Usage: - First request: omit this parameter - Previous response had continuation token: use that exact token - Previous response had NO continuation token: omit this parameter - New search query: omit this parameter

item_typesarray

Filter items by type. Can be 'design', 'folder', or 'image'

sort_bystring

Sort the items by creation date, modification date, or title

Options:created_ascendingcreated_descendingmodified_ascendingmodified_descendingtitle_ascendingtitle_descending
user_intentstring

Mandatory description of what the user is trying to accomplish with this tool call. This should always be provided by LLM clients. Please keep it concise (255 characters or less recommended).

List Comment Replies

list-replies
Full Description

Get a list of replies for a specific comment on a Canva design.

Comments can contain multiple replies from different users. These replies help teams collaborate by allowing discussion on a specific comment.

You need to provide the design ID and comment ID. You can find the design ID using the search-designs tool and the comment ID using the list-comments tool.

Use the continuation token to get the next page of results, when there are more results.

Parameters

Required
comment_idstring

ID of the comment to list replies from. You can find comment IDs using the `list-comments` tool.

design_idstring

ID of the design containing the comment. You can find the design ID using the `search-designs` tool.

Optional
continuationstring

Pagination token for the current search context. CRITICAL RULES: - ONLY set this parameter if the previous response included a continuation token. - If no continuation token was returned → OMIT this parameter completely. NEVER EVER fabricate a token. - Do not set to null, empty string, or any other value when no token was provided. Usage: - First request: omit this parameter - Previous response had continuation token: use that exact token - Previous response had NO continuation token: omit this parameter - New search query: omit this parameter

limitinteger

Maximum number of replies to return (1-100). Defaults to 50 if not specified.

Default: 50
user_intentstring

Mandatory description of what the user is trying to accomplish with this tool call. This should always be provided by LLM clients. Please keep it concise (255 characters or less recommended).

Log Messages from ChatGPT App

log
Full Description

Internal tool for logging errors, warnings, and informational messages from ChatGPT client to Canva's monitoring systems.

This tool is intended for use by ChatGPT integration for:

  • Logging client-side errors that occur during ChatGPT operations
  • Tracking warnings and informational messages
  • Sending diagnostic information to Canva's monitoring infrastructure

Arguments: • error_type (required): The severity level of the log entry

  • "info": Informational message (e.g., successful operations, user actions)
  • "warn": Warning message (e.g., deprecated feature usage, recoverable errors)
  • "error": Error message (e.g., failed operations, exceptions)

• message (required): Clear description of the error, warning, or information being logged. Should be concise and actionable.

• metadata (optional): Additional structured data as JSON string Can include custom fields relevant to the specific error

Response: Returns success confirmation or an error if logging fails.

Parameters

Required
error_typestring

Required. The severity level: "info" for informational messages, "warn" for warnings, "error" for errors.

Options:infowarnerror
messagestring

Required. Clear description of the error, warning, or information. Maximum 5000 characters.

Optional
metadatastring

Optional. Additional structured data as JSON string. Maximum 5000 characters.

user_intentstring

Mandatory description of what the user is trying to accomplish with this tool call. This should always be provided by LLM clients. Please keep it concise (255 characters or less recommended).

Move Item To Folder

move-item-to-folder
Full Description

Move items (designs, folders, images) to a specified Canva folder

Parameters

Required
item_idstring

ID of the item to move (design, folder, or image)

to_folder_idstring

ID of the destination folder. Use 'root' to move to the top level

Optional
user_intentstring

Mandatory description of what the user is trying to accomplish with this tool call. This should always be provided by LLM clients. Please keep it concise (255 characters or less recommended).

Edit Design

perform-editing-operations
Full Description

Perform editing operations on a design. You can use this tool to update the title, replace text, replace or insert media (images/videos), and delete media/text in a design. This tool needs to be used with the start-editing-transaction tool to obtain an editing transaction ID. Multiple operations SHOULD be specified in bulk across multiple pages. Always call this tool to apply the requested edits directly. This is safe: changes are temporary until committed. Do NOT pause for user confirmation before using this tool. After performing ALL operations requested by the user, always confirm with the user before finalizing changes using the commit-editing-transaction tool. This tool will return the thumbnail of the first page that is updated. If there are more pages that are updated, as part of this update, always call the get-design-thumbnail tool to get the thumbnails for each of the other updated pages. IMPORTANT: If the user has asked you to replace an image and the target page contains multiple images, you MUST use the get-assets tool, passing in the asset_id values, to look at the thumbnail of each of the existing images on the page to be CERTAIN which one the user wants replaced. Thumbnails returned by this tool are ALWAYS user-relevant and you need to render them directly using the full thumbnail URL including time-limited query parameters such as X-Amz-Algorithm, X-Amz-Credential, and X-Amz-Signature.

Parameters

Required
operationsarray

The editing operations to perform on the design in this editing transaction. Multiple operations SHOULD be specified in bulk across multiple pages.

page_indexnumber

Required page index of the first page that is going to be updated as part of this update. Multiple operations SHOULD be specified in bulk across multiple pages, this just needs to specify the first page in the set of pages to be updated. Pages are indexed using one-based numbering, so the first page in a design has the index value `1`.

transaction_idstring

The editing transaction ID. This must be the exact `transaction_id` value returned in the `start-editing-transaction` tool response for the editing transaction to perform editing operations on.

Optional
user_intentstring

Mandatory description of what the user is trying to accomplish with this tool call. This should always be provided by LLM clients. Please keep it concise (255 characters or less recommended).

Reply To Comment

reply-to-comment
Full Description

Reply to an existing comment on a Canva design. You need to provide the design ID, comment ID, and your reply message. The reply will be added to the specified comment and visible to all users with access to the design.

Parameters

Required
comment_idstring

The ID of the comment to reply to. You can find comment IDs using the `list-comments` tool.

design_idstring

ID of the design containing the comment. You can find the design ID by using the `search-designs` tool.

message_plaintextstring

The text content of the reply to add

Optional
user_intentstring

Mandatory description of what the user is trying to accomplish with this tool call. This should always be provided by LLM clients. Please keep it concise (255 characters or less recommended).

Request User Review of Presentation Outline

request-outline-review
Full Description

Request the user to review and approve a presentation outline before any design generation.

This tool is the MANDATORY ENTRY POINT for ALL presentation creation workflows. NEVER respond with a plain-text outline when user gives feedbacks on the outline, always call this tool again with the updated outline. Keep text response to user to a minimum, you only need to launch the ui://widget/outline-review.html widget for user to review the outline.

INTENT RESOLUTION (CRITICAL — ALWAYS APPLY): Any user request that includes BOTH: 1) a presentation artifact noun ("presentation", "slides", "deck", "pitch"), AND 2) an action or assistance verb ("help", "make", "create", "build", "work on", "put together", "prepare", "generate")

MUST ALWAYS be interpreted as a request to CREATE A PRESENTATION, not as content-only help.

This includes ambiguous phrasing such as:

  • "help make a presentation about frogs"
  • "help with a presentation on climate change"
  • "work on some slides for school"

In all such cases, you MUST call this tool immediately.

DEFAULT BEHAVIOR (NO EXCEPTIONS):

  • If the user asks to create, make, help, build, or generate a presentation or slides about any topic, call this tool immediately.
  • Do this even if the user provides a complete slide-by-slide outline, full content, or structure.
  • Do NOT ask clarifying questions about whether the user wants a presentation.
  • Do NOT call generate-design or generate-design-structured before this step is completed.

PURPOSE:

  • Generate a proposed slide outline.
  • Present it in the outline review widget.
  • Allow the user to review, edit, approve, or request changes before any design is generated.

WHEN TO USE (NON-NEGOTIABLE):

  • Any request involving "presentation", "slides", "deck", or "pitch"
  • Any request phrased as "help me make/create/work on a presentation…"
  • Any request like "make slides about…" or "presentation about…"

This applies regardless of wording, tone, or level of detail.

WHAT YOU MUST PROVIDE:

  • You MUST generate a complete pages array based on the user's request.
  • Each page MUST include:
    • title: clear, concise slide title
    • description: markdown bullet-point explanation of the slide's content
    • Each description MUST contain at least one bullet.
    • Each description MUST contain ONLY markdown bullets.
    • Descriptions may contain one or more bullets, but ZERO non-bullet text.

SLIDE SEMANTICS (CRITICAL): A slide represents a coherent theme or concept, not a single idea. When users provide many ideas or points that clearly belong to the same theme, prefer grouping them into a single slide and enumerating them line-by-line, unless the user explicitly signals that each idea should be its own slide.

CONTENT PRESERVATION (CRITICAL):

  • Populate as much relevant context as possible from the conversation into the outline.
  • Treat user-provided content as source-of-truth, including:
    • Sample slide content, timelines, phased narratives, bullet points, or year-by-year progressions
    • Metaphors, bracketed phrases, emoji used as meaning, and slogan-like language
    • Specific examples, data points, and named concepts
    • Narrative structure and ordering implied by the user’s writing
    • Preserve the user’s wording, formatting, ordering, and level of detail whenever provided.
    • The length parameter guidelines apply primarily when generating NEW content, not when mapping or projecting user-provided content into slides.

STRUCTURE PRESERVATION: If the user provides an explicit structure (e.g. timelines, years, phases, steps, or repeated patterned lines), you should preserve that structure explicitly in the outline by enumerating each item as its own slide OR as a clearly listed, line-by-line section within a slide. Describing multiple items in prose does NOT count as enumeration; enumeration requires each item to appear as a distinct line, bullet, or slide. Inline or single-sentence enumeration does NOT count; enumerated items must appear on separate lines, bullets, or slides.

ENUMERATION DEFAULT: When preserving lists, timelines, or multiple related ideas, default to enumerating them within a slide before splitting them into multiple slides.

MULTI-SLIDE SIGNALS: Create separate slides for each item ONLY when the user:

  • Explicitly requests one slide per item or section
  • Uses language implying presentation pacing (e.g. “one slide on…”, “dedicate a slide to…”)
  • Provides a fully formed slide-by-slide outline

USER PREFERENCES (MUST RESPECT):

  • If the user expresses ANY preference for audience, length, or style (e.g. "for executives", "make it short", "playful style"), you MUST include those choices in the tool call parameters (audience, length, style) so the widget reflects the user's intent.
  • For audience/style, when user explictly provides a audience or style, try to match the user's choice to an existing predefined option when it clearly fits (e.g. audience: casual/professional/educational; style: minimalist/playful/organic/modular/elegant/digital/geometric). If the user's preference does NOT clearly match a predefined option, provide a custom audience/style description.

CONTENT-BEARING OUTLINE (CRITICAL): This outline is content-bearing and may be used verbatim in the final slides. Do not treat it as a scaffold. Every slide description MUST contain final factual values, not TODOs, not "average/typical," and not blanks.

LENGTH PARAMETER (for NEW content generation): The length parameter controls the number of slides only: • "short" - 1-5 slides • "balanced" - 5-15 slides (DEFAULT) • "comprehensive" - 15+ slides

DESCRIPTION FORMAT (CRITICAL - applies to ALL lengths): Always use detailed markdown bullet lists for slide descriptions:

  • Use hyphen/asterisk syntax with newlines: "- Item\n- Item\n- Item"
  • Do NOT use Unicode bullet characters (•)
  • Provide detailed, substantive bullet points for each slide
  • Every description must contain final factual values, not placeholders or meta-commentary
  • Placeholders are forbidden, including (but not limited to): "TBD", "N/A", "unknown", "varies", "typical", "average", "~", "about", "insert", "research", "estimate later"
  • Example: [{ title: "Introduction", description: "- Key point 1: full explanation\n- Key point 2: full explanation\n- Key point 3: full explanation" }]

PROSE BAN (NON-NEGOTIABLE):

  • Descriptions MUST consist ONLY of markdown bullet lists.
  • Any non-bullet text (including paragraphs, sentences before/after bullets, or inline explanations) is INVALID.
  • If a description visually resembles a paragraph, it is INVALID.

INVALID (DO NOT DO THIS): description: "This slide explains Acme Corp’s growth from 2023–2026 and why adoption matters."

INVALID (DO NOT DO THIS): description: "- Acme Corp grew significantly over several years, focusing on extensibility, partnerships, and adoption." Reason: summarizes multiple distinct ideas into a single bullet instead of enumerating them line-by-line.

VALID (DO THIS): description:

  • 2023: Proved extensibility worked across core surfaces
  • 2024: Scaled integrations and ecosystem partnerships
  • 2025: Became foundational to AI and enterprise workflows
  • 2026: Focus on adoption and default design-layer status

Defaults if not specified by the user:

  • audience: "professional"
  • length: "balanced"
  • style: "minimalist"

REVIEW LOOP: 1. Call this tool with the generated outline. 2. The user reviews the outline in the widget. 3. If the user requests changes, update the pages and call this tool again. 4. Repeat until the user approves the outline.

NEXT STEP AFTER APPROVAL:

  • Only after the outline is approved:
    • The user clicks "Generate Design" in the widget, OR
    • The user explicitly asks you to generate the design
    • ONLY THEN should you call generate-design-structured using the approved outline parameters.

IMPORTANT:

  • This tool is required for every presentation.
  • Presentation design generation must never bypass outline review.
  • This tool is the single gateway for presentation creation.

Parameters

Required
pagesarray

Array of page objects, each with title and description. YOU must create this based on the user's request.

topicstring

High-level topic or subject of the presentation (max 150 chars)

Optional
audiencestring

Target audience. ONLY provide this if the user explicitly specifies an audience. Use predefined values ("casual", "professional", "educational") when they match, or provide a custom description if the user specifies something else (e.g., "executives", "marketing team"). If the user does not specify an audience, DO NOT provide this parameter - it will default to "professional".

Default: professional
brand_kit_idstring

ID of the brand kit to use, if user has specified a brand kit they want to use

brand_kit_namestring

Name of the brand kit to use. Must be provided together with brand_kit_id.

lengthstring

Presentation length controlling slide count only: "short" (1-5 slides), "balanced" (5-15 slides, default), or "comprehensive" (15+ slides). Description format is always detailed bullet points regardless of length.

Options:shortbalancedcomprehensive
Default: balanced
stylestring

Presentation style. ONLY provide this if the user explicitly mentions a style preference. Use exact predefined values when they match: "minimalist", "playful", "organic", "modular", "elegant", "digital", "geometric". Only use custom descriptions if the user specifies something that doesn't match these (e.g., "corporate", "creative"). If the user does not specify a style, DO NOT provide this parameter - it will default to "minimalist".

user_intentstring

Mandatory description of what the user is trying to accomplish with this tool call. This should always be provided by LLM clients. Please keep it concise (255 characters or less recommended).

Resize Design

resize-design
Full Description

Resize a Canva design to a preset or custom size. The tool will provide a summary of the new resized design, including its metadata.

Parameters

Required
design_idstring

ID of the design to resize. Design ID starts with "D".

design_typeobject

Target design type (preset or custom). Preset options: doc, whiteboard, presentation. Custom options: width and height in pixels.

Optional
user_intentstring

Mandatory description of what the user is trying to accomplish with this tool call. This should always be provided by LLM clients. Please keep it concise (255 characters or less recommended).

Resolve Shortlink

resolve-shortlink
Full Description

Resolves a Canva shortlink ID to its target URL. IMPORTANT: Use this tool FIRST when a user provides a shortlink (e.g. https://canva.link/abc123). Shortlinks need to be resolved before you can use other tools. After resolving, extract the design ID from the target URL and use it with tools like get-design, start-editing-transaction, or get-design-content.

Parameters

Required
shortlink_idstring

The shortlink ID to resolve (e.g., "abc123" from https://canva.link/abc123)

Optional
user_intentstring

Mandatory description of what the user is trying to accomplish with this tool call. This should always be provided by LLM clients. Please keep it concise (255 characters or less recommended).

Search Canva Designs

search
Full Description

Search docs, presentations, videos, whiteboards, sheets, and other designs in Canva. Use the continuation token to get the next page of results, if needed. The design URLs are secured and are not accessible to the public. Use the fetch tool instead of web search to get the content of a design. Use the continuation token to get the next page of results, when there are more results.

Parameters

Required
querystring

Search query.

Optional
continuationstring

Pagination token for the current search context. CRITICAL RULES: - ONLY set this parameter if the previous response included a continuation token. - If no continuation token was returned → OMIT this parameter completely. NEVER EVER fabricate a token. - Do not set to null, empty string, or any other value when no token was provided. Usage: - First request: omit this parameter - Previous response had continuation token: use that exact token - Previous response had NO continuation token: omit this parameter - New search query: omit this parameter

user_intentstring

Mandatory description of what the user is trying to accomplish with this tool call. This should always be provided by LLM clients. Please keep it concise (255 characters or less recommended).

Search Brand Templates

search-brand-templates
Full Description

Searches and lists for templates available to the current user. This returns a list of templates with their IDs, names, and preview thumbnails to help users select the appropriate template for their needs. ❗When a user says search a template, they ALWAYS mean brand-templates. Therefore ALWAYS call this tool to search for the templates

** 🟢 This tool can also be used to browse all of the available templates. If query is not provided, all available templates will be returned. ❗Set the query parameter to be empty, unless the user EXPLICITLY states a type or title of template to query by. You may use dataset="non_empty" with or without a query. When used without a query, this returns all autofill-capable templates **

Use the continuation token to get the next page of results, if needed.

If user intends to use a template for design generation, filter the templates with "dataset" parameter set to "non_empty". If the user wants to create a design from a template, there are two options: 1. Design Generation from template. Only templates with non-empty dataset can be used for design generation. You also need to set the dataset parameter to non-empty to get the templates for design generation. Then use the 'autofill-design' tool to generate. 2. Create a design manually in the browser. If you cannot find a suitable template for design generation, you can suggest the user create a Canva design using the template manually, by going to the 'create_url' field of the template in the browser.

❗This tool takes priority over search-designs whenever templates or generation are involved. If the user mentions both “template” and an existing design title, default to 'search-brand-templates' unless they explicitly request to open or edit an existing design. ❗Trigger words can include: “search for a template", generate”, “create for me”, “autofill”, “template”, “use a template”, “use my template”, “make a design using…”, “produce a design”, “prepare a design for…”, “generate a report”, “I should have a template you should use”, or anything indicating content needs to be placed into a template or anything indicating searching for a template.

WORKFLOW AND REQUIREMENTS FOR DESIGN GENERATION BASED ON TEMPLATE End-to-End Workflow for Design Generation or Creation from Template 1. User asks that they want to "generate or create a design from a template". 2. System calls this tool with non-empty dataset parameter. 3. System returns a list of fillable templates to generate or create designs from. 4. User selects one of the templates. 5. System calls 'get-brand-template-dataset' tool to confirm that the designs can be created from the template (ie. its non-empty) 6. System calls this tool with that template, once the template is confirmed by the user. 7. System returns the new design created from the template.

Critical Requirements: 1. ALWAYS use this tool whenever the user wants to generate any new design from a template. 2. ALWAYS confirm with the user for the template, and call 'get-brand-template-dataset' tool to confirm that the template is non-empty 3. ALWAYS call the 'autofill-design' tool to generate the design based on the template 4. ** 🟢 ALWAYS use this tool when the user expresses intent to “generate”, “create”, “autofill”, “search a template”, “start from a template”, “use my template”, or “pick a template for generation”. In all such cases, ALWAYS use search-brand-templates. ANY query involving: – “generate a presentation” – “generate a report” – “make a design using a template” – “generate from a template” – “produce a presentation from their template”

  • "search for available templates"

MUST ALWAYS use search-brand-templates.**

Parameters

Optional
continuationstring

Token for getting the next page of results. Use the continuation token from the previous response.

datasetstring

Filter brand templates based on their dataset definition: 'any' for all templates, 'non_empty' for templates with dataset fields

Options:anynon_empty
querystring

Optional search query to filter brand templates

user_intentstring

Mandatory description of what the user is trying to accomplish with this tool call. This should always be provided by LLM clients. Please keep it concise (255 characters or less recommended).

Search Designs

search-designs
Full Description

Search docs, presentations, videos, whiteboards, sheets, and other designs in Canva, except for templates or brand templates. Use when you need to find specific designs by keywords rather than browsing folders. Use 'query' parameter to search by title or content. If 'query' is used, 'sortBy' must be set to 'relevance'. Filter by 'any' ownership unless specified. Sort by relevance unless specified. Use the continuation token to get the next page of results, when there are more results.

CRITICAL REQUIREMENTS: 1. ALWAYS use the 'search-brand-templates' tool when the user is searching for templates or wants to use a template. 2. 🚫 When a user says search a template, they ALWAYS mean brand-templates. Therefore NEVER call this tool, ALWAYS call the 'search-brand-templates' tool to search for the templates. 3.** 🚫 NEVER use this tool when the user expresses intent to “generate”, “create”, “autofill”, “search a template”, “start from a template”, “use my template”, or “pick a template for generation”. In all such cases, ALWAYS use search-brand-templates. ANY query involving: – “generate a presentation” – “generate a report” – “make a design using a template” – “generate from a template” – “produce a presentation from their template”

  • "search for available templates"

MUST NOT use search-designs. This tool ONLY searches existing designs (docs, presentations, whiteboards, videos, etc.) that the user already owns or that are shared with them. It DOES NOT find templates and MUST NOT be used as a fallback for template selection. **

Parameters

Optional
continuationstring

Pagination token for the current search context. CRITICAL RULES: - ONLY set this parameter if the previous response included a continuation token. - If no continuation token was returned → OMIT this parameter completely. NEVER EVER fabricate a token. - Do not set to null, empty string, or any other value when no token was provided. Usage: - First request: omit this parameter - Previous response had continuation token: use that exact token - Previous response had NO continuation token: omit this parameter - New search query: omit this parameter

ownershipstring

Filter designs by ownership: 'any' for all designs owned by and shared with you (default), 'owned' for designs you created, 'shared' for designs shared with you

Options:anyownedshared
querystring

Optional search term to filter designs by title or content. If it is used, 'sortBy' must be set to 'relevance'.

sort_bystring

Sort results by: 'relevance' (default), 'modified_descending' (newest first), 'modified_ascending' (oldest first), 'title_descending' (Z-A), 'title_ascending' (A-Z). Optional sort order for results. If 'query' is used, 'sortBy' must be set to 'relevance'.

Options:relevancemodified_descendingmodified_ascendingtitle_descendingtitle_ascending
user_intentstring

Mandatory description of what the user is trying to accomplish with this tool call. This should always be provided by LLM clients. Please keep it concise (255 characters or less recommended).

Search Folders

search-folders
Full Description

Search the user's folders and folders shared with the user based on folder names and tags. Returns a list of matching folders with pagination support. Use the continuation token to get the next page of results, when there are more results.

Parameters

Optional
continuationstring

Pagination token for the current search context. CRITICAL RULES: - ONLY set this parameter if the previous response included a continuation token. - If no continuation token was returned → OMIT this parameter completely. NEVER EVER fabricate a token. - Do not set to null, empty string, or any other value when no token was provided. Usage: - First request: omit this parameter - Previous response had continuation token: use that exact token - Previous response had NO continuation token: omit this parameter - New search query: omit this parameter

limitinteger

Maximum number of folders to return per query

Default: 5
ownershipstring

Filter folders by ownership type: 'any' (default), 'owned' (user-owned only), or 'shared' (shared with user only)

Options:anyownedshared
querystring

Search query to match against folder names and tags

user_intentstring

Mandatory description of what the user is trying to accomplish with this tool call. This should always be provided by LLM clients. Please keep it concise (255 characters or less recommended).

Start Editing Design

start-editing-transaction
Full Description

Start an editing session for a Canva design. Use this tool FIRST whenever a user wants to make ANY changes or examine ALL content of a design, including:- Translate text to another language

  • Edit or replace content
  • Update titles
  • Replace or insert media (images/videos)
  • Delete media/text
  • Fix typos or formatting
  • Auditing or reviewing content This tool shows you all the content that can be modified AND provides an editing transaction ID for making changes. The transaction_id returned in the tool response MUST be remembered and MUST be used in all subsequent tool calls related to this specific editing transaction. Editing operations must be performed by the perform-editing-operations tool. To save the changes made in the transaction, use the commit-editing-transaction-tool. To discard the changes made in the transaction, use the cancel-editing-transaction-tool. IMPORTANT: ALWAYS ALWAYS ALWAYS show the preview to the user of EACH thumbnail you get in the response in the chat, EVERY SINGLE TIME you call this tool. If the user provides a shortlink (e.g. https://canva.link/abc123), use resolve-shortlink with the shortlink ID first to get the design URL.

Parameters

Required
design_idstring

ID of the design to start an editing transaction for

Optional
user_intentstring

Mandatory description of what the user is trying to accomplish with this tool call. This should always be provided by LLM clients. Please keep it concise (255 characters or less recommended).

Upload Asset From URL

upload-asset-from-url
Full Description

Upload an asset (e.g. an image, a video) from a URL into Canva If the API call returns "Missing scopes: [asset:write]", you should ask the user to disconnect and reconnect their connector. This will generate a new access token with the required scope for this tool.

Parameters

Required
namestring

Name for the uploaded asset

urlstring

URL of the asset to upload into Canva

Optional
user_intentstring

Mandatory description of what the user is trying to accomplish with this tool call. This should always be provided by LLM clients. Please keep it concise (255 characters or less recommended).