← Back to all apps

Canva

Designby Canva Pty Ltd.
Launched Sep 29, 2026 on ChatGPT

Browse, summarize, autofill, and even generate new Canva designs directly from Claude. Make Canva a native part of your AI workflow—an AI-powered design agent that helps you create polished visuals faster, with less friction.

45ChatGPT Tools
17Claude Tools
Canva Pty Ltd.Developer
DesignCategory

Use Cases

designeducation

Available Tools

Autofill Design

autofill-design
Full Description

Merge structured text, image, video, or chart values into named autofill fields to populate a Canva design, either as a new design or by overwriting an existing one in place. Use to merge a dataset or spreadsheet; place supplied names, details, or media into template placeholders; populate an existing design; or refill a design whose merged content is out of date.

Only use after you have identified a Brand Template or existing Canva design and confirmed it has fillable data fields. Only overwrite an existing design in place when the user has asked to refill that design rather than create a new one, since the overwrite replaces its content and cannot be undone. Not for creating a blank Brand Template copy.

Requires exactly one source and data that matches its field schema. Returns the populated design's design_id.

Parameters (1 required, 5 optional)
Required
dataobject

Values to merge into the source's autofill fields. Each key must exactly match a field name in the selected source's schema, and each value must use that field's expected type.

Optional
brand_template_idstring

ID of the Brand Template to autofill. Only provide this after confirming the template has fillable data fields. Provide this or `design_id`, not both.

design_idstring

ID of the existing Canva design to autofill, and the design overwritten when `update_in_place` is true. Only provide this after confirming the design has fillable data fields. Provide this or `brand_template_id`, not both.

titlestring

Title for the new populated design. Omit to keep the source title. Ignored when `update_in_place` is true, since the design keeps its own title.

update_in_placeboolean

Overwrite `design_id`'s existing content with the merged values instead of creating a new design. Defaults to false. Only valid alongside `design_id`, and only available to some accounts; where it is unavailable the call fails and a new design has to be created instead.

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

Undo or discard all unsaved changes in an active Canva editing transaction.

Use to cancel a set of in-progress edits or finish editing without saving.

The unsaved changes will be permanently lost, and the transaction_id can no longer be used. Returns confirmation that the changes were discarded.

Parameters (1 required, 1 optional)
Required
transaction_idstring

Exact ID of the active editing transaction whose changes to discard. Use the transaction_id returned when that editing transaction was started.

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 (2 required, 1 optional)
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

Make all draft changes in an active Canva editing transaction permanent.

Use to save a completed set of edits, including text, layout, or media updates.

Show the user a preview of the design and obtain their explicit approval before calling this tool.

Saving applies all draft changes to the design, closes the editing transaction, and makes its transaction_id invalid. Returns confirmation that the changes were saved.

Parameters (1 required, 1 optional)
Required
transaction_idstring

Exact ID of the active editing transaction whose draft changes should be saved.

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).

Copy Design

copy-design
Full Description

Duplicate an existing Canva design, or copy selected pages from it, into a new design.

Use to make a separate working copy, create an independent cloned, forked, or backup version, or preserve the original before making changes. For a single source design only. Not for combining pages from more than one design.

Creates a new design. The source design remains unchanged. Returns the new design's design_id.

Parameters (1 required, 2 optional)
Required
design_idstring

ID of the existing Canva design to copy.

Optional
page_numbersarray

Pages to include in the new design, numbered from 1. For example, use [1, 3, 5] to copy pages 1, 3, and 5. Omit to copy every page.

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 with AI

create-design
Full Description

Generate a new Canva design from a written brief, with any supplied content folded in.

Use to turn a brief, presentation outline, or draft copy into a presentation, doc, sheet, website, poster, flyer, social post, resume, or another text-and-image layout; or to make a first design for a new project.

Do not use this tool for an on-brand request: it cannot apply a brand kit or base a design on a brand template. When the user asks for their brand kit, their brand colours, fonts or logo, or a brand template to base the design on, use the legacy generation tools instead — prepare-design-generation where it is listed, otherwise generate-design or generate-design-structured.

Use this tool only when the requested output itself is an editable Canva page or layout, such as "create an infographic". Do not use it when the user explicitly asks for an image, picture, photo, illustration, artwork, sticker, icon, graphic, or 2d vector; use generate-image instead. Explicit image wording takes priority over design-like content within the image, including text, statistics, labels, callouts, or an infographic-like composition. For example, "create an image about coffee with bold stat callouts" uses generate-image, as does "create an image of an infographic". Do not choose this tool merely because the request uses the words "create" or "design".

Creates a newly generated design rather than editing one that already exists. Not for videos or whiteboards.

Returns a job_id and continuation_token for the generation job. When this tool's UI widget is shown, the widget polls get-create-design-async-job itself and displays the design when ready - do not poll it yourself. Only when no widget is shown, poll get-create-design-async-job with both, waiting the number of seconds each response's polling_policy.wait_seconds gives before the next call, until the job completes, then share the design link with the user.

Parameters (1 required, 3 optional)
Required
briefstring

What to create, in the user's own words. State the subject, the purpose, and any wording, tone, colours, or brand the user asked for.

Optional
formatstring

Named Canva format the design is made in, e.g. "Instagram Post", "Presentation", "Flyer (Landscape A4)". Include the orientation whenever the format has one, because a name without it cannot be resolved to an exact size and the design comes out square. Omit it - usually the better choice - to have the format chosen from the brief.

outlineobject

Outline for a presentation, when you have one the user has approved or supplied. Only valid when the design is a presentation. Omit to let Canva structure the presentation from the brief.

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 Brand Template

create-design-from-brand-template
Full Description

Create a new Canva design from a brand template. Optionally select specific pages to include. If the user has already provided a brand template ID (a string starting with "BTM"), call this tool directly with that ID — do NOT call search-brand-templates first. Only use search-brand-templates when no ID has been provided and you need to discover one. If you need to fill template fields with custom data, use the autofill-design tool instead.

Parameters (1 required, 2 optional)
Required
brand_template_idstring

The ID of the brand template to create a design from.

Optional
page_numbersarray

Optional 1-based page numbers to include from the brand template. Omit to use all pages.

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

