> ## Documentation Index
> Fetch the complete documentation index at: https://nango-wari-migrated-bigcommerce-docs.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Canva

## Overview

<CardGroup cols={3}>
  <Card title="Pre-built tooling" icon="screwdriver-wrench" href="#pre-built-tooling" />

  <Card title="Pre-built integrations" icon="square-check" href="#pre-built-integrations" />

  <Card title="Access requirements" icon="triangle-exclamation" href="#access-requirements" />

  <Card title="Setup guide" icon="rocket" href="#setup-guide" />

  <Card title="Useful links" icon="circle-info" href="#useful-links" />

  <Card title="API gotchas" icon="biohazard" href="#api-gotchas" />
</CardGroup>

## Pre-built tooling

<AccordionGroup>
  <Accordion title="✅ Authorization">
    | Tools                           | Status |
    | ------------------------------- | ------ |
    | Pre-built authorization (OAuth) | ✅      |
    | Credentials auto-refresh        | ✅      |
    | Auth parameters validation      | ✅      |
    | Pre-built authorization UI      | ✅      |
    | Custom authorization UI         | ✅      |
    | Expired credentials detection   | ✅      |
  </Accordion>

  <Accordion title="✅ Read & write data">
    | Tools                                     | Status                         |
    | ----------------------------------------- | ------------------------------ |
    | Pre-built integrations                    | ✅                              |
    | API unification                           | ✅                              |
    | 2-way sync                                | ✅                              |
    | Webhooks from Nango on data modifications | ✅                              |
    | Real-time webhooks from 3rd-party API     | 🚫 (time to contribute: \<48h) |
    | Proxy requests                            | ✅                              |
  </Accordion>

  <Accordion title="✅ Observability & data quality">
    | Tools                   | Status |
    | ----------------------- | ------ |
    | HTTP request logging    | ✅      |
    | End-to-end type safety  | ✅      |
    | Data runtime validation | ✅      |
    | OpenTelemetry export    | ✅      |
    | Slack alerts on errors  | ✅      |
    | Integration status API  | ✅      |
  </Accordion>

  <Accordion title="✅ Customization">
    | Tools                              | Status                         |
    | ---------------------------------- | ------------------------------ |
    | Create or customize use-cases      | ✅                              |
    | Pre-configured pagination          | 🚫 (time to contribute: \<48h) |
    | Pre-configured rate-limit handling | 🚫 (time to contribute: \<48h) |
    | Per-customer configurations        | ✅                              |
  </Accordion>
</AccordionGroup>

### Others

| Function name                   | Description                                                                  | Type                                           | Source code                                                                                                                         |
| ------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
| `create-asset-upload-job`       | Start an asset upload job from raw bytes.                                    | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/canva/actions/create-asset-upload-job.ts)       |
| `create-comment-reply`          | Create a reply to an inline annotation comment.                              | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/canva/actions/create-comment-reply.ts)          |
| `create-comment`                | Create an inline annotation comment on a specific design element             | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/canva/actions/create-comment.ts)                |
| `create-design-comment-reply`   | Create a reply in a design comment thread.                                   | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/canva/actions/create-design-comment-reply.ts)   |
| `create-design-comment`         | Create a floating comment thread on a design.                                | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/canva/actions/create-design-comment.ts)         |
| `create-design-export-job`      | Create an export job for a design.                                           | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/canva/actions/create-design-export-job.ts)      |
| `create-design-import-job`      | Start a binary design import job                                             | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/canva/actions/create-design-import-job.ts)      |
| `create-design-resize-job`      | Start a design resize job.                                                   | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/canva/actions/create-design-resize-job.ts)      |
| `create-design`                 | Create a design from a preset design type or custom dimensions               | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/canva/actions/create-design.ts)                 |
| `create-folder`                 | Create a folder.                                                             | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/canva/actions/create-folder.ts)                 |
| `create-url-asset-upload-job`   | Start an asset upload job from a source URL.                                 | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/canva/actions/create-url-asset-upload-job.ts)   |
| `create-url-design-import-job`  | Start a design import job from a source URL.                                 | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/canva/actions/create-url-design-import-job.ts)  |
| `delete-asset`                  | Delete an asset.                                                             | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/canva/actions/delete-asset.ts)                  |
| `delete-folder`                 | Delete a folder.                                                             | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/canva/actions/delete-folder.ts)                 |
| `get-asset-upload-job`          | Retrieve asset upload job status/result.                                     | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/canva/actions/get-asset-upload-job.ts)          |
| `get-asset`                     | Retrieve asset metadata.                                                     | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/canva/actions/get-asset.ts)                     |
| `get-brand-template`            | Retrieve brand template metadata.                                            | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/canva/actions/get-brand-template.ts)            |
| `get-current-user-capabilities` | Retrieve current Canva user capabilities.                                    | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/canva/actions/get-current-user-capabilities.ts) |
| `get-current-user-profile`      | Retrieve current Canva user profile details.                                 | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/canva/actions/get-current-user-profile.ts)      |
| `get-current-user`              | Retrieve the current Canva user.                                             | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/canva/actions/get-current-user.ts)              |
| `get-design-comment-reply`      | Retrieve one reply in a design comment thread.                               | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/canva/actions/get-design-comment-reply.ts)      |
| `get-design-comment-thread`     | Retrieve a design comment thread.                                            | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/canva/actions/get-design-comment-thread.ts)     |
| `get-design-export-formats`     | List export formats available for a design.                                  | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/canva/actions/get-design-export-formats.ts)     |
| `get-design-export-job`         | Retrieve export job status/result and download URLs.                         | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/canva/actions/get-design-export-job.ts)         |
| `get-design-import-job`         | Retrieve design import job status/result.                                    | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/canva/actions/get-design-import-job.ts)         |
| `get-design-pages`              | List pages in a design.                                                      | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/canva/actions/get-design-pages.ts)              |
| `get-design`                    | Retrieve design metadata.                                                    | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/canva/actions/get-design.ts)                    |
| `get-folder`                    | Retrieve folder metadata.                                                    | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/canva/actions/get-folder.ts)                    |
| `get-url-asset-upload-job`      | Retrieve URL asset upload job status and result.                             | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/canva/actions/get-url-asset-upload-job.ts)      |
| `get-url-design-import-job`     | Retrieve URL design import job status/result.                                | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/canva/actions/get-url-design-import-job.ts)     |
| `list-brand-templates`          | List brand templates.                                                        | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/canva/actions/list-brand-templates.ts)          |
| `list-design-comment-replies`   | List replies in a design comment thread.                                     | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/canva/actions/list-design-comment-replies.ts)   |
| `list-designs`                  | List design metadata with optional text search, type, and ownership filters. | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/canva/actions/list-designs.ts)                  |
| `move-folder-item`              | Move a folder item to another folder.                                        | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/canva/actions/move-folder-item.ts)              |
| `update-asset`                  | Update asset name and tags.                                                  | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/canva/actions/update-asset.ts)                  |
| `update-folder`                 | Update a folder name.                                                        | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/canva/actions/update-folder.ts)                 |
| `brand-templates`               | Sync brand template metadata                                                 | [Sync](/guides/functions/syncs/sync-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/canva/syncs/brand-templates.ts)                 |
| `design-pages`                  | Sync pages for configured Canva designs.                                     | [Sync](/guides/functions/syncs/sync-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/canva/syncs/design-pages.ts)                    |
| `designs`                       | Sync design metadata.                                                        | [Sync](/guides/functions/syncs/sync-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/canva/syncs/designs.ts)                         |
| `folder-items`                  | Sync the contents of configured Canva folders.                               | [Sync](/guides/functions/syncs/sync-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/canva/syncs/folder-items.ts)                    |

