Canva
Overview
Pre-built tooling
✅ Authorization
| Tools | Status |
|---|---|
| Pre-built authorization (OAuth) | ✅ |
| Credentials auto-refresh | ✅ |
| Auth parameters validation | ✅ |
| Pre-built authorization UI | ✅ |
| Custom authorization UI | ✅ |
| Expired credentials detection | ✅ |
✅ Read & write data
| Tools | Status |
|---|---|
| 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
| Tools | Status |
|---|---|
| HTTP request logging | ✅ |
| End-to-end type safety | ✅ |
| Data runtime validation | ✅ |
| OpenTelemetry export | ✅ |
| Slack alerts on errors | ✅ |
| Integration status API | ✅ |
✅ Customization
| Tools | Status |
|---|---|
| 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 name | Description | Type | Source code |
|---|---|---|---|
create-asset-upload-job | Start an asset upload job from raw bytes. | Action | 🔗 Github |
create-comment-reply | Create a reply to an inline annotation comment. | Action | 🔗 Github |
create-comment | Create an inline annotation comment on a specific design element | Action | 🔗 Github |
create-design-comment-reply | Create a reply in a design comment thread. | Action | 🔗 Github |
create-design-comment | Create a floating comment thread on a design. | Action | 🔗 Github |
create-design-export-job | Create an export job for a design. | Action | 🔗 Github |
create-design-import-job | Start a binary design import job | Action | 🔗 Github |
create-design-resize-job | Start a design resize job. | Action | 🔗 Github |
create-design | Create a design from a preset design type or custom dimensions | Action | 🔗 Github |
create-folder | Create a folder. | Action | 🔗 Github |
create-url-asset-upload-job | Start an asset upload job from a source URL. | Action | 🔗 Github |
create-url-design-import-job | Start a design import job from a source URL. | Action | 🔗 Github |
delete-asset | Delete an asset. | Action | 🔗 Github |
delete-folder | Delete a folder. | Action | 🔗 Github |
get-asset-upload-job | Retrieve asset upload job status/result. | Action | 🔗 Github |
get-asset | Retrieve asset metadata. | Action | 🔗 Github |
get-brand-template | Retrieve brand template metadata. | Action | 🔗 Github |
get-current-user-capabilities | Retrieve current Canva user capabilities. | Action | 🔗 Github |
get-current-user-profile | Retrieve current Canva user profile details. | Action | 🔗 Github |
get-current-user | Retrieve the current Canva user. | Action | 🔗 Github |
get-design-comment-reply | Retrieve one reply in a design comment thread. | Action | 🔗 Github |
get-design-comment-thread | Retrieve a design comment thread. | Action | 🔗 Github |
get-design-export-formats | List export formats available for a design. | Action | 🔗 Github |
get-design-export-job | Retrieve export job status/result and download URLs. | Action | 🔗 Github |
get-design-import-job | Retrieve design import job status/result. | Action | 🔗 Github |
get-design-pages | List pages in a design. | Action | 🔗 Github |
get-design | Retrieve design metadata. | Action | 🔗 Github |
get-folder | Retrieve folder metadata. | Action | 🔗 Github |
get-url-asset-upload-job | Retrieve URL asset upload job status and result. | Action | 🔗 Github |
get-url-design-import-job | Retrieve URL design import job status/result. | Action | 🔗 Github |
list-brand-templates | List brand templates. | Action | 🔗 Github |
list-design-comment-replies | List replies in a design comment thread. | Action | 🔗 Github |
list-designs | List design metadata with optional text search, type, and ownership filters. | Action | 🔗 Github |
move-folder-item | Move a folder item to another folder. | Action | 🔗 Github |
update-asset | Update asset name and tags. | Action | 🔗 Github |
update-folder | Update a folder name. | Action | 🔗 Github |
brand-templates | Sync brand template metadata | Sync | 🔗 Github |
design-pages | Sync pages for configured Canva designs. | Sync | 🔗 Github |
designs | Sync design metadata. | Sync | 🔗 Github |
folder-items | Sync the contents of configured Canva folders. | Sync | 🔗 Github |
Access requirements
| Pre-Requisites | Status | Comment |
|---|---|---|
| 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
-
Create a Canva Developer Account
- Enable Multi-factor Authentication (MFA) on your Canva account
- Log in to the Canva Developer Portal
-
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
-
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>
-
Required Scopes
asset:read: View metadata for user's assetsasset:write: Upload, update, or delete assetsbrandtemplate:content:read: Read brand template contentbrandtemplate:meta:read: View brand template metadatacollaboration:event: Receive webhook notificationscomment:read: View design commentscomment:write: Create comments and repliesdesign:content:read: View design contentsdesign:content:write: Create designsdesign:meta:read: View design metadatadesign:permission:read: View design permissionsdesign:permission:write: Manage design permissionsfolder:permission:read: View folder permissionsfolder:permission:write: Manage folder permissionsfolder:read: View folder metadata and contentsfolder:write: Manage foldersprofile:read: Read user profile information
Need help getting started? Get help in the community.
Contribute improvements to the setup guide by editing this page
Useful links
Contribute useful links by editing this page
API gotchas
- Local development requires using
127.0.0.1instead oflocalhostfor the redirect URL in the integration settings - For webhook notifications, you must enable the
collaboration:eventscope
Contribute API gotchas by editing this page