LEGACY-ONLY — DO NOT CALL WHEN create-design IS AVAILABLE. If create-design is in the tool list, you MUST NOT call this tool. Call create-design instead. BRAND EXCEPTION: create-design cannot apply a brand kit or base a design on a brand template. When the user asks for an on-brand design — their brand kit, their brand colours, fonts or logo, or a brand template to base the design on — call this tool instead of create-design. All instructions below apply when create-design is absent from the tool list, and whenever the request is an on-brand one. A failed create-design call does not make it unavailable.

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 (2 required, 2 optional)
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
request_contextobject

Internal lifecycle request context.

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 Canva folder to organise related work.

Use to set up a project folder, add a subfolder within an existing folder, or keep designs, images, and folders together. Returns the new folder, including its folder_id.

Parameters (2 required, 1 optional)
Required
namestring

Name for the new Canva folder.

parent_folder_idstring

ID of the Canva folder that will contain the new folder. Use "root" to create the folder 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).

Create upload URL

create-upload-url
Full Description

Uploads a file (image, video, audio, PDF, or other document) into Canva. Use when the user wants to add, upload, import, or send a file they have — a chat attachment, a local file, or generated content — to Canva, or wants to use such a file in a design, presentation, or their Canva library. Step 1: call this tool to get a single-use upload_url. Step 2: send the raw file bytes as the body of one HTTP POST to that URL with the header "Content-Type: application/octet-stream" — raw bytes only, no multipart form, no base64, no JSON wrapper. The POST response contains resource IDs for the uploaded file: pass them to other Canva tools to reference the file. Each URL allows exactly one upload and expires after a short period; if the URL has been used, has expired, or the upload was rejected, call this tool again for a fresh URL — never retry a used or expired URL. Only for files whose bytes you can access; for a file already at a public URL, prefer a URL-import tool if one is available.

Parameters (0 required, 1 optional)
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 (1 required, 1 optional)
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

LEGACY-ONLY — DO NOT CALL WHEN create-design IS AVAILABLE. If create-design is in the tool list, you MUST NOT call this tool. Call create-design instead. BRAND EXCEPTION: create-design cannot apply a brand kit or base a design on a brand template. When the user asks for an on-brand design — their brand kit, their brand colours, fonts or logo, or a brand template to base the design on — call this tool instead of create-design. All instructions below apply when create-design is absent from the tool list, and whenever the request is an on-brand one. A failed create-design call does not make it unavailable.

Generate only these design types:

  • doc: a modern, collaborative Canva Doc for text-heavy content.
  • document: a traditional page-based document with a fixed layout.
  • email: a visual email design or template, not ordinary written content.

LEGACY ROUTING — ONLY WHEN create-design IS UNAVAILABLE OR THE REQUEST IS ON-BRAND

  • Only when create-design is absent from the tool list, or the request is an on-brand one, call prepare-design-generation first for:

business_card, card, desktop_wallpaper, facebook_cover, facebook_post, flyer, infographic, instagram_post, invitation, logo, phone_wallpaper, photo_collage, pinterest_pin, postcard, poster, presentation, proposal, report, resume, twitter_post, your_story, youtube_banner, youtube_thumbnail.

  • For those types, an image uploaded or generated in this conversation is visual

inspiration: call prepare-design-generation with its platform reference as image_file. Never upload it as a Canva asset or pass it through asset_ids.

  • To reconstruct an image as editable layers, use image-to-design.
  • To create from a URL, use import-design-from-url. When a URL is only source

material for a written Doc, use this tool with design_type doc.

  • To create directly from a brand template ID, use create-design-from-brand-template.
  • Do not use a tool when the user only wants advice or information. Sheets,

spreadsheets, videos, websites, and raw HTML/code are unsupported outputs.

CALLING

  • Put the complete brief and relevant prior context in query.
  • Pass a mentioned brand kit ID as brand_kit_id. If the user wants an on-brand

result but has not selected one, call list-brand-kits first.

  • For doc text that must remain exact, set verbatim to true and place the exact

text in query.

  • If "Common queries will not be generated" is returned, ask for more detail.
  • Results are candidates. After the user chooses one, call

create-design-from-candidate with job_id and candidate_id before editing, exporting, or resizing.

Parameters (2 required, 4 optional)
Required
design_typestring

The design type to generate. Options and their descriptions: - '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. - 'email': An [email](https://www.canva.com/emails/); use this for designing email newsletters, promotional emails, and marketing campaigns intended to be sent to recipients.

Options:docdocumentemail
querystring

Query describing the design to generate. Ask for more details to avoid errors like 'Common queries will not be generated'. When 'verbatim' is true, this must be the exact markdown text the user wants in the document (do not summarize or reformat it).

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.

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).

verbatimboolean

Set this to true whenever the user supplies their own text/markdown and wants it placed into a Canva Doc exactly as written — i.e. they say "verbatim", "as-is", "word for word", "exactly as written", or "don't rewrite/summarize/reword/change it". When true, the query is rendered into the document with NO AI rewriting, so pass the user's literal markdown in "query" (do not summarize or reformat it). Only honoured for design_type "doc"; ignored for any other design type (normal AI-assisted generation is used instead). Supports #/## headings, paragraphs, **bold**, *italics*, and bullet/numbered lists; tables, links, code blocks, and images are not supported.

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 tool belongs to the legacy outline-review flow. When prepare-design-generation is available, do NOT use request-outline-review or this tool as the first step for a new presentation request.
  • Do not use this tool for the prepare-design-generation widget flow. After the user confirms options in that widget, call prepare-design-generation with intent="generation" instead.
  • 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.

If the user's message contains a URL and their intent is to create a design FROM that URL, DO NOT use this tool — use import-design-from-url instead.

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 legacy gateway for presentations only when prepare-design-generation is unavailable or the user is already in the legacy outline-review flow.
Parameters (6 required, 4 optional)
Required
audiencestring

Target audience for the presentation

design_typestring

The design type to generate. Options and their descriptions: - 'presentation': A [presentation](https://www.canva.com/presentations/); lets you create and collaborate for presenting to an audience.

Options: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

source_documentobject

Optional Canva document to use as the source for the generated 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).

Generate Image

generate-image
Full Description

Generate a standalone image from a text prompt, or edit/restyle images supplied as references.

