canva_skill
- Shell
41
GitHub Stars
1
Bundled Files
2 months ago
Catalog Refreshed
3 months ago
First Indexed
Readme & install
Copy the install command, review bundled files from the catalogue, and read any extended description pulled from the listing source.
Installation
Preview and clipboard use veilstrat where the catalogue uses aiagentskills.
npx veilstrat add skill vm0-ai/vm0-skills --skill canva- SKILL.md9.5 KB
Overview
This skill provides direct curl-based access to the Canva Connect API for managing designs, folders, assets, exports, and comments. It is built for CLI workflows and automation where you have a CANVA_TOKEN available in the environment. Use it to list and search designs, create new canvases, export finished files, upload assets, and manage collaboration threads.
How this skill works
All operations call the Canva REST endpoints under https://api.canva.com/rest/v1 using curl. Examples show how to set request bodies in temporary JSON files, run POST/PATCH/DELETE requests, and poll asynchronous jobs like exports. The provided commands assume CANVA_TOKEN is set and recommend bash -c when piping to tools like jq to avoid environment variable loss.
When to use it
- List or search designs in a Canva account from scripts or CI
- Create new designs with presets or custom pixel dimensions
- Export designs to PDF, PNG, JPG and download completed files
- Upload, update, or delete image and video assets programmatically
- Organize designs into folders and move items between folders
- Add comments or reply to comment threads for collaborative reviews
Best practices
- Keep CANVA_TOKEN in a secure environment variable and never hard-code it
- Wrap curl calls in bash -c '...' when piping to jq to preserve env vars
- Respect rate limits: batch operations and poll export jobs with backoff
- Use pagination tokens for large lists and limit page sizes to reduce calls
- Poll asynchronous jobs (exports/uploads) until status is success or failed
- Encode asset metadata with Asset-Upload-Metadata for binary uploads
Example use cases
- Automate nightly exports of marketing templates to PDF for distribution
- Build a script that imports a brand image set into Canva as assets
- Search for all presentation designs updated this month and archive them
- Create a custom-sized social post template and share its edit URL
- Integrate comment creation into a review workflow to leave design notes
FAQ
All requests require Authorization: Bearer $CANVA_TOKEN. POST/PATCH with JSON also need Content-Type: application/json.
How do I handle export jobs?
Start the export with POST /exports, capture the returned job id, then poll GET /exports/<job-id> until job.status is success or failed. Download URLs are valid for 24 hours.