Canva

Overview

Pre-built tooling

✅ Authorization
ToolsStatus
Pre-built authorization (OAuth)✅
Credentials auto-refresh✅
Auth parameters validation✅
Pre-built authorization UI✅
Custom authorization UI✅
Expired credentials detection✅
✅ Read & write data
ToolsStatus
Pre-built integrations✅
API unification✅
2-way sync✅
Webhooks from Tenklo on data modifications✅
Real-time webhooks from 3rd-party API🚫 (time to contribute: <48h)
Proxy requests✅
✅ Observability & data quality
ToolsStatus
HTTP request logging✅
End-to-end type safety✅
Data runtime validation✅
OpenTelemetry export✅
Slack alerts on errors✅
Integration status API✅
✅ Customization
ToolsStatus
Create or customize use-cases✅
Pre-configured pagination🚫 (time to contribute: <48h)
Pre-configured rate-limit handling🚫 (time to contribute: <48h)
Per-customer configurations✅

Others

Function nameDescriptionTypeSource code
create-asset-upload-jobStart an asset upload job from raw bytes.Action🔗 Github
create-comment-replyCreate a reply to an inline annotation comment.Action🔗 Github
create-commentCreate an inline annotation comment on a specific design elementAction🔗 Github
create-design-comment-replyCreate a reply in a design comment thread.Action🔗 Github
create-design-commentCreate a floating comment thread on a design.Action🔗 Github
create-design-export-jobCreate an export job for a design.Action🔗 Github
create-design-import-jobStart a binary design import jobAction🔗 Github
create-design-resize-jobStart a design resize job.Action🔗 Github
create-designCreate a design from a preset design type or custom dimensionsAction🔗 Github
create-folderCreate a folder.Action🔗 Github
create-url-asset-upload-jobStart an asset upload job from a source URL.Action🔗 Github
create-url-design-import-jobStart a design import job from a source URL.Action🔗 Github
delete-assetDelete an asset.Action🔗 Github
delete-folderDelete a folder.Action🔗 Github
get-asset-upload-jobRetrieve asset upload job status/result.Action🔗 Github
get-assetRetrieve asset metadata.Action🔗 Github
get-brand-templateRetrieve brand template metadata.Action🔗 Github
get-current-user-capabilitiesRetrieve current Canva user capabilities.Action🔗 Github
get-current-user-profileRetrieve current Canva user profile details.Action🔗 Github
get-current-userRetrieve the current Canva user.Action🔗 Github
get-design-comment-replyRetrieve one reply in a design comment thread.Action🔗 Github
get-design-comment-threadRetrieve a design comment thread.Action🔗 Github
get-design-export-formatsList export formats available for a design.Action🔗 Github
get-design-export-jobRetrieve export job status/result and download URLs.Action🔗 Github
get-design-import-jobRetrieve design import job status/result.Action🔗 Github
get-design-pagesList pages in a design.Action🔗 Github
get-designRetrieve design metadata.Action🔗 Github
get-folderRetrieve folder metadata.Action🔗 Github
get-url-asset-upload-jobRetrieve URL asset upload job status and result.Action🔗 Github
get-url-design-import-jobRetrieve URL design import job status/result.Action🔗 Github
list-brand-templatesList brand templates.Action🔗 Github
list-design-comment-repliesList replies in a design comment thread.Action🔗 Github
list-designsList design metadata with optional text search, type, and ownership filters.Action🔗 Github
move-folder-itemMove a folder item to another folder.Action🔗 Github
update-assetUpdate asset name and tags.Action🔗 Github
update-folderUpdate a folder name.Action🔗 Github
brand-templatesSync brand template metadataSync🔗 Github
design-pagesSync pages for configured Canva designs.Sync🔗 Github
designsSync design metadata.Sync🔗 Github
folder-itemsSync the contents of configured Canva folders.Sync🔗 Github

Access requirements

Pre-RequisitesStatusComment
Paid dev account❌Not required
Paid test account❌Not required
Partnership❌Not required
App review✅Required for public integrations
Security audit❌Not required

Setup guide

  1. Create a Canva Developer Account

  2. Create an Integration

    • Navigate to "Your integrations" page
    • Click "Create an integration"
    • Choose between Public or Private integration:
      • Public: Available to all Canva users (requires review)
      • Private: Only for your team on Canva Enterprise plan
    • Accept the Canva Developer Terms
  3. Configure Your Integration

    • Set a name for your integration
    • Save your Client ID and Client Secret
    • Configure required scopes (see Scopes section below)
    • Set up redirect URLs (up to 10 allowed)
    • For local development, use http://127.0.0.1:<port>
  4. Required Scopes

    • asset:read: View metadata for user's assets
    • asset:write: Upload, update, or delete assets
    • brandtemplate:content:read: Read brand template content
    • brandtemplate:meta:read: View brand template metadata
    • collaboration:event: Receive webhook notifications
    • comment:read: View design comments
    • comment:write: Create comments and replies
    • design:content:read: View design contents
    • design:content:write: Create designs
    • design:meta:read: View design metadata
    • design:permission:read: View design permissions
    • design:permission:write: Manage design permissions
    • folder:permission:read: View folder permissions
    • folder:permission:write: Manage folder permissions
    • folder:read: View folder metadata and contents
    • folder:write: Manage folders
    • profile:read: Read user profile information
Need help getting started? Get help in the community.
Contribute improvements to the setup guide by editing this page
Contribute useful links by editing this page

API gotchas

  • Local development requires using 127.0.0.1 instead of localhost for the redirect URL in the integration settings
  • For webhook notifications, you must enable the collaboration:event scope
Contribute API gotchas by editing this page

On this page