When to use: Use this tool based on the requested output, not assumed model limitations such as an inability to render text.

If the user explicitly asks for an image, picture, photo, illustration, artwork, sticker, icon, graphic, or 2d vector, use this tool. The explicitly named output takes priority over design-like content within it, including text, statistics, labels, callouts, or an infographic-like composition. For example, "create an image about coffee with bold stat callouts" uses generate-image.

Use create-design when the requested output itself is an editable Canva page or layout, such as "create an infographic". "Create an image of an infographic" still uses generate-image. The verb "create" or "design" alone does not make the request a Canva design.

When not to use: Do not use when the requested output itself is a designed page or layout, such as an infographic, poster, wallpaper, flyer, presentation, or social media post; use create-design. To add, position, resize, or replace content inside an existing design, use the design-editing workflow instead; the image is source media and the design page is the edit target.

Image references and attachments: For image-to-image generation or editing, add one MEDIA entry to imageReferences for every reference image. Pass the ID of an existing Canva MEDIA content reference directly.

Before using a user-provided attachment as a reference, upload it to Canva: call create-upload-url, then send the attachment's raw bytes to the returned upload URL exactly as instructed. Each upload URL is single-use, so call create-upload-url separately for every attachment. Wait for every upload to succeed, then use the mediaId from each upload response as a separate MEDIA entry in imageReferences. For example, after uploading two attachments (replace the illustrative IDs with their returned mediaIds):

{
  "prompt": "Restyle both reference images as watercolor illustrations",
  "imageReferences": [
    {"type": "MEDIA", "id": "MAAAAAAAAAAA"},
    {"type": "MEDIA", "id": "MBBBBBBBBBBB"}
  ]
}

Use exactly one imageReferences entry per successfully uploaded attachment. Never combine multiple media IDs into one string or object, and never put an upload URL in imageReferences. Do not pass assistant-hosted attachment URLs directly to this tool. If any attachment cannot be uploaded, do not silently omit it; explain the failure to the user.

Omit imageReferences for pure text-to-image generation.

Result: This call returns only a jobId, not the finished image. When this tool's UI widget is shown, the widget polls get-generate-image-job itself and displays the image when ready - do not poll it yourself. Only when no widget is shown, pass the jobId to get-generate-image-job and keep checking until the job succeeds or fails.

Parameters (1 required, 3 optional)
Required
promptstring

Text prompt describing the image to generate

Optional
aspectRatio

Desired output aspect ratio, applied on a best-effort basis. When editing a previously generated image, reuse the exact `aspectRatio` enum value used to generate that image if that value is present in prior conversation or tool-call context, unless the user explicitly requests a different ratio. If the prior enum value is unavailable, omit this argument. For a new image without an explicit ratio, omit this argument. Do not retry solely if the returned image does not exactly match the requested ratio. When provided, `aspectRatio` must be exactly one of the enum values listed below. Translate the user's request into the matching enum value; for example, for `1:1`, send `SQUARE_1_1`. Never send a raw ratio such as `1:1` or a descriptive word such as `square`. If the user provides both an explicit numeric ratio and conflicting descriptive wording, use the numeric ratio to choose the enum value. - `SQUARE_1_1`: Use for "square" or "1:1". - `LANDSCAPE_16_9`: Use for "landscape", "wide", "widescreen", or "16:9". - `LANDSCAPE_5_4`: Use for an explicit "5:4". - `LANDSCAPE_4_3`: Use for an explicit "4:3". - `LANDSCAPE_3_2`: Use for an explicit "3:2". - `LANDSCAPE_2_1`: Use for an explicit "2:1", "panoramic", or "ultra-wide". - `PORTRAIT_9_16`: Use for "portrait", "tall", "vertical", or "9:16". - `PORTRAIT_4_5`: Use for an explicit "4:5". - `PORTRAIT_3_4`: Use for an explicit "3:4". - `PORTRAIT_2_3`: Use for an explicit "2:3". - `PORTRAIT_1_2`: Use for an explicit "1:2".

imageReferencesarray

Optional source images to guide generation, such as for image editing. Each must be a MEDIA content reference. For a GeneratedImageResult, reference its media_id, never its design_id or applied_page_id. Omit for pure text-to-image generation.

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 names, tags, types, creation dates, and thumbnails for images and videos in a Canva design.

Use when you need to check which image or video is the target on a page, look up its details, or preview it before changing it.

Not for design metadata or editing the media itself.

Returns the metadata and thumbnail for each item in the same order as the supplied asset_ids.

Parameters (1 required, 1 optional)
Required
asset_idsarray

IDs of the images or videos to inspect. When checking which media is the target on a page, include every image and video ID from that page.

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

Determine whether a Canva Brand Template has fillable data fields and, if so, list their names and types. A Brand Template is a reusable, on-brand layout.

Use to check if the template can be populated with data, whether a reusable template can be autofilled, or see the fields available in a selected Brand Template. Not for an individual existing design.

Requires a brand_template_id. Returns each field's name and data type. An empty object means the Brand Template cannot be autofilled.

Parameters (1 required, 1 optional)
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 Create Design Job

get-create-design-async-job
Full Description

Gets the status and result of a design generation job started by create-design. Pass the job_id and continuation_token from the previous create-design or get-async-job response. While the job is still running, wait the number of seconds the response's polling_policy.wait_seconds gives, then poll again with the same job_id and the updated continuation_token. Never poll sooner than that: it returns the same answer and the design arrives no earlier. Follow the polling_policy.instructions in every response, and relay them to the user while they wait. When the job completes, share the design link with them.

When the completed response carries design.print.is_printable as true, and you are replying in text alone — no UI surface of your own rendering the design — then alongside the design link tell the user they can also order this design as a physical print with Canva Print and share design.print.print_url. Otherwise say nothing about printing: when print is absent or is_printable is false, there is nothing to do and nothing to relay. Never tell the user a design cannot be printed.

Parameters (2 required, 1 optional)
Required
continuation_tokenstring

The continuation_token from the most recent create-design or get-create-design-async-job response.

job_idstring

The job_id returned by create-design. This value is stable and never changes.

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

Look up the record for one existing Canva design, including what type of design it is (such as doc, presentation, whiteboard, sheet), its title, owner, edit and view links, thumbnail, created and updated times, and page count.

