> ## Documentation Index
> Fetch the complete documentation index at: https://docs.atako.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Canva

> Connect Canva to your Atako agents — 10 read and 7 write actions.

Let your agents find, create, organize and export the designs in your Canva account, and import files from a URL as new designs.

## Connection

* **Authentication**: OAuth 2.0 — you authorize Atako via Canva's consent screen; no key to copy.
* **Scopes requested**:
  * `design:meta:read`
  * `design:content:read`
  * `design:content:write`
  * `folder:read`
  * `folder:write`
  * `asset:read`
  * `asset:write`
  * `profile:read`

<Note>
  Nothing to paste: click Connect and approve Atako in your Canva account. Prerequisite on the Atako side — an administrator opens the Canva Developer Portal ([https://www.canva.com/developers/apps](https://www.canva.com/developers/apps)) → Your apps → Create an app (Public), then Outside Canva → Start integrating. In Outside Canva → Configuration: keep "Canva REST APIs" on, under Scopes tick design:meta (Read), design:content (Read and Write), folder (Read and Write), asset (Read and Write) and profile (Read), and under Credentials copy the Client ID and click Generate secret. In Outside Canva → Redirect URLs, set URL 1 to \$\{API\_URL}/integrations/oauth/callback. Put the Client ID and secret in INTEGRATION\_OAUTH\_CANVA\_CLIENT\_ID / \_CLIENT\_SECRET. A public app must pass Canva's review (submission checklist) before it is available to all Canva users.

  See [Canva's documentation](https://www.canva.dev/docs/connect/authentication/).
</Note>

## Read actions (10)

| Action                      | Description                                                                                                                                                                                       |
| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `get_asset`                 | Fetch an asset's metadata (name, tags, type, thumbnail, dates). Asset IDs come from list\_folder\_items (image items).                                                                            |
| `get_current_user`          | Fetch the connected Canva user's user\_id and team\_id (no scope needed — connection check).                                                                                                      |
| `get_design`                | Fetch a design's metadata: title, owner, edit/view URLs (valid 30 days), thumbnail, page\_count, dates.                                                                                           |
| `get_design_export_formats` | List the export formats a design supports (pdf, jpg, png, pptx, gif, mp4, html\_bundle, html\_standalone, csv), with the page numbers each one covers — check before create\_design\_export\_job. |
| `get_design_export_job`     | Poll an export job started by create\_design\_export\_job: status in\_progress \| success \| failed; on success, urls = download links (one per page, valid 24 hours).                            |
| `get_folder`                | Fetch a folder's name and details.                                                                                                                                                                |
| `get_url_import_job`        | Poll a URL import job started by create\_url\_import\_job: status in\_progress \| success \| failed; on success, result.designs lists the created design(s).                                      |
| `get_user_profile`          | Fetch the connected Canva user's display name.                                                                                                                                                    |
| `list_designs`              | List or search the user's designs and the designs shared with them (id, title, urls, thumbnail, page\_count). Paginate with the returned continuation token.                                      |
| `list_folder_items`         | List the designs, folders and image assets in a folder, each with its type and ID. Start from folderId "root" (top of Projects) or "uploads". Paginate with the returned continuation token.      |

## Write actions (7)

| Action                     | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `create_design`            | Create a new design (blank designs never edited are deleted by Canva after 7 days). Arguments: design\_type (object, optional) — either \{ type: "preset", name: "doc" \| "email" \| "presentation" \| "whiteboard" } or \{ type: "custom", width: integer 40-8000 px, height: integer 40-8000 px, width × height ≤ 25,000,000 }; title (string 1-255, optional); asset\_id (string, optional — an image asset to place in the design). At least one of design\_type or asset\_id is required.                                                                                                                                                                                                                                                                                                                                                                                                                  |
| `create_design_export_job` | Start exporting a design to a file; poll get\_design\_export\_job with the returned job.id. Arguments: design\_id (string, required); format (object, required), by format.type — "pdf": export\_quality ("regular"\|"pro"), size ("a4"\|"a3"\|"letter"\|"legal", Canva Docs only), pages; "jpg": quality (integer 1-100, REQUIRED), export\_quality, width/height (integer 40-25000 px), pages; "png": export\_quality, width/height, lossless (boolean), transparent\_background (boolean), as\_single\_image (boolean), pages; "pptx": pages; "gif": export\_quality, width/height, pages; "mp4": quality (REQUIRED: horizontal\_480p\|horizontal\_720p\|horizontal\_1080p\|horizontal\_4k\|vertical\_480p\|vertical\_720p\|vertical\_1080p\|vertical\_4k), export\_quality, pages; "html\_bundle" / "html\_standalone": pages (one page); "csv": pages. pages = array of integers ≥ 1, omitted = all pages. |
| `create_folder`            | Create a folder. Arguments: name (string 1-255, required); parent\_folder\_id (string, required — "root" = top level of Projects, "uploads" = Uploads folder, or a folder ID).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| `create_url_import_job`    | Import a publicly reachable file (PDF, PowerPoint, Word, Keynote, Illustrator…) from a URL as a new Canva design; poll get\_url\_import\_job with the returned job.id. Arguments: title (string 1-255, required); url (string ≤ 2048, required — public URL); mime\_type (string, optional — auto-detected when omitted).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| `move_folder_item`         | Move a design, folder or image into another folder. Arguments: item\_id (string, required — video assets not supported); to\_folder\_id (string, required — "root" = top level of Projects). Fails with item\_in\_multiple\_folders if the item sits in several folders.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| `update_asset`             | Rename an asset and/or replace its tags. Arguments: assetId (string, required); name (string ≤ 50, optional); tags (array of strings ≤ 50 chars, max 50, optional — REPLACES all existing tags).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| `update_folder`            | Rename a folder. Arguments: folderId (string, required); name (string 1-255, required — new name).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |

## Permissions

Every action above must be explicitly granted to an agent before it can be used. See [Permissions](/integrations/permissions) for the grant model and [Security](/integrations/security) for how credentials are protected.