## Access requirements

| Pre-Requisites    | Status | Comment                          |
| ----------------- | ------ | -------------------------------- |
| Paid dev account  | ❌      | Not required                     |
| Paid test account | ❌      | Not required                     |
| Partnership       | ❌      | Not required                     |
| App review        | ✅      | Required for public integrations |
| Security audit    | ❌      | Not required                     |

## Setup guide

1. Create a Canva Developer Account
   * Enable Multi-factor Authentication (MFA) on your Canva account
   * Log in to the [Canva Developer Portal](https://www.canva.dev/portal)

2. Create an Integration
   * Navigate to "Your integrations" page
   * Click "Create an integration"
   * Choose between Public or Private integration:
     * Public: Available to all Canva users (requires review)
     * Private: Only for your team on Canva Enterprise plan
   * Accept the Canva Developer Terms

3. Configure Your Integration
   * Set a name for your integration
   * Save your Client ID and Client Secret
   * Configure required scopes (see Scopes section below)
   * Set up redirect URLs (up to 10 allowed)
   * For local development, use `http://127.0.0.1:<port>`

4. Required Scopes
   * `asset:read`: View metadata for user's assets
   * `asset:write`: Upload, update, or delete assets
   * `brandtemplate:content:read`: Read brand template content
   * `brandtemplate:meta:read`: View brand template metadata
   * `collaboration:event`: Receive webhook notifications
   * `comment:read`: View design comments
   * `comment:write`: Create comments and replies
   * `design:content:read`: View design contents
   * `design:content:write`: Create designs
   * `design:meta:read`: View design metadata
   * `design:permission:read`: View design permissions
   * `design:permission:write`: Manage design permissions
   * `folder:permission:read`: View folder permissions
   * `folder:permission:write`: Manage folder permissions
   * `folder:read`: View folder metadata and contents
   * `folder:write`: Manage folders
   * `profile:read`: Read user profile information

<Tip>Need help getting started? Get help in the [community](https://nango.dev/slack).</Tip>

<Note>Contribute improvements to the setup guide by [editing this page](https://github.com/nangohq/nango/tree/master/docs/integrations/all/canva.mdx)</Note>

## Useful links

* [Canva Connect APIs Documentation](https://www.canva.dev/docs/connect/)
* [Creating Integrations Guide](https://www.canva.dev/docs/connect/creating-integrations/)
* [Scopes Documentation](https://www.canva.dev/docs/connect/appendix/scopes/)

<Note>Contribute useful links by [editing this page](https://github.com/nangohq/nango/tree/master/docs/integrations/all/canva.mdx)</Note>

## API gotchas

* Local development requires using `127.0.0.1` instead of `localhost` for the redirect URL in the integration settings
* For webhook notifications, you must enable the `collaboration:event` scope

<Note>Contribute API gotchas by [editing this page](https://github.com/nangohq/nango/tree/master/docs/integrations/all/canva.mdx)</Note>