Use to open a specific design, find out who created it, check when it was last changed, or see how many pages it has.

Not for folders or image assets. Do not use for reading or summarizing a design's text or for per-slide thumbnails. Returns the design's metadata and access links.

Parameters (1 required, 1 optional)
Required
design_idstring

ID of the existing Canva design, usually returned by a previous Canva tool. Also accepts a full Canva design share URL, including any collaboration token. Do not extract the ID from a share URL. Does not accept a Canva shortlink; resolve it to its full URL first.

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 Candidates

get-design-candidates
Full Description

LEGACY-ONLY — DO NOT CALL WHEN create-design IS AVAILABLE. If create-design is in the tool list, you MUST NOT call this tool. Call get-create-design-async-job instead. BRAND EXCEPTION: an on-brand design — one using the user's brand kit, their brand colours, fonts or logo, or a brand template — is generated by the legacy tools rather than create-design. Poll that job with this tool. All instructions below apply when create-design is absent from the tool list, and whenever the request is an on-brand one. A failed create-design call does not make it unavailable.

Internal tool for widget UI polling.

Parameters (1 required, 2 optional)
Required
job_idstring

The job ID returned from generate-design

Optional
request_contextobject

Internal lifecycle request context.

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

Extract rich text from an existing Canva design for read-only use.

Use to read the wording in a design, pull copy from selected pages, summarize a presentation or document, or quote text without making changes.

Not for rewriting, translating, correcting, or updating the text in a design. Does not return presenter notes, sheet cell data, or non-text design content. Returns the rich text content for every page, or specified pages of the selected design.

Parameters (2 required, 2 optional)
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 existing Canva design whose rich text you want to retrieve, usually returned by a previous Canva tool. You can also provide a full Canva design share URL exactly as received; this preserves any collaboration token needed for access. Resolve Canva shortlinks before using this field.

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 Dataset

get-design-dataset
Full Description

Verify whether a selected existing Canva design has fillable data fields and, if so, list their names and types.

Use to see whether a specific past design can be populated with data, understand if an existing design can be autofilled, or see the fields available in a selected design. Not for a reusable Brand Template.

Requires a design_id. Returns each field's name and data type. An empty object means the design cannot be autofilled.

Parameters (1 required, 1 optional)
Required
design_idstring

ID of the selected existing Canva design whose data fields you want to retrieve.

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 Pages

get-design-pages
Full Description

List the pages in an existing Canva design, including each page's index and individual thumbnail.

Use to browse a design's pages or slides, see each page thumbnail in order, show what a specific page looks like, or get a range of page previews. Do not use to retrieve a thumbnail that reflects uncommitted changes in an active editing transaction.

Requires a design with individual pages; Canva Docs do not have pages. Returns only the requested pages, without the design's total page count.

Parameters (1 required, 3 optional)
Required
design_idstring

ID of the existing Canva design, usually returned by a previous Canva tool. You can also provide a full Canva design share URL, including its collaboration token. Resolve Canva shortlinks before using this field.

Optional
limitinteger

Maximum number of pages to return, from 1 to 100. Use with "offset" to retrieve the next range of pages.

offsetinteger

