canva_create_ designCreates a new Canva design.
Find a design by name and export it as a PDF or PNG, turn a PowerPoint into an editable Canva design, fill your brand template with this week's numbers, and resize the result for Instagram, all from your AI client.
PopMCPCanva
Every Canva REST API call a signed-in user can make, from designs and exports to folders, uploads, imports, brand templates, autofill and comments, plus the design changes PopMCP can watch.
64 tools in the full catalog: 38 read and 26 write. 31 load by default, and the rest are found with tool search.
canva_create_ designCreates a new Canva design.
canva_delete_ assetYou can delete an asset by specifying its assetId.
canva_describe_ designEverything about one Canva design in one call: title, owner, page count, type, edit and view links, the export formats it supports (with the pages each one covers), its autofill data fields if it has any, and its pages with their sizes.
canva_get_ assetYou can retrieve the metadata of an asset by specifying its assetId.
canva_get_ designGets the metadata for a design.
canva_get_ design_ datasetGets the dataset definition of a design.
canva_get_ design_ export_ formatsLists the available file formats for exporting a design.
canva_list_ design_ pagesPreview at Canva: Lists metadata for pages in a design, such as page-specific thumbnails.
canva_list_ designsLists metadata for all the designs in a Canva user's projects.
canva_update_ assetYou can update the name and tags of an asset by specifying its assetId.
canva_upload_ assetUpload an image or video to the user's Canva uploads in one call, from a public URL or from base64 content, and wait for it to be ready.
canva_wait_ for_ jobWait for a Canva job started earlier (an export, upload, import, autofill, resize, merge or generation) and return its result: download links for an export, the asset for an upload, the design for the others.
canva_import_ designTurn a file made elsewhere into an editable Canva design in one call, from a public URL or base64 content: PDF, PowerPoint (ppt, pptx), Word (doc, docx), Excel (xls, xlsx), Keynote, Pages, Numbers, Illustrator (ai), Photoshop (psd), Affinity or OpenOffice.
canva_create_ folderCreates a folder in one of the following locations: - The top level of a Canva user's projects (using the ID root), - The user's Uploads folder (using the ID uploads), - Another folder (using the parent folder's ID).
canva_delete_ folderDeletes a folder with the specified folderID.
canva_get_ folderGets the name and other details of a folder using a folder's folderID.
canva_list_ folder_ itemsLists the items in a folder, including each item's type.
canva_move_ folder_ itemMoves an item to another folder.
canva_update_ folderUpdates a folder's details using its folderID.
canva_create_ comment_ replyPreview at Canva: Creates a reply to a comment or suggestion thread on a design.
canva_create_ comment_ threadPreview at Canva: Creates a new comment thread on a design.
canva_list_ comment_ repliesPreview at Canva: Retrieves a list of replies for a comment or suggestion thread on a design.
canva_get_ brand_ templateRetrieves the metadata for a brand template.
canva_get_ brand_ template_ datasetGets the dataset definition of a brand template.
canva_list_ brand_ templatesGet a list of the brand templates the user has access to.
canva_autofill_ designCreate a design from a brand template (or from a design with data fields) filled with your text, images and chart data, in one call.
canva_export_ designExport a Canva design as a file and return its download links in one call: PDF, PNG, JPG, GIF, PowerPoint (pptx), MP4 video, HTML (email designs) or CSV (Canva Sheets).
canva_generate_ designHave Canva's AI generate a presentation or a Canva Doc from a brief, saved in the user's Canva account, and return it with its edit link.
canva_get_ user_ capabilitiesLists the API capabilities for the user account associated with the provided access token.
canva_get_ user_ profileCurrently, this returns the display name of the user account associated with the provided access token.
canva_resize_ designMake a resized copy of a Canva design in one call (the original is not changed) and return the new design with its edit link.
canva_create_ asset_ upload_ jobStarts a new asynchronous job to upload an asset to the user's content library.
canva_create_ url_ asset_ upload_ jobStarts a new asynchronous job to upload an asset from a URL to the user's content library.
canva_get_ asset_ upload_ jobGet the result of an asset upload job that was created using the Create asset upload job API.
canva_get_ url_ asset_ upload_ jobGet the result of an asset upload job that was created using the Create asset upload job via URL API.
canva_create_ design_ import_ jobStarts a new asynchronous job to import an external file as a new design in Canva.
canva_create_ image_ to_ design_ jobPreview at Canva: Starts a new asynchronous job to convert an image into an editable design in Canva, using Magic Layers.
canva_create_ url_ import_ jobStarts a new asynchronous job to import an external file from a URL as a new design in Canva.
canva_get_ design_ import_ jobGets the result of a design import job created using the Create design import job API.
canva_get_ image_ to_ design_ jobPreview at Canva: Gets the result of an image-to-design import job created using the Create image-to-design import job API.
canva_get_ url_ import_ jobGets the result of a URL import job created using the Create URL import job API.
canva_get_ comment_ replyPreview at Canva: Gets a reply to a comment or suggestion thread on a design.
canva_get_ comment_ threadPreview at Canva: Gets a comment or suggestion thread on a design.
canva_get_ design_ analyticsPreview at Canva: Gets the aggregated analytics for a design.
canva_get_ design_ page_ viewsPreview at Canva: Lists the page-level view duration data for a design.
canva_get_ design_ views_ over_ timePreview at Canva: Lists the view counts over time for a design.
canva_list_ design_ trackable_ linksPreview at Canva: Lists trackable links and their metrics for a design.
canva_list_ design_ viewersPreview at Canva: Lists viewers for a design, ordered by most recent view first.
canva_publish_ brand_ templatePreview at Canva: Publishes a design as a brand template.
canva_create_ design_ autofill_ jobStarts a new asynchronous job to autofill a Canva design using input data.
canva_create_ design_ export_ jobStarts a new asynchronous job to export a file from Canva.
canva_create_ design_ generation_ jobPreview at Canva: Starts a new asynchronous job to generate a Canva design from a text brief.
canva_create_ design_ resize_ jobStarts a new asynchronous job to create a resized copy of a design.
canva_get_ current_ userReturns the User ID and Team ID of the user account associated with the provided access token.
canva_get_ design_ autofill_ jobGet the result of a design autofill job that was created using the Create design autofill job API.
canva_get_ design_ export_ jobGets the result of a design export job that was created using the Create design export job API.
canva_get_ design_ generation_ jobPreview at Canva: Gets the status and result of a design generation job created using the Create design generation job API.
canva_get_ design_ resize_ jobGets the result of a design resize job that was created using the Create design resize job API.
canva_create_ design_ merge_ jobPreview at Canva: Starts a new asynchronous job to merge design pages by applying page operations (such as insert, move, or delete) to produce a new design or modify an existing one.
canva_create_ image_ generation_ jobPreview at Canva: Starts a new asynchronous job to generate an image from a plain-text prompt.
canva_create_ image_ transformation_ jobPreview at Canva: Starts a new asynchronous job to apply one or more transformations to an image asset.
canva_get_ design_ merge_ jobPreview at Canva: Gets the result of a design merge job that was created using the Create design merge job API.
canva_get_ image_ generation_ jobPreview at Canva: Gets the result of an image generation job that was created using the Create image generation job API.
canva_get_ image_ transformation_ jobPreview at Canva: Gets the result of an image transformation job that was created using the Create image transformation job API.
Authorize once, then an endpoint your client signs into. Nothing to deploy, and nothing to install on the Canva side.
In the Canva Developer Portal create a public app, turn on Canva REST APIs under Outside Canva, tick the scopes PopMCP lists and add its redirect URL. Enter the app's Client ID and secret in PopMCP and sign in with Canva. Your Canva account needs multi-factor authentication first.
OC-AZ1b2C3d4E5f••••••••••••3f7aCreating, uploading, importing, resizing, autofilling, moving and deleting happen the moment the AI calls them, and deleting a folder sends what is in it to Canva's Trash. Connections start read-only; exports stay available because they change nothing in Canva.
Drop the PopMCP URL into Claude, ChatGPT, Claude Code, Codex or any other supported client. It signs in through PopMCP with OAuth, so your Canva credential never leaves the server.
app.popmcp.com/mcpAsk for something harmless before the agent changes anything. Writes run as soon as it calls them, so confirm it reads the right account first.
Find our Q3 sales deck and export it as a PDF I can send to the board
canva_list_designsok
Then just ask for the work
“Find our Q3 sales deck and export it as a PDF I can send to the board”
“Turn the PowerPoint at this link into an editable Canva design”
“Fill our weekly promo template with this headline and product photo, then make an Instagram Story version”
“Make a Spring Campaign folder and move every design with spring in the title into it”
“Which file types can I export the onboarding guide as, and does it have autofill fields?”
One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.
Add the PopMCP URL under Customize → Connectors and the tools appear in every chat.
The same endpoint, registered in the browser. Nothing to install on the machine you are working from.
Register PopMCP as a custom connector, then let ChatGPT read and update the account.
Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.
Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.
Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.
FAQ
What teams ask before putting Canva behind an AI client.
A Canva app of your own until PopMCP's Canva app is approved. In the Canva Developer Portal choose Create an app and pick Public, open Outside Canva and click Start integrating, turn on Canva REST APIs, tick the scopes PopMCP lists and add PopMCP's redirect URL. Enter the Client ID and a generated client secret in PopMCP, click Sign in with Canva and approve access. The app works for your own account straight away, with no review.
Most of it works on every plan, Free included: designs, exports, folders, uploads, imports and comments. Resizing, autofill and brand templates need Canva Pro, Teams or Enterprise, and free accounts get a small trial of resize and autofill. Design analytics needs Canva Enterprise, and AI generation uses your Canva AI credits. The connection shows which of these features your account has.
export_design starts the export, waits for Canva to finish and returns the download links: one file for a PDF or PowerPoint, one image per page for PNG and JPG. The links expire after 24 hours, so download or share them soon. Canva allows each user 75 exports every five minutes and 500 a day.
Not freely: Canva's REST APIs do not edit the elements of a design. The AI can fill a brand template or a design with data fields with your text, images and chart data, copy, merge or resize designs, and leave comments. For any other change it hands you the design's edit link and you make it in Canva.
New designs, edited designs, designs that are deleted or no longer shared with you, and brand templates that are published or updated. PopMCP spots them by comparing your design and brand template lists, so they show up within minutes rather than instantly.
Canva marks some APIs as previews: comment threads, page details, merging pages, design and image generation, background removal, publishing brand templates and design analytics. They work on a connection made with your own Canva app. Canva does not allow previews in the apps it publishes, so PopMCP's own Canva app will not offer them once it is available.
No. PopMCP hosts it and gives you a Streamable HTTP MCP URL. There is nothing to deploy, no callback URL to register, and no infrastructure to keep running or patch.
Any client that supports a remote Streamable HTTP MCP server: Claude Desktop, Claude Web, Claude Code, ChatGPT custom connectors, Codex and the Codex CLI, OpenCode and Z.ai's ZCode, as well as editors such as Cursor, Windsurf and Zed. Your client signs in to PopMCP with OAuth; the provider credential never leaves the server.
Connect Canva in PopMCP first, then run claude mcp add --transport http popmcp https://app.popmcp.com/mcp in a terminal. Inside Claude Code, run /mcp and sign in to PopMCP in the browser window it opens, ticking Canva on the consent screen. The Canva tools are then available in that session, and no Canva credential is stored on your machine.
Loading 64 tool definitions into every conversation burns context before the work starts. PopMCP loads a curated 31-tool set covering the everyday workflows and keeps the rest searchable, so your AI pulls a specialist tool only when a task needs it. Every tool stays searchable, and on Scale the owner can load the full catalog for a teammate's connection.
A tool is something your AI calls, and there are 64 here. A trigger is something PopMCP watches for you: 5 Canva events that can start work on the PopMCP side. Triggers never enter your AI client's context, and none of them ask you to paste a callback URL into Canva.
Launch a hosted MCP endpoint for Canva, keep tool access under control, and start testing real workflow prompts right away.