
Canva
Canva Connect API: list and search designs, folders, brand templates and assets, autofill brand templates, export designs, import from URLs, resize designs and manage comments.
Produce on-brand certificates, social posts, proposals and reports from CRM or spreadsheet data with brand-template autofill, then export them for delivery.
Source actions
22
Destination actions
12
Data types
19
Validation status
Implemented · fixture tested.
Implementation is checked against provider-shaped fixtures for every action, authentication failures, rate limits, pagination and duplicate safety. Provider sandbox and authorised account validation are recorded separately when credential-backed runs are completed.
What you can map
assets
- Get assetSource
Image or video asset metadata: name, tags, owner, size and thumbnail.
assets.get - Update assetDestinationProvider duplicate protectionApproval before production
Rename an asset or replace its tags.
assets.update
autofills
- Autofill brand templateDestinationNot retried automaticallyApproval before production
Start a job that creates a new design from a brand template filled with text, image, video, chart or sheet data.
autofills.create - Get autofill jobSource
Status and resulting design of a brand template autofill job.
autofills.get
brand template dataset fields
- List brand template fieldsSource
Autofill data fields of a brand template and the type each accepts.
brand_template_dataset_fields.list
brand templates
- Get brand templateSource
Brand template metadata with view and create links.
brand_templates.get - List brand templatesSource
Brand templates the user can access, optionally only those with autofill fields.
brand_templates.list
comment replies
- Reply to comment threadDestinationNot retried automaticallyApproval before production
Add a reply to a comment thread on a design (preview API).
comment_replies.create - List comment repliesSource
Replies in a comment thread on a design (preview API).
comment_replies.list
comment threads
- Create comment threadDestinationNot retried automaticallyApproval before production
Add a comment thread to a design, optionally assigned to a user (preview API).
comment_threads.create - Get comment threadSource
A comment or suggestion thread on a design (preview API).
comment_threads.get
design dataset fields
- List design dataset fieldsSource
Autofill data fields defined in a design, with their types.
design_dataset_fields.list
design export formats
- List export formatsSource
File formats a design can be exported to, with the pages that support each.
design_export_formats.list
design pages
- List design pagesSource
Page numbers, dimensions and thumbnails for a design (preview API).
design_pages.list
designs
- Create designDestinationNot retried automaticallyApproval before production
Create a blank design from a preset type (doc, email, presentation, whiteboard) or custom size, optionally with an image asset.
designs.create - Get designSource
Design metadata with owner, edit and view links and page count.
designs.get - List designsSource
Designs in the user's projects and shared with the user.
designs.list - Search designsSource
Designs matching search terms, ranked by relevance.
designs.search
exports
- Export designDestinationNot retried automaticallyApproval before production
Start a job that exports a design to PDF, JPG, PNG, PPTX, GIF, MP4, HTML or CSV. Non-destructive.
exports.create - Get export jobSource
Status and download URLs of a design export job.
exports.get
folder items
- List folder itemsSource
Designs, sub-folders, images and (optionally) brand templates in a folder. Use root for the top of the user's projects or uploads for the Uploads folder.
folder_items.list - Move item to folderDestinationProvider duplicate protectionApproval before production
Move a design, folder or image to another folder.
folder_items.update
folders
- Create folderDestinationNot retried automaticallyApproval before production
Create a folder in root (top of projects), uploads or another folder.
folders.create - Get folderSource
Folder name, thumbnail and timestamps.
folders.get - Rename folderDestinationProvider duplicate protectionApproval before production
Change a folder's name.
folders.update
resizes
- Resize designDestinationNot retried automaticallyApproval before production
Start a job that creates a resized copy of a design in the user's root folder. The original is unchanged.
resizes.create - Get resize jobSource
Status and resized copy of a design resize job.
resizes.get
url asset uploads
- Upload asset from URLDestinationNot retried automaticallyApproval before production
Start a job that uploads an image or video (up to 100 MB) from a public HTTPS URL to the user's content library (preview API).
url_asset_uploads.create - Get URL asset upload jobSource
Status and resulting asset of an asset upload from a URL (preview API).
url_asset_uploads.get
url imports
- Import design from URLDestinationNot retried automaticallyApproval before production
Start a job that imports a file (for example PDF, PPTX, DOCX, AI or Keynote) from a public HTTPS URL as a new design.
url_imports.create - Get URL import jobSource
Status and created designs of a design import from a URL.
url_imports.get
user capabilities
- List user capabilitiesSource
Plan-dependent API capabilities of the connected user, for example autofill, brand_template and resize.
user_capabilities.list
user profiles
- Get user profileSource
The connected user's display name.
user_profiles.get
users
- Get connected userSource
The connected Canva user and team IDs.
users.get
Authentication
Canva Connect integration (OAuth 2.0 with PKCE; refresh tokens rotate)
Plans and access
Any Canva user can authorise a Connect integration. Brand templates and autofill need Canva Pro, Teams, Enterprise, Education or Nonprofits; resize needs premium features (Free has a small trial quota). Calls act as the authorising user and see only that user's projects and shared content. Scopes are chosen in the Canva developer portal and at authorisation.
Test environment
Canva has no separate sandbox. Create a private integration in the Developer Portal and authorise it with a test Canva account.
Rate limits
Per user of the integration, per minute and per endpoint (for example 100 per minute for design reads, 20 for design creation and exports, 10 for user reads). Exports also have app, document and user throttles. Nexra honours Retry-After on HTTP 429.
Pagination
Designs, brand templates, folder items and comment replies use a continuation token; jobs and single records return one item.
Provider events
Canva Connect webhooks (comment, share and access-request notifications) are configured on the integration in the Developer Portal. Nexra event triggers are not yet available; flows run on demand or on a schedule.
Before you build a flow
- No deletes: Nexra never deletes designs, folders or assets, never revokes tokens and never publishes brand templates.
- Autofill only creates new designs from brand templates; Canva's update_design autofill (which overwrites an existing design) is not offered.
- Asset upload and design import from a file need a binary request body, which the Nexra engine does not send. Use url_asset_uploads.create (preview) and url_imports.create, which import from a public URL.
- Export download URLs are short-lived (24 hours) pre-signed links; Nexra returns them but does not download the files.
- Design pages, comment threads and replies, and URL asset upload are Canva preview APIs that can change without notice; legacy comment creation (POST /v1/comments) is deprecated and not offered.
- AI design and image generation, image transformations, design merges, image-to-design imports, print-partner endpoints and design analytics (Enterprise, preview) are not implemented.
- Canva has no updatedSince filter; sort designs or folder items by modified_descending and stop at the last seen time.
- Canva lists the token endpoint at https://api.canva.com/rest/v1/oauth/token; its OpenAPI also lists an /auth base. Nexra uses the documented /rest URL.
- Free-plan users have small trial quotas for premium endpoints such as resize; when exhausted Canva returns HTTP 403 permission_denied.
Developer reference
- Create the Canva Pty Ltd credentials described above with the narrowest permissions your flows need.
- In Nexra, open Connect, then Connections, then New connection, choose Canva, enter its settings and credentials, and tick only the write actions you need. Connection guide
- Test the connection, then use its actions as flow sources and destinations. Flow guide
Machine-readable detail: GET /api/public/connect/connectors/canva and the Connections API.