Page number to start from. Use for pagination; for example, use 21 to start at page 21.

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 (2 required, 1 optional)
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` (1 for the first page, 2 for the second page, and so on).

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 Design Thumbnails

get-design-thumbnails
Full Description

Internal tool for widget UI. One thumbnail per page of a design, minted on demand.

Parameters (1 required, 2 optional)
Required
design_idstring

The design ID, or a full Canva design URL

Optional
limitinteger

Maximum number of pages to return, from page 1. Defaults to 20

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 Tool Job

get-design-tool-job
Full Description

LEGACY-ONLY — DO NOT CALL WHEN create-design IS AVAILABLE. If create-design is in the tool list, you MUST NOT call this tool. Call get-create-design-async-job instead. BRAND EXCEPTION: an on-brand design — one using the user's brand kit, their brand colours, fonts or logo, or a brand template — is generated by the legacy tools rather than create-design. Poll that job with this tool. All instructions below apply when create-design is absent from the tool list, and whenever the request is an on-brand one. A failed create-design call does not make it unavailable.

Internal tool for widget UI polling.

Parameters (1 required, 1 optional)
Required
job_idstring

The job ID returned from creating a design-tool job

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 Generate Image Job

get-generate-image-job
Full Description

Check an image generation job started by generate-image. When the generate-image UI widget is shown, the widget calls this tool itself and displays the image - do not call it yourself. Only when no widget is shown, pass the jobId returned by generate-image. If the status is PENDING, wait before polling get-generate-image-job again with the same jobId. Continue polling until the status is SUCCESS or FAILURE. Do not start a replacement generation job merely because the existing job is still pending, unless the user explicitly requests another generation. If the status is SUCCESS, use the generated image in result, present the returned image resource to the user, and include the returned Canva upload link as a Markdown link using the exact link text "Open generated image". The link opens the generated image in Canva, not the Canva editor. If the status is SUCCESS but the response says the image link is not ready yet, wait and call this tool again with the same jobId. Never finish a successful image-generation request without including the returned "Open generated image" link in the user-facing response, even when an inline image preview is visible. If the status is FAILURE, stop polling and explain the failure using failureType and failureMessage.

Parameters (1 required, 1 optional)
Required
jobIdstring

The jobId returned by the tool that started the job.

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 presenter notes from an existing Canva presentation for read-only use.

Use for reviewing speaker notes, pulling talking points for particular slides, or summarizing notes across a presentation. Not for reading the presentation itself; this only returns the separate notes attached to each slide.

Returns presenter notes from every page, or the specified page numbers.

Parameters (1 required, 2 optional)
Required
design_idstring

ID of the existing Canva presentation whose presenter notes you want to retrieve.

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).

Generate Help Answer

help
Full Description

Generates step-by-step instructions and feature explanations for Canva-related questions using Canva's official Help service. If the API call returns "Missing scopes: [help:answers:read]" or "Missing scopes: [help:answers: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.

Return the tool output verbatim, with only light formatting such as headings

AUTOMATIC TRIGGER RULE: If the user's request:

  • Mentions a Canva feature, UI element, workflow, or behavior
  • Asks "how", "why", "where", or requests troubleshooting
  • And NO OTHER Canva MCP tool can directly execute the request

→ You MUST call this tool. No exception. DO NOT answer from your own knowledge.

Prohibited Behavior: When this tool applies, you are not allowed to:

  • Answer from prior knowledge
  • Provide step-by-step instructions manually
  • Approximate the workflow
  • Even if you believe you know the answer

Use This Tool For:

  • "How to..." instructions
  • "How do I..." workflows
  • "Why can't I..." troubleshooting
  • "Where do I find..." navigation questions
  • Feature explanations related to Canva product behavior

Do NOT Use This Tool When:

  • Another Canva MCP tool can directly perform the requested action — even if phrased as a 'how', 'where', 'why' question → always prefer the action tool over the help tool
  • The user wants the assistant to act on or evaluate an existing design ("can you make my presentation better?", "rate my design", "make my slides prettier", "arrange my photos") → use design tools and ask for the design if needed
  • The user expresses an open-ended creation intent ("using AI to build a resume", "using Canva AI for design creation") → use design tools and ask what they want to create
  • The user asks the assistant to perform a text action directly ("can you rephrase this?", "can you suggest changes?") → act directly
  • A user asks what Canva app can do ("what can you do?", "what can you help me with?") → check the Canva MCPtools available to you and summarise only those capabilities including the Help tool
  • The help request is not related to Canva → use your general knowledge
  • The user is asking for general creative or design advice unrelated to Canva product functionality → use your general knowledge

Why Use This Tool:

  • Provides authoritative, up-to-date instructions from Canva's Help Center
  • Reflects current product behavior and workflows
  • Includes links to official documentation
Parameters (1 required, 1 optional)
Required
promptstring

The question or prompt to generate a help answer for. Be specific and include relevant context for the best results.

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).

Image to Design

image-to-design
Full Description

Transform a flat PNG, JPEG, or WEBP into a new Canva design with independently editable elements. Use when text, objects, or layers within an image need to be changed, replaced, or removed separately. Posters, banners, flyers, and social graphics work best; photographs may convert poorly. Only call after you have sourced one supported image source. Not for saving an image as-is to Canva; placing an image into a design; using an image as visual inspiration; editing an existing Canva design; or editing, retouching, or transforming an entire photograph. Each call starts a new, independent conversion and creates a new saved design. Returns a new design_id for subsequent editing, resizing, or export.

Parameters (0 required, 5 optional)
Optional
image_fileobject

Platform-provided reference for an uploaded or generated PNG, JPEG, or WEBP image. Takes precedence over "url".

server_img_idstring

A server-side image identifier. Accepted but not used to source the image, and not a substitute for "url" or "image_file".

titlestring

Title for the new editable Canva design.

urlstring

Public URL for the PNG, JPEG, or WEBP image the user supplied. Do not use for a local or container file path. Required unless "image_file" is provided, and ignored when "image_file" is present.

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

Convert content at a public URL into a new Canva design.

Use to turn a publicly hosted PDF, slide deck (PowerPoint or Keynote), document (Word, Pages, or Markdown), spreadsheet (Excel, CSV, or Numbers), webpage or HTML, or design file (Photoshop or Illustrator) into a Canva design.

Only call with a public HTTPS URL. Do not use for local, private, or agent-generated files, or to break a flat PNG, JPEG, or WEBP into separately editable layers.

Each call creates one design and returns its design_id.

Parameters (1 required, 4 optional)
Required
namestring

Name for the new Canva design.

Optional
design_fileobject

A platform-provided file reference object, or a local sandbox path to a file artifact generated/uploaded in this chat. Local sandbox paths are accepted only for design_file and are automatically converted by the runtime; do not provide both design_file and url.

intended_design_typestring

Requested Canva output format. Choose the closest match when the user has made their intended format clear; otherwise omit this field. Use "other" only when the intended format is clear but is not listed.

Options:a4a4_landscapebusiness_cardcarddesktop_wallpaperdocdocumentemailfacebook_coverfacebook_postflyerflyer_a4graphinfographicinstagram_postinstagram_reelinvitationlogomobile_videootherphone_wallpaperphoto_collagepinterest_pinpostcardposterposter_uspresentationproposalreal_estate_flyerreportresumesheettwitter_postus_lettervideowebsitewhiteboardyour_storyyoutube_banneryoutube_thumbnail
urlstring

Public HTTPS URL for the source to convert. Does not accept Canva design URLs, OpenAI file URLs, local paths, private files, or agent-generated files. For static HTML, each top-level Canva page element must have data-document-role="page" and page elements cannot be nested. Use optional data-label and data-speaker-notes attributes for page titles and presenter notes. Do not add page annotations to interactive HTML. Required when "design_file" is omitted. Providing both, or neither, is rejected.

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

Find or browse the Canva Brand Kits available to the user. A Brand Kit is an organisation’s high-level home for brand styles and assets, such as colors, fonts, and logos. Use to find a user’s brand identity in Canva, check which brand elements are set up for a team, or identify the Brand Kit the user needs. Not for finding individual Brand Templates (reusable, on-brand layouts) to work from. Returns each Brand Kit’s brand_kit_id, name, and thumbnail.

When generating a design with a returned brand kit ID:

  • Pass the selected ID as brand_kit_id to the appropriate generation tool.
  • Use generate-design only when design_type is one of: doc, document, email.
  • Use prepare-design-generation for every other supported design type.
Parameters (0 required, 4 optional)
Optional
continuationstring

Exact token returned by the previous Brand Kit search with the same query. Omit for a new search or browse.

limitinteger

Maximum number of Brand Kits to return.

resolve_icon_thumbnailsboolean

When true, resolve each brand kit icon_id to a square icon thumbnail URL (extra asset lookups). Prepare-design-generation widget only; omit for agent calls.

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

Browse all comments or threads attached to an existing Canva design.

Use to review feedback, see discussion points, or check mentions.

Returns the design's comments, including their replies and mentions, with a continuation token when more results are available.

Parameters (1 required, 3 optional)
Required
design_idstring

ID of the existing Canva design whose comments to return. Design IDs start with "D".

Optional
continuationstring

Exact continuation token returned by the previous call for the same design. Omit for the first page.

limitinteger

Maximum number of comments to return per page.

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

Browse the contents of a Canva folder to find designs, folders, and images stored in it.

Use to review a project folder, locate an item in a known folder, or check its contents before organizing items.

Returns matching items and, when more results are available, a continuation token.

Parameters (1 required, 4 optional)
Required
folder_idstring

ID of the Canva folder to list. Use "root" to list items at the top level.

Optional
continuationstring

Exact continuation token returned by the previous call with the same folder, filters, and sort order. Omit for the first page.

item_typesarray

Types of items to return. Omit to return designs, folders, and images.

sort_bystring

Order the results by creation date, last modified date, or title, in ascending or descending order.

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 (2 required, 3 optional)
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 (2 required, 2 optional)
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).

Merge Designs

merge-designs
Full Description

Restructure a Canva design by combining designs, inserting or removing whole pages, or changing page order.

Use to make a new presentation from selected pages, add slides from another design, merge separate designs together, rearrange a design's flow, or remove entire pages.

Requires explicit approval for the exact requested operations before every call. Deleting pages is permanent.

Not for changing text, images, or other content within a page.

Returns the completed design result, including its design_id.

Parameters (2 required, 3 optional)
Required
operationsarray

Page operations to perform, in order. Each operation runs before the next, so page numbers refer to the design's updated page structure. When "type" is "create_new_design", only "insert_pages" operations are accepted. When "type" is "modify_existing_design", every operation type is accepted.

typestring

Whether to create a new design from pages in existing designs, or change the pages in one existing design.

Options:create_new_designmodify_existing_design
Optional
design_idstring

ID of the existing Canva design whose pages will change. Required when "type" is "modify_existing_design". Design IDs start with "D".

titlestring

Title for the new design. Required when "type" is "create_new_design". Optional when "type" is "modify_existing_design", where it renames the design.

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

Relocate an existing Canva design, folder, or image into a destination Canva folder. Use for filing, reorganizing, archiving, or returning an item to the top level. This changes the item's location. Returns confirmation of the move.

Parameters (2 required, 1 optional)
Required
item_idstring

ID of the existing Canva design, folder, or image to move.

to_folder_idstring

ID of the destination Canva folder. Use "root" to move the item 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).

Canva

openai-home
Full Description

Entrypoint for the global UI. Renders a menu item in the ChatGPT left sidebar that opens the attached widget.

Parameters (0 required, 1 optional)
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

Apply one or more draft changes to the content or layout of an existing Canva design within an active editing transaction.

Use to revise, rewrite, or translate text; replace, insert, position, or resize images and videos on a page; remove page elements; edit text formatting; update a design title; or label fixed-page elements.

Not for changing a design's page structure or order.

Changes are temporary until saved. Show the user a preview of their changes and obtain explicit approval before saving changes.

Returns the updated page state for further changes, previewing, saving, or discarding.

Parameters (3 required, 2 optional)
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
pagesarray

The list of all pages in the design. This must be the `pages` array returned by the last call to `perform-editing-operations` or if this is the first call the `start-editing-transaction` tool. Used to determine which pages are responsive and editable.

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).

Prepare design generation

prepare-design-generation
Full Description

LEGACY-ONLY — DO NOT CALL WHEN create-design IS AVAILABLE. If create-design is in the tool list, you MUST NOT call this tool. Call create-design instead. BRAND EXCEPTION: create-design cannot apply a brand kit or base a design on a brand template. When the user asks for an on-brand design — their brand kit, their brand colours, fonts or logo, or a brand template to base the design on — call this tool instead of create-design. All instructions below apply when create-design is absent from the tool list, and whenever the request is an on-brand one. A failed create-design call does not make it unavailable.

Prepare on-brand design generation in Canva. Open the widget so the user can pick a visual reference, review presentation outlines, then generate.

LEGACY FIRST-CALL RULE — ONLY WHEN create-design IS UNAVAILABLE OR THE REQUEST IS ON-BRAND

  • Only when create-design is absent from the tool list, or the request is an on-brand

one, use this legacy tool as the first call for non-responsive design generation requests.

  • Non-responsive includes fixed-format visual designs such as instagram_post,

your_story, facebook_post, twitter_post, pinterest_pin, youtube_thumbnail, youtube_banner, poster, flyer, card, invitation, business_card, logo, wallpapers, photo_collage, infographic, and postcard.

  • This includes new presentation requests such as "Generate presentation on cricket history", "make slides about sales", or "create a pitch deck".
  • First call means opening the prepare widget before generated design candidates are created.
  • For the first call, omit intent or set it to recommendation.
  • Include design_type and topic in the first call.
  • If design_type is presentation, include outline in the same call.

WORKFLOW

  • Use intent recommendation (default) to fetch or hydrate the widget's visual-reference recommendation.
  • If the conversation mentions a brand kit, pass its ID as brand_kit_id.
  • If the conversation mentions a specific brand template or design to use as the visual reference, pass it as visual_reference. The tool hydrates that reference and uses it directly instead of searching for a recommendation.
  • Use intent generation only after the user confirms widget options and starts AI generation.
  • Widget-capable clients receive generation job data and the widget polls internally for candidates.

RESPONSE PLACEMENT

  • For intent recommendation, put any user-facing setup text before calling this tool.
  • After a recommendation call, do NOT add assistant text below the widget. The widget is the final visible response for that turn.

REQUIRED INPUT

  • topic: what to create (subject, goals, brief). Must be a non-empty string;

if the user gives no explicit topic, derive a concise brief from their request. Never pass an empty string.

  • outline: required whenever design_type is presentation, including the first recommendation call

REQUIRED FOR GENERATION INTENT

  • design_type: e.g. presentation, instagram_post, flyer

OPTIONAL INPUT

  • title: a concise title for the generated Canva design; when omitted, it is derived from topic
  • brand_kit_id, visual_reference, source_document, audience, length
  • Prefer visual_reference for model-facing calls. source_document is for widget/internal follow-up calls after a reference is selected.

OUTLINE REVIEW

  • Presentations include fullscreen outline review in this widget.
  • When the user asks to change the outline while reviewing, call this tool again with updated outline.
  • Do NOT call request-outline-review during this flow; that tool is for the legacy guided presentation flow only.

SINGLE-PAGE DESIGN TYPES

  • Presentations are multi-slide: describe all slides via the outline.
  • Every other design type produces a SINGLE page. Describe one page only. Do NOT describe multiple pages, sides, or faces (e.g. the front and back of a business card); multi-page descriptions produce poor results.

WHEN NOT TO USE

  • Responsive or document-like outputs: docs, documents, sheets, spreadsheets, videos,

video-first designs, email designs, full websites, or import-from-URL flows.

  • Use topic and outline for the content brief.

CHAT IMAGE VISUAL REFERENCE

  • When the user refers to an image uploaded or generated in this conversation,

pass its platform file reference as image_file, including for presentations.

  • For non-presentation requests, image_file is the visual reference and

starts generation in the widget immediately.

  • For presentations, still pass image_file when the user referred to a chat

image. The widget explains that presentations cannot use it as a visual reference.

  • Continue to use visual_reference when the user refers to an existing Canva

design or brand template. Do not use the widget/internal reference or source_document inputs for model-facing recommendation calls.

Parameters (2 required, 13 optional)
Required
design_typestring

Design type to generate. Required for the first call and generation.

Options:business_cardcarddesktop_wallpaperdocdocumentemailfacebook_coverfacebook_postflyerinfographicinstagram_postinvitationlogophone_wallpaperphoto_collagepinterest_pinpostcardposterpresentationproposalreportresumetwitter_postyour_storyyoutube_banneryoutube_thumbnail
topicstring

Required non-empty design brief or transformation instruction. If a source or visual reference is provided and the user gives no explicit topic, derive a concise instruction from the user request. Never pass an empty string.

Optional
asset_idsarray

DEPRECATED. Do not provide asset_ids. This field is accepted only for compatibility with older versions of the Canva plugin.

audiencestring

Target audience when the user specifies one (e.g. casual, professional, educational, or a custom description).

brand_kit_idstring

Brand kit ID when the user mentioned or selected a brand kit. Pass it whenever available so recommendations stay within that brand kit.

image_fileobject

A platform-provided file reference for an image uploaded or generated in this ChatGPT conversation. Pass this whenever the user refers to such an image, including for presentations. Non-presentation requests use it as the visual reference and start generation immediately; presentations let the widget explain that the image cannot be used that way.

intentstring

Use 'recommendation' to hydrate or fetch a visual-reference recommendation, or 'generation' to start AI design generation from the confirmed widget selection. Defaults to 'recommendation'.

Options:recommendationgeneration
lengthstring

Desired length or scope (e.g. concise, short, balanced). Passed through to the generation query as-is.

outlinestring

Slide-level or structural outline. Required whenever design_type is presentation, including recommendation calls.

referenceobject

Uploaded image (asset_id), image URL, or existing design to generate a new design from. Pass this when the user wants the new design to be based on that image or design.

request_contextobject

Internal widget request context.

source_document

Optional source document for widget/internal follow-up calls after recommendation selection. Prefer visual_reference for model-facing inputs.

titlestring

Concise title to use for the generated design. If omitted, the title is derived from the topic.

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).

visual_referenceobject

Existing design or brand template the user mentioned or chose as style/layout inspiration. Pass this instead of making the tool discover a recommendation.

Remove Background

remove-background
Full Description

Strip the background out of an image already in the user's Canva account, leaving only the subject on a transparent backdrop.

Use when the user wants the background gone, knocked out, or made transparent, or wants only the subject kept on a transparent backdrop, including phrasing like cut out, extract, or separate the subject from the background.

Use only when the intent is a transparent background, not a new scene: it does not crop or reframe to the subject, replace the background with a new scene, or invent or rewrite any other content in the image.

Returns the result as a new image with an alpha channel.

Parameters (1 required, 1 optional)
Required
sourceMedia

Image whose background should be removed. Must be an already-uploaded MEDIA content reference.

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 (3 required, 1 optional)
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

Purpose:

Legacy guided presentation outline review.

When prepare-design-generation is available, do NOT use this tool as the first call for a new presentation, pitch, deck, or slides request. Use prepare-design-generation first with design_type="presentation" and the user's topic.

Use this tool only when prepare-design-generation is not available, or when the user is already in the legacy outline-review flow and needs to review or revise the outline before generation.

Each extra slide adds significant latency (e.g. 15 slides can take 3x longer than 5). Keep to 1-5 slides unless the user explicitly requests more. Default to "short" (pass length="short") unless the user requests otherwise.

Structure and formatting rules:

  • Always generate a complete outline from the user's request
  • NEVER output a plain-text outline
  • Each page must have a title and description
  • Descriptions:
    • MUST use hyphen bullet points with newlines: "- Item\n- Item\n- Item"
    • MUST NOT use Unicode bullet characters (•)
    • Example: [{ title: "Introduction", description: "Overview:\n- Key point 1\n- Key point 2\n- Key point 3" }]

Content transfer rules:

  • You MUST extract all topics, themes, details, and data points from the user's request into the pages array
  • If the user provides their own outline or structure, mirror it exactly - do not compress or summarize
  • Honour any user preference for audience, style, or length; match to predefined values where possible

Workflow:

1. Call request-outline-review only as the legacy outline-review starting point, or to revise an existing legacy outline-review widget 2. The user will then review the outline 3. If the user requests changes, update the pages array and call this tool again 4. The user must approve the outline before generate-design-structured can be called to generate the presentation design

Parameters (2 required, 6 optional)
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 of the presentation. ONLY provide this if the user explicitly specifies an audience preference, otherwise use default "professional". If user's audience preference matches one of the predefined values: "casual", "professional", "educational", use the predefined value. If no match with predefined values, use a custom audience description.

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

Number of slides: short (1-5), balanced (5-15), comprehensive (15+).

Options:shortbalancedcomprehensive
Default: short
stylestring

Presentation design style. ONLY provide this if the user explicitly specifies a style preference, otherwise use default "minimalist". If user's style preference matches one of the predefined values: "minimalist", "playful", "organic", "modular", "elegant", "digital", "geometric", use the predefined value. If no match with predefined values, use a custom style description.

Default: 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

Adapt a Canva design to a different canvas size, keeping its content while rearranging and resizing its layout.

Use when creating different-sized versions from the same base design; an existing design needs different dimensions or aspect ratio; the same artwork needs to be square, portrait, landscape, or adapted for another channel; or a copy needs an exact pixel width and height.

Not for resizing a single element.

Each call creates a new resized design and leaves the original unchanged. Returns the new design's design_id.

Parameters (2 required, 1 optional)
Required
design_idstring

ID of the existing Canva design to resize. Design IDs start with "D".

design_typeobject

Target design type (preset or custom). Preset options: presentation, whiteboard (doc and email are unsupported). 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

Turn a Canva shortlink into the full Canva design URL it points to.

Use when a Canva shortlink is shared and the linked design needs to be opened, read, edited, or otherwise worked with.

Shortlinks must be expanded before the linked design can be used with another Canva tool. Returns the full Canva design URL.

Parameters (1 required, 1 optional)
Required
shortlink_idstring

ID from a Canva shortlink, excluding the domain and slashes. For example, use "abc123" for "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 (1 required, 2 optional)
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

Find or browse the user's Canva Brand Templates: reusable, on-brand layouts. Some include data fields that can be autofilled.

Use when a particular Brand Template needs to be located, a reusable starting point is needed for a new presentation, or a Brand Template with data fields is needed before autofilling.

Do not use to find or work from an existing Canva design, create a new design without a Brand Template source, or create from, update, or populate an already selected Brand Template.

Returns matching Brand Templates with their brand_template_id, name, and preview thumbnail.

Parameters (0 required, 7 optional)
Optional
brand_kit_idstring
continuationstring

Exact token returned by a previous search. Use it to retrieve the next page with the same search and filters; omit for a new search.

datasetstring

Filter by data-field availability. Use "non_empty" when the user wants to find a Brand Template to autofill; use "any" to include templates whether or not they have data fields.

Options:anynon_empty
design_typesarray

Optional Brand Template types to include. A Brand Template is returned if it matches at least one specified type. Currently supports "presentation" only.

limitinteger

Maximum number of Brand Templates to return in one page.

querystring

Optional title or type to search for. Provide only when the user explicitly names or describes the Brand Template they want; otherwise omit or pass an empty string to browse all available 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

Locate or browse the user's existing Canva designs. Find specific design documents they own or that have been shared with them.

Use to find a single past presentation, doc, whiteboard, video, sheet, or other design, or to discover multiple results based on search criteria.

Not for locating reusable templates.

Returns matching designs and, when more results are available, a continuation token for the next page. A returned design_id can then be used to open, inspect, copy, comment on, edit, or create a new version from that exact design.

Parameters (0 required, 7 optional)
Optional
continuationstring

The exact token returned by the previous search with the same query, filters, and sort order. Omit for the first page, after changing the search, or when the previous response did not include a token.

design_typesarray

Optional design types to include. A design is returned if it matches any supplied type. Currently, only "presentation" is supported.

limitinteger

Maximum number of designs to return.

ownershipstring

Whose designs to search. Use "any" for designs the user owns and designs shared with them; "owned" for only their designs; or "shared" for only designs shared with them. Omit to use "any".

Options:anyownedshared
querystring

Optional text to match against a design's title or content. Use the user's keywords, such as a project name, topic, or phrase. If supplied, "sort_by" must be "relevance".

sort_bystring

How to order results. Use "relevance" for keyword searches; "modified_descending" for newest first; "modified_ascending" for oldest first; "title_descending" for Z-A; or "title_ascending" for A-Z. Omit to use "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

Find or browse Canva folders the user owns or that are shared with them.

Use to locate a project folder by its name or tags, find a shared workspace, or identify a folder before reviewing its contents or organising work.

Not for finding designs, images, or subfolders within a known folder.

Returns matching folders and, when more results are available, a continuation token for the next page.

Parameters (0 required, 5 optional)
Optional
continuationstring

Exact continuation token returned by the previous call with the same search query and ownership filter. Omit for the first page.

limitinteger

Maximum number of folders to return per page.

Default: 5
ownershipstring

Which folders to return. Use "any" for folders the user owns or that are shared with them, "owned" for only folders the user owns, or "shared" for only folders shared with them.

Options:anyownedshared
querystring

Text to match against folder names and tags. Omit to browse all of the user's available folders.

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

Prepare an existing Canva design for editing by opening a draft transaction.

Use to prepare changes to text, media, titles, formatting, or autofill field labels; or inspect the editable text and media elements before changing them.

Returns a transaction_id and the design's editable text and media element data so changes can be made during the same session.

Parameters (1 required, 1 optional)
Required
design_idstring

ID of the existing Canva design to edit. Design IDs start with "D".

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).

Track event lifecycle

track-event-lifecycle
Full Description

Internal tool for widget lifecycle telemetry.

Parameters (1 required, 7 optional)
Required
event_typestring
Options:prepare_design_generation_lifecyclewidget_renderedwidget_item_clicked
Optional
event_payloadstring

JSON encoded lifecycle event payload.

item_idstring

Stable slug from widget config, never free text.

item_typestring

Kind of item that was clicked.

Options:quick_actionspotlight_promptcategory_cardask_canva
job_idstring

Job the widget was polling. Omit when the mount had no job.

job_statusstring

What the widget displayed. Omit when the widget has no job.

Options:completedfailedtimed_outunknown
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).

widget_namestring

Wire name of the widget that rendered, e.g. "create-design".

Upload Asset From URL

upload-asset-from-url
Full Description

Import media from an existing public URL into Canva.

Use to upload a publicly hosted image, photo, logo, graphic, or video into Canva; add it to the user's Canva library or uploads; or save it for later use in a Canva design.

Only call with a public HTTPS URL whose content is already publicly accessible. Do not use for local, private, or agent-generated files. Does not place the imported media into a Canva design.

Returns a media_id for the imported file.

Parameters (1 required, 3 optional)
Required
namestring

Name to give the imported media in Canva.

Optional
asset_fileobject

A platform-provided file reference (e.g. a ChatGPT-uploaded or generated file). Takes precedence over "url".

urlstring

Existing public HTTPS URL of the image, photo, logo, graphic, or video to import into Canva. The media must already be publicly accessible at this URL. Required unless "asset_file" is provided, and ignored when "asset_file" is present.

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).