@canva/cli: Now with Canva REST API functionality!

canva api is here

Every Canva REST API, now a command away

The Canva CLI now lets you call every public Canva REST API operation straight from your terminal. There’s no client to wire up and no tokens to juggle. Log in once, then go.

This gives users an additional avenue to interface with Canva, particularly great for automating processes like:

  • Uploading a photo shoots worth of assets into Canva, ready to use in designs
  • Turning a CSV of names & achievements into certificates
  • Organising files at scale, with folder creation and item movement

Get started

Log in, then run your first API command:

# grab the 2.13.0 release with all the cool new features
npm i -g @canva/cli@latest

canva login
canva api designs list

That’s it. You’re talking to the Canva REST API.


What you can do

Use the CLI to discover commands, work with designs, create presentations, export files, and upload assets. Explore options with --help, then run the operation you need.

# --help explains every command and option
canva api --help
canva api designs --help
canva api designs list --help

# List your designs
canva api designs list

# Get a design
canva api designs get DAF123abc

# Create a presentation
canva api designs create --design-type preset --design-type-name presentation --title "Q3 Review"

# Export a design to PDF
canva api exports create --design-id DAF123abc --format pdf

# Upload a local file as an asset
canva api assets create-upload --file ./photo.jpg
# Check the upload job
canva api assets get-upload 
# Create a background removal image transformation
canva api image-transformations create --asset-id --name “Look ma no background” --transformations background_removal
# Check the transform job
canva api image-transformations get

Built for scripts and agents

Every call writes exactly one JSON object to stdout. Four keys, every time:

  • ok — did it work

  • data — the API’s response, verbatim (or error, if it didn’t)

  • next — the commands that usually come next

  • meta — HTTP status and timing

Pipe the result straight into jq, or hand it to an AI agent and let it drive. Diagnostics stay on stderr where they belong.


Two extra helpers

For parsable descriptions of a particular api command, run:

canva api describe 
# For example, list designs
canva api describe designs list

To make a direct REST API request, call the path with:
canva api get|post|put|patch|delete 
# For example, list designs
canva api get /v1/designs

Before you start

If you logged in with an older CLI, run canva login again to authorize the new REST API scopes.

Preview APIs are labelled ‘(Preview)’ in --help. There might be unannounced changes as they mature.


Read the docs

Find the full request guide and examples here:

Need more inspiration? Everything in this guide to using the autofill API could now be done with the CLI.

6 Likes