| name | canva |
| description | Use when creating, exporting, and managing Canva designs via the Connect API. Generate social posts, carousels, and graphics programmatically. |
| domain | marketing |
| author | oyi77 |
| license | Apache-2.0 |
| subdomain | marketing |
| tags | ["api","canva","growth","marketing","seo","social-media"] |
| version | 1.0.0 |
| homepage | https://github.com/abgohel/canva-skill |
| metadata | {"clawdbot":{"emoji":"🎨","category":"design","requires":{"env":"[Truncated]"}}} |
Canva
When to Use
Trigger phrases:
-
"canva"
-
"Create, export, and manage Canva designs via the Connect API"
-
"Create an Instagram post about [topic]"
-
"Export my Canva design as PNG"
-
"List my recent designs"
-
"Create a carousel from these points"
-
"Upload this image to Canva"
When NOT to Use
- When the audience is too small to justify the effort
- For regulated industries without compliance review
- When the campaign budget does not support the channel
Overview
Canva's Connect API provides programmatic access to the entire design lifecycle — from template selection and brand-controlled customization to multi-format export and publishing. It enables developers and marketers to automate graphic creation at scale without requiring design tools or manual intervention. The API covers social media posts, presentations, documents, videos, and carousels, all while enforcing brand guidelines through Brand Kits and asset libraries.
The design automation lifecycle follows a predictable pipeline: select a branded template, populate it with dynamic content (text, images, data), apply brand kit styling, and export to the target format (PNG, PDF, MP4, GIF). Each stage is accessible via REST endpoints, making it possible to embed Canva-powered design generation into any application or workflow — from e-commerce product imagery to social media scheduling bots.
Key capabilities include: Brand Kit enforcement for consistent typography, colors, and logos across every asset; asset upload and management for images, fonts, and videos; team collaboration with folder organization and permission controls; auto-resize to adapt a single design into multiple formats simultaneously; and headless design generation where templates are populated entirely through API calls without any manual interaction.
Integration patterns range from simple one-off exports to high-throughput batch generation. Common use cases include: social media content calendars producing 50+ platform-specific variants weekly, e-commerce product imagery dynamically populated from inventory feeds, programmatic ad creative generation with A/B test variants, and automated report/document generation with live data integration.
Workflow
import requests
import os
CANVA_API = "https://api.canva.com/rest/v1"
HEADERS = {
: ,
: ,
}
() -> :
design_resp = requests.post(, headers=HEADERS, json={
: template_id,
: brand_id,
})
design_resp.raise_for_status()
design_id = design_resp.json()[][]
element_id, new_text text_overrides.items():
requests.patch(, headers=HEADERS, json={
: new_text,
})
idx, url (image_urls):
asset = requests.post(, headers=HEADERS, json={: url}).json()
requests.patch(, headers=HEADERS, json={
: asset[][],
})
export = requests.post(, headers=HEADERS, json={
: ,
: [{: }],
}).json()
job_id = export[][]
design_id, job_id