Canva integration for AI agents.
Canva integration for AI agents with secure authentication and server-side credential injection. Open Connector runs the OAuth, seals the token in an encrypted vault, and serves Canva tools to your agent over MCP or a typed API — credentials injected server-side, every call audited, nothing leaving your infrastructure. Open source (AGPL-3.0) and self-hostable.
Real Canva actions, managed and audited.
Your user connects Canva once; your agent can then create and manage Canva designs, assets, folders, comments, exports, and brand templates — scoped to the OAuth permissions you grant and the tool allowlist you configure. Every action is least-privilege and written to a tamper-evident audit trail.
- 1
Your user grants Canva access once (OAuth) — the token lands in the vault.
- 2
Your agent calls a tool over MCP or the typed API; Open Connector injects the credential server-side.
- 3
Every routed call appends a hash-chained audit record — nothing leaves your infra.
Supported Canva tools.
56 tools are generated from the published Canva catalog. Descriptions are plain text; each action remains subject to its configured authentication and tool allowlist.
Showing 56 tools. All published catalog entries are included in this page's server-rendered HTML.
- CreateAssetUploadJob
- Starts a new [asynchronous job](https://www.canva.dev/docs/connect/api-requests-responses/#asynchronous-job-endpoints) to upload an asset to the user's content library. Supported file types for assets are listed in the [Assets API overview](https://www.canva.dev/docs/connect/api-reference/assets/). The request format for this endpoint is an `application/octet-stream` body of bytes. Attach information about the upload using an `Asset-Upload-Metadata` header. <Note> For more information on the workflow for using asynchronous jobs, see [API requests and responses](https://www.canva.dev/docs/connect/api-requests-responses/#asynchronous-job-endpoints). You can check the status and get the results of asset upload jobs created with this API using the [Get asset upload job API](https://www.canva.dev/docs/connect/api-reference/assets/get-asset-upload-job/). </Note>
- asset
- CreateComment
- <Warning> This preview API is deprecated. You should use the [Create thread](https://www.canva.dev/docs/connect/api-reference/comments/create-thread/) API instead. </Warning> Create a new top-level comment on a design. For information on comments and how they're used in the Canva UI, see the [Canva Help Center](https://www.canva.com/help/comments/). A design can have a maximum of 1000 comments.
- comment
- CreateDesign
- Creates a new Canva design. To create a new design, you can: - Use a preset design type. - Set height and width dimensions for a custom design. NOTE: Custom designs can have a maximum area of 25,000,000 pixels squared (for example, 5000 × 5000 pixels). Each dimension can be between 40 and 8000 pixels, but the total area must stay within this limit. - Create a copy of an existing design (currently a [preview feature](https://www.canva.dev/docs/connect/#preview-apis)). - Create a new design from a brand template (currently a [preview feature](https://www.canva.dev/docs/connect/#preview-apis)). For preset and custom designs, you can also provide the `asset_id` of an asset in the user's [projects](https://www.canva.com/help/find-designs-and-folders/) to add to the new design. Currently, this only supports image assets. To list the assets in a folder in the user's projects, use the [List folder items API](https://www.canva.dev/docs/connect/api-reference/folders/list-folder-items/). NOTE: Blank designs created with this API are automatically deleted if they're not edited within 7 days. These blank designs bypass the user's Canva trash and are permanently deleted.
- design
- CreateDesignAutofillJob
- WARNING: Brand templates were migrated to use a new ID format in September 2025. If your integration stores brand template IDs, you'll need to migrate to use the new IDs. Old brand template IDs will continue to be accepted for 6 months to give you time to migrate to the new IDs. <Availability> To use this API, your integration must act on behalf of a user who is a member of a [Canva Enterprise](https://www.canva.com/enterprise/) organization. Users on Canva paid plans have access to a limited trial while your integration is under development. For more information, see [Trial quotas](https://www.canva.dev/docs/connect/api-requests-responses/#trial-quotas). </Availability> Starts a new [asynchronous job](https://www.canva.dev/docs/connect/api-requests-responses/#asynchronous-job-endpoints) to autofill a new Canva design using input data. Use the `type` field to choose the source of the design: - `create_from_brand_template`: autofill a new design from a brand template. If `type` isn't specified in the request, the request type is assumed to be `create_from_brand_template`. To get a list of input data fields for a brand template, use the [Get brand template dataset API](https://www.canva.dev/docs/connect/api-reference/brand-templates/get-brand-template-dataset/). - `create_from_design`: autofill a new design from an existing design that contains autofill data fields. To get the input data fields for an existing design, use the [Get design dataset API](https://www.canva.dev/docs/connect/api-reference/designs/get-design-dataset/). WARNING: Creating an autofilled design from an existing design is a [preview feature](https://www.canva.dev/docs/connect/#preview-apis). There might be unannounced breaking changes to this feature which won't produce a new API version. Available data field types to autofill include: - Images (which you can autofill with an image or a video asset) - Text - Charts - Sheets WARNING: Chart and sheet data fields and autofilling a video are [preview features](https://www.canva.dev/docs/connect/#preview-apis). There might be unannounced breaking changes to these features which won't produce a new API version. NOTE: For more information on the workflow for using asynchronous jobs, see [API requests and responses](https://www.canva.dev/docs/connect/api-requests-responses/#asynchronous-job-endpoints). You can check the status and get the results of autofill jobs created with this API using the [Get design autofill job API](https://www.canva.dev/docs/connect/api-reference/autofills/get-design-autofill-job/).
- autofill
- CreateDesignExportJob
- Starts a new [asynchronous job](https://www.canva.dev/docs/connect/api-requests-responses/#asynchronous-job-endpoints) to export a file from Canva. Once the exported file is generated, you can download it using the URL(s) provided. The download URLs are only valid for 24 hours. The request requires the design ID and the exported file format type. Supported file formats (and export file type values): JPG (`jpg`), PNG (`png`), GIF (`gif`), Microsoft PowerPoint (`pptx`), MP4 (`mp4`), PDF (`pdf`), CSV (`csv`), HTML bundle (`html_bundle`), and standalone HTML (`html_standalone`). <Note> This endpoint has the following additional rate limits: - **Integration throttle:** Each integration can export a maximum of 750 times per 5-minute window, and 5,000 times per 24-hour window. - **Document throttle:** Each document can be exported a maximum of 75 times per 5-minute window. - **User throttle:** Each user can export a maximum of 75 times per 5-minute window, and 500 times per 24-hour window. </Note> <Note> For more information on the workflow for using asynchronous jobs, see [API requests and responses](https://www.canva.dev/docs/connect/api-requests-responses/#asynchronous-job-endpoints). You can check the status and get the results of export jobs created with this API using the [Get design export job API](https://www.canva.dev/docs/connect/api-reference/exports/get-design-export-job/). </Note>
- export
- CreateDesignImportJob
- Starts a new [asynchronous job](https://www.canva.dev/docs/connect/api-requests-responses/#asynchronous-job-endpoints) to import an external file as a new design in Canva. The request format for this endpoint has an `application/octet-stream` body of bytes, and the information about the import is provided using an `Import-Metadata` header. Supported file types for imports are listed in [Design imports overview](https://www.canva.dev/docs/connect/api-reference/design-imports/#supported-file-types). <Note> For more information on the workflow for using asynchronous jobs, see [API requests and responses](https://www.canva.dev/docs/connect/api-requests-responses/#asynchronous-job-endpoints). You can check the status and get the results of design import jobs created with this API using the [Get design import job API](https://www.canva.dev/docs/connect/api-reference/design-imports/get-design-import-job/). </Note>
- design_import
- CreateDesignMergeJob
- <Warning> This API is currently provided as a preview. Be aware of the following: - There might be unannounced breaking changes. - Any breaking changes to preview APIs won't produce a new [API version](https://www.canva.dev/docs/connect/versions/). - Public integrations that use preview APIs will not pass the review process, and can't be made available to all Canva users. </Warning> Starts a new [asynchronous job](https://www.canva.dev/docs/connect/api-requests-responses/#asynchronous-job-endpoints) to merge design pages by applying page operations (such as insert, move, or delete) to produce a new design or modify an existing one. When the job completes successfully, the job result includes metadata for the created or updated design. <Note> At this stage, only a single operation per request is supported by default, and passing multiple operations will fail. Contact Canva to enable multi-operation mode for your integration. </Note> <Note> For more information on the workflow for using asynchronous jobs, see [API requests and responses](https://www.canva.dev/docs/connect/api-requests-responses/#asynchronous-job-endpoints). You can check the status and get the results of jobs created with this API using the [Get design merge job API](https://www.canva.dev/docs/connect/api-reference/merges/get-design-merge-job/). </Note>
- merge
- CreateDesignResizeJob
- <Availability> To use this API, your integration must act on behalf of a user that's on a Canva plan with premium features (such as Canva Pro). Users on the Canva Free plan have access to a limited trial. For more information, see [Trial quotas](https://www.canva.dev/docs/connect/api-requests-responses/#trial-quotas). </Availability> Starts a new [asynchronous job](https://www.canva.dev/docs/connect/api-requests-responses/#asynchronous-job-endpoints) to create a resized copy of a design. The new resized design is added to the top level of the user's [projects](https://www.canva.com/help/find-designs-and-folders/) (`root` folder). To resize a design into a new design, you can either: - Use a preset design type. - Set height and width dimensions for a custom design. Note the following behaviors and restrictions when resizing designs: - Designs can be resized to a maximum area of 25,000,000 pixels squared. - Resizing designs using the Connect API always creates a new design. In-place resizing is currently not available in the Connect API, but can be done in the Canva UI. - Resizing a multi-page design results in all pages of the design being resized. Resizing a section of a design is only available in the Canva UI. - [Canva docs](https://www.canva.com/create/documents/) and [emails](https://www.canva.com/emails/) can't be resized, and other design types can't be resized to a Canva doc or email. - Canva Code designs can't be resized, and other design types can't be resized to a Canva Code design. <Note> For more information on the workflow for using asynchronous jobs, see [API requests and responses](https://www.canva.dev/docs/connect/api-requests-responses/#asynchronous-job-endpoints). You can check the status and get the results of resize jobs created with this API using the [Get design resize job API](https://www.canva.dev/docs/connect/api-reference/resizes/get-design-resize-job/). </Note>
- resize
- CreateFolder
- Creates a folder in one of the following locations: - The top level of a Canva user's [projects](https://www.canva.com/help/find-designs-and-folders/) (using the ID `root`), - The user's Uploads folder (using the ID `uploads`), - Another folder (using the parent folder's ID). When a folder is successfully created, the endpoint returns its folder ID, along with other information.
- folder
- CreatePrintPartnerDesign
- <Warning> This API is currently provided as a preview. Be aware of the following: - There might be unannounced breaking changes. - Any breaking changes to preview APIs won't produce a new [API version](https://www.canva.dev/docs/connect/versions/). - Public integrations that use preview APIs will not pass the review process, and can't be made available to all Canva users. </Warning> AVAILABILITY: This API is only available to Print Partners. Creates a new Canva design using a Print Partner product ID. Print partner proofing information (such as bleed and page constraints) can optionally be provided in the request. The design URLs that are returned include this information, which Canva applies in the editor when opening the design. NOTE: Blank designs created with this API are automatically deleted if they're not edited within 7 days. These blank designs bypass the user's Canva trash and are permanently deleted.
- design
- CreatePrintPartnerDesignExportJob
- <Warning> This API is currently provided as a preview. Be aware of the following: - There might be unannounced breaking changes. - Any breaking changes to preview APIs won't produce a new [API version](https://www.canva.dev/docs/connect/versions/). - Public integrations that use preview APIs will not pass the review process, and can't be made available to all Canva users. </Warning> AVAILABILITY: This API is only available to Print Partners. Starts a new [asynchronous job](https://www.canva.dev/docs/connect/api-requests-responses/#asynchronous-job-endpoints) to export a Print Partner file from Canva. Once the exported file is generated, you can download it using the URL(s) provided. The download URLs are only valid for 24 hours. The request requires the design ID and exports a file as a print-quality PDF. <Note> For more information on the workflow for using asynchronous jobs, see [API requests and responses](https://www.canva.dev/docs/connect/api-requests-responses/#asynchronous-job-endpoints). You can check the status and get the results of export jobs created with this API using the [Get design export job API](https://www.canva.dev/docs/connect/api-reference/exports/get-design-export-job/). </Note>
- export
- CreateReply
- <Warning> This API is currently provided as a preview. Be aware of the following: - There might be unannounced breaking changes. - Any breaking changes to preview APIs won't produce a new [API version](https://www.canva.dev/docs/connect/versions/). - Public integrations that use preview APIs will not pass the review process, and can't be made available to all Canva users. </Warning> Creates a reply to a comment or suggestion thread on a design. To reply to an existing thread, you must provide the ID of the thread which is returned when a thread is created, or from the `thread_id` value of an existing reply in the thread. Each thread can have a maximum of 100 replies created for it. For information on comments and how they're used in the Canva UI, see the [Canva Help Center](https://www.canva.com/help/comments/).
- comment
- CreateThread
- <Warning> This API is currently provided as a preview. Be aware of the following: - There might be unannounced breaking changes. - Any breaking changes to preview APIs won't produce a new [API version](https://www.canva.dev/docs/connect/versions/). - Public integrations that use preview APIs will not pass the review process, and can't be made available to all Canva users. </Warning> Creates a new comment thread on a design. For information on comments and how they're used in the Canva UI, see the [Canva Help Center](https://www.canva.com/help/comments/).
- comment
- CreateUrlAssetUploadJob
- <Warning> This API is currently provided as a preview. Be aware of the following: - There might be unannounced breaking changes. - Any breaking changes to preview APIs won't produce a new [API version](https://www.canva.dev/docs/connect/versions/). - Public integrations that use preview APIs will not pass the review process, and can't be made available to all Canva users. </Warning> Starts a new [asynchronous job](https://www.canva.dev/docs/connect/api-requests-responses/#asynchronous-job-endpoints) to upload an asset from a URL to the user's content library. Supported file types for assets are listed in the [Assets API overview](https://www.canva.dev/docs/connect/api-reference/assets/). <Note> Uploading a video asset from a URL is limited to a maximum 100MB file size. For importing larger video files, use the [Create asset upload job API](https://www.canva.dev/docs/connect/api-reference/assets/create-asset-upload-job/). </Note> <Note> For more information on the workflow for using asynchronous jobs, see [API requests and responses](https://www.canva.dev/docs/connect/api-requests-responses/#asynchronous-job-endpoints). You can check the status and get the results of asset upload jobs created with this API using the [Get asset upload job via URL API](https://www.canva.dev/docs/connect/api-reference/assets/get-url-asset-upload-job/). </Note>
- asset
- CreateUrlImportJob
- Starts a new [asynchronous job](https://www.canva.dev/docs/connect/api-requests-responses/#asynchronous-job-endpoints) to import an external file from a URL as a new design in Canva. Supported file types for imports are listed in [Design imports overview](https://www.canva.dev/docs/connect/api-reference/design-imports/#supported-file-types). <Note> For more information on the workflow for using asynchronous jobs, see [API requests and responses](https://www.canva.dev/docs/connect/api-requests-responses/#asynchronous-job-endpoints). You can check the status and get the results of design import jobs created with this API using the [Get URL import job API](https://www.canva.dev/docs/connect/api-reference/design-imports/get-url-import-job/). </Note>
- design_import
- DeleteAsset
- You can delete an asset by specifying its `assetId`. This operation mirrors the behavior in the Canva UI. Deleting an item moves it to the trash. Deleting an asset doesn't remove it from designs that already use it.
- asset
- DeleteFolder
- Deletes a folder with the specified `folderID`. Deleting a folder moves the user's content in the folder to the [Trash](https://www.canva.com/help/deleted-designs/) and content owned by other users is moved to the top level of the owner's [projects](https://www.canva.com/help/find-designs-and-folders/).
- folder
- GetAppJwks
- Returns the Json Web Key Set (public keys) of an app. These keys are used to verify JWTs sent to app backends.
- app
- GetAsset
- You can retrieve the metadata of an asset by specifying its `assetId`.
- asset
- GetAssetUploadJob
- Get the result of an asset upload job that was created using the [Create asset upload job API](https://www.canva.dev/docs/connect/api-reference/assets/create-asset-upload-job/). You might need to make multiple requests to this endpoint until you get a `success` or `failed` status. For more information on the workflow for using asynchronous jobs, see [API requests and responses](https://www.canva.dev/docs/connect/api-requests-responses/#asynchronous-job-endpoints).
- asset
- GetBrandTemplate
- WARNING: Brand templates were migrated to use a new ID format in September 2025. If your integration stores brand template IDs, you'll need to migrate to use the new IDs. Old brand template IDs will continue to be accepted for 6 months to give you time to migrate to the new IDs. AVAILABILITY: To use this API, your integration must act on behalf of a user that's on a Canva plan with access to brand templates (such as Canva Pro, Canva Teams, or Canva Enterprise). Retrieves the metadata for a brand template.
- brand_template
- GetBrandTemplateDataset
- WARNING: Brand templates were migrated to use a new ID format in September 2025. If your integration stores brand template IDs, you'll need to migrate to use the new IDs. Old brand template IDs will continue to be accepted for 6 months to give you time to migrate to the new IDs. AVAILABILITY: To use this API, your integration must act on behalf of a user that's on a Canva plan with access to brand templates (such as Canva Pro, Canva Teams, or Canva Enterprise). Gets the dataset definition of a brand template. If the brand template contains autofill data fields, this API returns an object with the data field names and the type of data they accept. <Note> To get the dataset definition of a design, use the [Get design dataset API](https://www.canva.dev/docs/connect/api-reference/designs/get-design-dataset/). </Note> Available data field types include: - Images (which you can autofill with an image or a video asset) - Text - Charts You can autofill a brand template using the [Create a design autofill job API](https://www.canva.dev/docs/connect/api-reference/autofills/create-design-autofill-job/). WARNING: Chart data fields and autofilling a video are [preview features](https://www.canva.dev/docs/connect/#preview-apis). There might be unannounced breaking changes to these features which won't produce a new API version.
- brand_template
- GetDesign
- Gets the metadata for a design. This includes owner information, URLs for editing and viewing, and thumbnail information.
- design
- GetDesignAnalytics
- <Warning> This API is currently provided as a preview. Be aware of the following: - There might be unannounced breaking changes. - Any breaking changes to preview APIs won't produce a new [API version](https://www.canva.dev/docs/connect/versions/). - Public integrations that use preview APIs will not pass the review process, and can't be made available to all Canva users. </Warning> <Availability> To use this API, your integration must act on behalf of a user who is a member of a [Canva Enterprise](https://www.canva.com/enterprise/) organization. </Availability> Gets the aggregated analytics for a design. The response includes total views, unique viewers, and view duration metrics.
- analytics
- GetDesignAnalyticsLinks
- <Warning> This API is currently provided as a preview. Be aware of the following: - There might be unannounced breaking changes. - Any breaking changes to preview APIs won't produce a new [API version](https://www.canva.dev/docs/connect/versions/). - Public integrations that use preview APIs will not pass the review process, and can't be made available to all Canva users. </Warning> <Availability> To use this API, your integration must act on behalf of a user who is a member of a [Canva Enterprise](https://www.canva.com/enterprise/) organization. </Availability> Lists trackable links and their metrics for a design.
- analytics
- GetDesignAnalyticsPageViews
- <Warning> This API is currently provided as a preview. Be aware of the following: - There might be unannounced breaking changes. - Any breaking changes to preview APIs won't produce a new [API version](https://www.canva.dev/docs/connect/versions/). - Public integrations that use preview APIs will not pass the review process, and can't be made available to all Canva users. </Warning> <Availability> To use this API, your integration must act on behalf of a user who is a member of a [Canva Enterprise](https://www.canva.com/enterprise/) organization. </Availability> Lists the page-level view duration data for a design. The request body can include page filters and pagination controls.
- analytics
- GetDesignAnalyticsViewers
- <Warning> This API is currently provided as a preview. Be aware of the following: - There might be unannounced breaking changes. - Any breaking changes to preview APIs won't produce a new [API version](https://www.canva.dev/docs/connect/versions/). - Public integrations that use preview APIs will not pass the review process, and can't be made available to all Canva users. </Warning> <Availability> To use this API, your integration must act on behalf of a user who is a member of a [Canva Enterprise](https://www.canva.com/enterprise/) organization. </Availability> Lists viewers for a design, ordered by most recent view first.
- analytics
- GetDesignAnalyticsViewsOverTime
- <Warning> This API is currently provided as a preview. Be aware of the following: - There might be unannounced breaking changes. - Any breaking changes to preview APIs won't produce a new [API version](https://www.canva.dev/docs/connect/versions/). - Public integrations that use preview APIs will not pass the review process, and can't be made available to all Canva users. </Warning> <Availability> To use this API, your integration must act on behalf of a user who is a member of a [Canva Enterprise](https://www.canva.com/enterprise/) organization. </Availability> Lists the view counts over time for a design. Each response item represents one time bucket.
- analytics
- GetDesignAutofillJob
- <Availability> To use this API, your integration must act on behalf of a user who is a member of a [Canva Enterprise](https://www.canva.com/enterprise/) organization. Users on Canva paid plans have access to a limited trial while your integration is under development. For more information, see [Trial quotas](https://www.canva.dev/docs/connect/api-requests-responses/#trial-quotas). </Availability> Get the result of a design autofill job that was created using the [Create design autofill job API](https://www.canva.dev/docs/connect/api-reference/autofills/create-design-autofill-job/). You might need to make multiple requests to this endpoint until you get a `success` or `failed` status. For more information on the workflow for using asynchronous jobs, see [API requests and responses](https://www.canva.dev/docs/connect/api-requests-responses/#asynchronous-job-endpoints).
- autofill
- GetDesignDataset
- <Warning> This API is currently provided as a preview. Be aware of the following: - There might be unannounced breaking changes. - Any breaking changes to preview APIs won't produce a new [API version](https://www.canva.dev/docs/connect/versions/). - Public integrations that use preview APIs will not pass the review process, and can't be made available to all Canva users. </Warning> Gets the dataset definition of a design. If the design contains autofill data fields, this API returns an object with the data field names and the type of data they accept. <Note> To get the dataset definition of a brand template, use the [Get brand template dataset API](https://www.canva.dev/docs/connect/api-reference/brand-templates/get-brand-template-dataset/). </Note> Available data field types include: - Images (which you can autofill with an image or a video asset) - Text - Charts Use the returned field names and types to build the `data` payload for the [Create a design autofill job API](https://www.canva.dev/docs/connect/api-reference/autofills/create-design-autofill-job/) with `type: create_from_design`. WARNING: Chart data fields and autofilling a video are [preview features](https://www.canva.dev/docs/connect/#preview-apis). There might be unannounced breaking changes to these features which won't produce a new API version.
- design
- GetDesignExportFormats
- Lists the available file formats for [exporting a design](https://www.canva.dev/docs/connect/api-reference/exports/create-design-export-job/). <Note> The available export formats depend on the design type and the types of pages in the design. Each format includes the page numbers that support it. If a format is supported by every page in the design, its `page_numbers` are omitted. </Note>
- design
- GetDesignExportJob
- Gets the result of a design export job that was created using the [Create design export job API](https://www.canva.dev/docs/connect/api-reference/exports/create-design-export-job/). If the job is successful, the response includes an array of download URLs. Depending on the design type and export format, there is a download URL for each page in the design. The download URLs are only valid for 24 hours. You might need to make multiple requests to this endpoint until you get a `success` or `failed` status. For more information on the workflow for using asynchronous jobs, see [API requests and responses](https://www.canva.dev/docs/connect/api-requests-responses/#asynchronous-job-endpoints).
- export
- GetDesignImportJob
- Gets the result of a design import job created using the [Create design import job API](https://www.canva.dev/docs/connect/api-reference/design-imports/create-design-import-job/). You might need to make multiple requests to this endpoint until you get a `success` or `failed` status. For more information on the workflow for using asynchronous jobs, see [API requests and responses](https://www.canva.dev/docs/connect/api-requests-responses/#asynchronous-job-endpoints).
- design_import
- GetDesignMergeJob
- <Warning> This API is currently provided as a preview. Be aware of the following: - There might be unannounced breaking changes. - Any breaking changes to preview APIs won't produce a new [API version](https://www.canva.dev/docs/connect/versions/). - Public integrations that use preview APIs will not pass the review process, and can't be made available to all Canva users. </Warning> Gets the result of a design merge job that was created using the [Create design merge job API](https://www.canva.dev/docs/connect/api-reference/merges/create-design-merge-job/). If the job is successful, the response includes the job status and a `result` object with metadata for the created or updated design. You might need to make multiple requests to this endpoint until you get a `success` or `failed` status. For more information on the workflow for using asynchronous jobs, see [API requests and responses](https://www.canva.dev/docs/connect/api-requests-responses/#asynchronous-job-endpoints).
- merge
- GetDesignPages
- <Warning> This API is currently provided as a preview. Be aware of the following: - There might be unannounced breaking changes. - Any breaking changes to preview APIs won't produce a new [API version](https://www.canva.dev/docs/connect/versions/). - Public integrations that use preview APIs will not pass the review process, and can't be made available to all Canva users. </Warning> Lists metadata for pages in a design, such as page-specific thumbnails. For the specified design, you can provide `offset` and `limit` values to specify the range of pages to return. NOTE: Some design types don't have pages (for example, Canva docs).
- design
- GetDesignResizeJob
- <Availability> To use this API, your integration must act on behalf of a user that's on a Canva plan with premium features (such as Canva Pro). Users on the Canva Free plan have access to a limited trial. For more information, see [Trial quotas](https://www.canva.dev/docs/connect/api-requests-responses/#trial-quotas). </Availability> Gets the result of a design resize job that was created using the [Create design resize job API](https://www.canva.dev/docs/connect/api-reference/resizes/create-design-resize-job/). If the job is successful, the response includes a summary of the new resized design, including its metadata. You might need to make multiple requests to this endpoint until you get a `success` or `failed` status. For more information on the workflow for using asynchronous jobs, see [API requests and responses](https://www.canva.dev/docs/connect/api-requests-responses/#asynchronous-job-endpoints).
- resize
- GetFolder
- Gets the name and other details of a folder using a folder's `folderID`.
- folder
- GetOidcJwks
- Gets the JSON Web Key Set (public keys) for OIDC. These keys are used to verify JWTs in OpenID Connect flows.
- oidc
- GetPrintPartnerDesign
- <Warning> This API is currently provided as a preview. Be aware of the following: - There might be unannounced breaking changes. - Any breaking changes to preview APIs won't produce a new [API version](https://www.canva.dev/docs/connect/versions/). - Public integrations that use preview APIs will not pass the review process, and can't be made available to all Canva users. </Warning> AVAILABILITY: This API is only available to Print Partners. Gets the metadata for a design. This includes owner information, URLs for editing and viewing, and thumbnail information. Print partner proofing information (such as bleed and page constraints) isn't stored on Canva, so you can optionally provide it in the request. The design URLs that are returned include this information, which Canva applies in the editor when opening the design.
- design
- GetReply
- <Warning> This API is currently provided as a preview. Be aware of the following: - There might be unannounced breaking changes. - Any breaking changes to preview APIs won't produce a new [API version](https://www.canva.dev/docs/connect/versions/). - Public integrations that use preview APIs will not pass the review process, and can't be made available to all Canva users. </Warning> Gets a reply to a comment or suggestion thread on a design. For information on comments and how they're used in the Canva UI, see the [Canva Help Center](https://www.canva.com/help/comments/).
- comment
- GetSigningPublicKeys
- <Warning> This API is currently provided as a preview. Be aware of the following: - There might be unannounced breaking changes. - Any breaking changes to preview APIs won't produce a new [API version](https://www.canva.dev/docs/connect/versions/). - Public integrations that use preview APIs will not pass the review process, and can't be made available to all Canva users. </Warning> The Keys API (`connect/keys`) is a security measure you can use to verify the authenticity of webhooks you receive from Canva Connect. The Keys API returns a [JSON Web Key (JWK)](https://www.rfc-editor.org/rfc/rfc7517#section-2), which you can use to decrypt the webhook signature and verify it came from Canva and not a potentially malicious actor. This helps to protect your systems from [Replay attacks](https://owasp.org/Top10/A08_2021-Software_and_Data_Integrity_Failures/). The keys returned by the Keys API can rotate. We recommend you cache the keys you receive from this API where possible, and only access this API when you receive a webhook signed with an unrecognized key. This allows you to verify webhooks quicker than accessing this API every time you receive a webhook.
- connect
- GetThread
- <Warning> This API is currently provided as a preview. Be aware of the following: - There might be unannounced breaking changes. - Any breaking changes to preview APIs won't produce a new [API version](https://www.canva.dev/docs/connect/versions/). - Public integrations that use preview APIs will not pass the review process, and can't be made available to all Canva users. </Warning> Gets a comment or suggestion thread on a design. To retrieve a reply to a comment thread, use the [Get reply](https://www.canva.dev/docs/connect/api-reference/comments/get-reply/) API. For information on comments and how they're used in the Canva UI, see the [Canva Help Center](https://www.canva.com/help/comments/).
- comment
- GetUrlAssetUploadJob
- <Warning> This API is currently provided as a preview. Be aware of the following: - There might be unannounced breaking changes. - Any breaking changes to preview APIs won't produce a new [API version](https://www.canva.dev/docs/connect/versions/). - Public integrations that use preview APIs will not pass the review process, and can't be made available to all Canva users. </Warning> Get the result of an asset upload job that was created using the [Create asset upload job via URL API](https://www.canva.dev/docs/connect/api-reference/assets/create-url-asset-upload-job/). You might need to make multiple requests to this endpoint until you get a `success` or `failed` status. For more information on the workflow for using asynchronous jobs, see [API requests and responses](https://www.canva.dev/docs/connect/api-requests-responses/#asynchronous-job-endpoints).
- asset
- GetUrlImportJob
- Gets the result of a URL import job created using the [Create URL import job API](https://www.canva.dev/docs/connect/api-reference/design-imports/create-url-import-job/). You might need to make multiple requests to this endpoint until you get a `success` or `failed` status. For more information on the workflow for using asynchronous jobs, see [API requests and responses](https://www.canva.dev/docs/connect/api-requests-responses/#asynchronous-job-endpoints).
- design_import
- GetUserCapabilities
- Lists the API capabilities for the user account associated with the provided access token. For more information, see [Capabilities](https://www.canva.dev/docs/connect/capabilities/).
- user
- GetUserProfile
- Currently, this returns the display name of the user account associated with the provided access token. More user information is expected to be included in the future.
- user
- ListBrandTemplates
- WARNING: Brand templates were migrated to use a new ID format in September 2025. If your integration stores brand template IDs, you'll need to migrate to use the new IDs. Old brand template IDs will continue to be accepted for 6 months to give you time to migrate to the new IDs. AVAILABILITY: To use this API, your integration must act on behalf of a user that's on a Canva plan with access to brand templates (such as Canva Pro, Canva Teams, or Canva Enterprise). Get a list of the [brand templates](https://www.canva.com/help/publish-team-template/) the user has access to.
- brand_template
- ListDesigns
- Lists metadata for all the designs in a Canva user's [projects](https://www.canva.com/help/find-designs-and-folders/). You can also: - Use search terms to filter the listed designs. - Show designs either created by, or shared with the user. - Sort the results.
- design
- ListFolderItems
- Lists the items in a folder, including each item's `type`. Folders can contain: - Other folders. - Designs, such as Instagram posts, Presentations, and Documents ([Canva Docs](https://www.canva.com/create/documents/)). - Image assets. - Brand templates. To include `brand_template` items in the response, you must explicitly specify it in the `item_types` parameter. AVAILABILITY: Brand template items are only returned for users on a Canva plan with access to brand templates (such as Canva Pro, Canva Teams, or Canva Enterprise). For more information, see [Brand templates](https://www.canva.dev/docs/connect/api-reference/brand-templates/). Currently, video assets are not returned in the response.
- folder
- ListReplies
- <Warning> This API is currently provided as a preview. Be aware of the following: - There might be unannounced breaking changes. - Any breaking changes to preview APIs won't produce a new [API version](https://www.canva.dev/docs/connect/versions/). - Public integrations that use preview APIs will not pass the review process, and can't be made available to all Canva users. </Warning> Retrieves a list of replies for a comment or suggestion thread on a design. For information on comments and how they're used in the Canva UI, see the [Canva Help Center](https://www.canva.com/help/comments/).
- comment
- MoveFolderItem
- Moves an item to another folder. You must specify the folder ID of the destination folder, as well as the ID of the item you want to move. NOTE: In some situations, a single item can exist in multiple folders. If you attempt to move an item that exists in multiple folders, the API returns an `item_in_multiple_folders` error. In this case, you must use the Canva UI to move the item to another folder.
- folder
- PublishBrandTemplate
- <Warning> This API is currently provided as a preview. Be aware of the following: - There might be unannounced breaking changes. - Any breaking changes to preview APIs won't produce a new [API version](https://www.canva.dev/docs/connect/versions/). - Public integrations that use preview APIs will not pass the review process, and can't be made available to all Canva users. </Warning> AVAILABILITY: To use this API, your integration must act on behalf of a user that's on a Canva plan with access to brand templates (such as Canva Pro, Canva Teams, or Canva Enterprise). Additionally, the user must have one of the following [roles](https://www.canva.com/help/roles-and-permissions/): Team admin, Brand designer, Organization admin, or Organization designer. Publishes a design as a [brand template](https://www.canva.com/help/publish-team-template/). Brand templates are design templates that can be shared across a team for consistent content creation. This API supports two workflows: - **Initial publish**: If the design is not linked to an existing brand template, a new brand template is created. - **Republish**: If the design is a draft of an existing brand template (created by editing an existing template), the existing template is updated with the changes. The API returns the published brand template immediately. <Note> The `thumbnail` field might be `null` immediately after publishing, as thumbnails are generated asynchronously. You can use the [Get brand template API](https://www.canva.dev/docs/connect/api-reference/brand-templates/get-brand-template/) to retrieve the thumbnail once it's ready. The brand template's `view_url` and `create_url` are available immediately. </Note>
- brand_template
- UpdateAsset
- You can update the name and tags of an asset by specifying its `assetId`. Updating the tags replaces all existing tags of the asset.
- asset
- UpdateFolder
- Updates a folder's details using its `folderID`. Currently, you can only update a folder's name.
- folder
- UserInfo
- Fetches the current UserInfo claims for the authorized user. This is the same fields returned by a id_token returns during authorization. The claims returned depend on the granted scopes: `profile` claims (`name`, `given_name`, `family_name`) are only returned when the `profile` scope is granted, and `email` claims (`email`, `email_verified`) are only returned when the `email` scope is granted. The `openid` scope is always required.
- oidc
- UsersMe
- Returns the User ID and Team ID of the user account associated with the provided access token.
- user
Canva integration, answered
- How do AI agents use Canva through Open Connector?
- Your user connects Canva once with one of its cataloged authentication methods. Open Connector stores the credential in an encrypted vault and exposes Canva tools to your agent over MCP or a typed API, with credentials injected server-side on each call.
- Is this a Canva MCP server?
- Yes. Open Connector can serve Canva as a named MCP server with a scoped allowlist and a per-user connection URL, so any MCP client can call Canva actions with credentials injected server-side.
- Where do Canva credentials live?
- In your own infrastructure. Open Connector keeps credentials in its own vault and injects them at call time, so they never leave your environment.
Give your agents Canva — keep the keys.
Open source, self-hostable, with Canva credentials that never leave your infrastructure. Run it from source today.