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

> ## Agent Instructions
> To act on a user's behalf in Guild, use the Guild REST API at https://api.guild.ai/v1.
> The OpenAPI spec is unauthenticated: https://docs.guild.ai/openapi.json (or openapi.yaml).
> Authenticate with an account API key, sent as HTTP Basic (key id as username, secret as password) or as `Authorization: Bearer <api_key_id>:<api_key_secret>`. See https://docs.guild.ai/api-reference/introduction#authentication.
> To run one agent on demand without account-wide access, use an API trigger instead: https://docs.guild.ai/platform/api-triggers.
> To act on Guild from an MCP client, connect to https://api.guild.ai/mcp (OAuth) or run `guild mcp` locally. Setup: https://docs.guild.ai/api-reference/mcp.
> To search these docs from an MCP client, connect to https://docs.guild.ai/mcp. The full page index is https://docs.guild.ai/llms.txt.

# Create, export, and manage Canva designs from Guild agents

> Connect Guild agents to Canva to create designs, export files, manage folders and assets, autofill brand templates, and handle comment threads.

Integrations · Canva

A Guild agent can create Canva designs, export files, manage folders and assets, autofill brand templates, and handle comment threads on behalf of your team. Guild stores the Canva API key server-side and injects it as a bearer token, so agent code never sees the credential. Credential policies let you restrict which operations each agent may call before any request reaches Canva.

> [card] [Book a demo](https://guild-ai.cal.com/gtm/meeting-with-guild.ai)
>
> See how teams govern agents that use Canva.

> [card] [Talk to sales](https://guild.ai/talk-to-sales)
>
> Get access to Guild, then connect Canva to your first agent.

## What the Canva integration exposes

The integration is `guildai~canva-openapi` and covers the Canva Connect REST API. Tools span design creation, resizing, and export jobs; folder and asset management including URL-based uploads and imports; brand template listing, dataset retrieval, autofill jobs, and publishing; and comment thread and reply handling. Several tools are marked preview by Canva and may change. Resize and autofill tools require the acting user to hold a Canva Pro, Teams, or Enterprise plan.

## How it works

**1. Open credentials in Guild**

Go to **Access & setup > Credentials** in Guild. Click **Connect**, then search for and select **canva-openapi**.

**2. Paste your Canva API key**

Enter your key into the **API Key** field. Guild stores it and sends it as a bearer token in the `Authorization` header on every request.

**3. Import and wire the tools**

Import `CanvaOpenapiTools` from `@guildai-services/guildai~canva-openapi` and spread it into your agent's `tools` object. Use [`pick()`](https://docs.guild.ai/sdk/tools#selecting-specific-tools) to include only the tools your agent needs.

## Why Canva access needs governing

Canva credentials can create and publish designs, delete assets, and autofill brand templates across a user's content library. Guild lets you scope a credential to a single workspace, a single member, or a single agent, so access never spreads further than intended. See [Credentials](https://docs.guild.ai/platform/credentials.md) for the full scoping model and resolution order.

Beyond scoping, [credential policies](https://docs.guild.ai/platform/credential-policies.md) let you write ALLOW and DENY rules that Guild's proxy enforces before any request leaves the platform. You can restrict an agent to read-only export and list operations, block destructive tools like asset or folder deletion, or limit access to specific agents or workspaces on the same credential. The credential is injected server-side only after the policy check passes; agents cannot bypass it.

## About the Canva integration

Agents can create, list, resize, and export Canva designs, as well as manage folders and upload or update assets in a user's content library. They can autofill and publish brand templates and handle comment threads on designs. Export jobs and import jobs from external URLs are also supported. The integration is `guildai~canva-openapi`.

## Authentication

* **Type:** API key
* **Header:** Guild sends the key as a bearer token in the `Authorization` header

### Setup

**1. Connect Canva**

In Guild, go to **Access & setup > Credentials**, click **Connect**, select **canva-openapi**, and paste the key into **API Key**.

See [Credentials](https://docs.guild.ai/platform/credentials.md) for workspace, member, and agent-scoped credentials.

## Usage

```typescript theme={null}
import { CanvaOpenapiTools } from "@guildai-services/guildai~canva-openapi"
import { llmAgent } from "@guildai/agents-sdk"

export default llmAgent({
  systemPrompt: "You work with Canva.",
  tools: { ...CanvaOpenapiTools },
})
```

### Selecting specific tools

Tools are named with the `canva_openapi_` prefix. Use [`pick()`](https://docs.guild.ai/sdk/tools#selecting-specific-tools) to include only what your agent needs.

## Tools

Tools in the latest published version of `guildai~canva-openapi`:

> [accordion] All 65 tools
>
> | Tool | What it does |
> | - | - |
> | `canva_openapi_create_comment` | This preview API is deprecated. |
> | `canva_openapi_create_design` | Creates a new Canva design. |
> | `canva_openapi_create_design_autofill_job` | Autofill for designs and brand templates is available when your app acts on behalf of a user on Canva Pro (including Canva Education and Canva for Nonprofits), Canva Teams, or Canva Enterprise. |
> | `canva_openapi_create_design_export_job` | Starts a new asynchronous job to export a file from Canva. |
> | `canva_openapi_create_design_generation_job_v2` | This API is currently provided as a preview. |
> | `canva_openapi_create_design_merge_job` | This API is currently provided as a preview. |
> | `canva_openapi_create_design_resize_job` | To use this API, your app must act on behalf of a user that's on a Canva plan with premium features (such as Canva Pro). |
> | `canva_openapi_create_folder` | Creates a folder in one of the following locations. |
> | `canva_openapi_create_image_generation_job` | This API is currently provided as a preview. |
> | `canva_openapi_create_image_to_design_import_job` | This API is currently provided as a preview. |
> | `canva_openapi_create_image_transformation_job` | This API is currently provided as a preview. |
> | `canva_openapi_create_print_partner_design` | This API is currently provided as a preview. |
> | `canva_openapi_create_print_partner_design_export_job` | This API is currently provided as a preview. |
> | `canva_openapi_create_reply` | This API is currently provided as a preview. |
> | `canva_openapi_create_thread` | This API is currently provided as a preview. |
> | `canva_openapi_create_url_asset_upload_job` | Starts a new asynchronous job to upload an asset from a URL to the user's content library. |
> | `canva_openapi_create_url_import_job` | Starts a new asynchronous job to import an external file from a URL as a new design in Canva. |
> | `canva_openapi_delete_asset` | You can delete an asset by specifying its `assetId`. |
> | `canva_openapi_delete_folder` | Deletes a folder with the specified `folderID`. |
> | `canva_openapi_exchange_access_token` | This endpoint implements the OAuth 2.0 `token` endpoint, as part of the Authorization Code flow with Proof Key for Code Exchange (PKCE). |
> | `canva_openapi_get_app_jwks` | Returns the Json Web Key Set (public keys) of an app. |
> | `canva_openapi_get_asset` | You can retrieve the metadata of an asset by specifying its `assetId`. |
> | `canva_openapi_get_asset_upload_job` | Get the result of an asset upload job that was created using the Create asset upload job API. |
> | `canva_openapi_get_brand_template` | AVAILABILITY: To use this API, your app must act on behalf of a user that's on a Canva plan with access to brand templates (such as Canva Pro, Canva Teams, or Canva Enterprise). |
> | `canva_openapi_get_brand_template_dataset` | AVAILABILITY: To use this API, your app must act on behalf of a user that's on a Canva plan with access to brand templates (such as Canva Pro, Canva Teams, or Canva Enterprise). |
> | `canva_openapi_get_design` | Gets the metadata for a design. |
> | `canva_openapi_get_design_analytics` | This API is currently provided as a preview. |
> | `canva_openapi_get_design_analytics_links` | This API is currently provided as a preview. |
> | `canva_openapi_get_design_analytics_page_views` | This API is currently provided as a preview. |
> | `canva_openapi_get_design_analytics_viewers` | This API is currently provided as a preview. |
> | `canva_openapi_get_design_analytics_views_over_time` | This API is currently provided as a preview. |
> | `canva_openapi_get_design_autofill_job` | Autofill for designs and brand templates is available when your app acts on behalf of a user on Canva Pro (including Canva Education and Canva for Nonprofits), Canva Teams, or Canva Enterprise. |
> | `canva_openapi_get_design_dataset` | Gets the dataset definition of a design. |
> | `canva_openapi_get_design_export_formats` | Lists the available file formats for exporting a design. |
> | `canva_openapi_get_design_export_job` | Gets the result of a design export job that was created using the Create design export job API. |
> | `canva_openapi_get_design_generation_job_v2` | This API is currently provided as a preview. |
> | `canva_openapi_get_design_import_job` | Gets the result of a design import job created using the Create design import job API. |
> | `canva_openapi_get_design_merge_job` | This API is currently provided as a preview. |
> | `canva_openapi_get_design_pages` | This API is currently provided as a preview. |
> | `canva_openapi_get_design_resize_job` | To use this API, your app must act on behalf of a user that's on a Canva plan with premium features (such as Canva Pro). |
> | `canva_openapi_get_folder` | Gets the name and other details of a folder using a folder's `folderID`. |
> | `canva_openapi_get_image_generation_job` | This API is currently provided as a preview. |
> | `canva_openapi_get_image_to_design_import_job` | This API is currently provided as a preview. |
> | `canva_openapi_get_image_transformation_job` | This API is currently provided as a preview. |
> | `canva_openapi_get_oidc_jwks` | Gets the JSON Web Key Set (public keys) for OIDC. |
> | `canva_openapi_get_print_partner_design` | This API is currently provided as a preview. |
> | `canva_openapi_get_reply` | This API is currently provided as a preview. |
> | `canva_openapi_get_signing_public_keys` | This API is currently provided as a preview. |
> | `canva_openapi_get_thread` | This API is currently provided as a preview. |
> | `canva_openapi_get_url_asset_upload_job` | Get the result of an asset upload job that was created using the Create asset upload job via URL API. |
> | `canva_openapi_get_url_import_job` | Gets the result of a URL import job created using the Create URL import job API. |
> | `canva_openapi_get_user_capabilities` | Lists the API capabilities for the user account associated with the provided access token. |
> | `canva_openapi_get_user_profile` | Currently, this returns the display name of the user account associated with the provided access token. |
> | `canva_openapi_introspect_token` | Introspect an access token to see whether it is valid and active. |
> | `canva_openapi_list_brand_templates` | AVAILABILITY: To use this API, your app must act on behalf of a user that's on a Canva plan with access to brand templates (such as Canva Pro, Canva Teams, or Canva Enterprise). |
> | `canva_openapi_list_designs` | Lists metadata for all the designs in a Canva user's projects. |
> | `canva_openapi_list_folder_items` | Lists the items in a folder, including each item's `type`. |
> | `canva_openapi_list_replies` | This API is currently provided as a preview. |
> | `canva_openapi_move_folder_item` | Moves an item to another folder. |
> | `canva_openapi_publish_brand_template` | This API is currently provided as a preview. |
> | `canva_openapi_revoke_tokens` | Revoke an access token or a refresh token. |
> | `canva_openapi_update_asset` | You can update the name and tags of an asset by specifying its `assetId`. |
> | `canva_openapi_update_folder` | Updates a folder's details using its `folderID`. |
> | `canva_openapi_user_info` | Fetches the current UserInfo claims for the authorized user. |
> | `canva_openapi_users_me` | Returns the User ID and Team ID of the user account associated with the provided access token. |

## Frequently asked questions

> [accordion] Can I limit an agent to only reading designs without letting it create or delete anything?
>
> Yes. Write a credential policy that allows only the list and get operations, such as `canva_openapi_list_designs`, `canva_openapi_get_design`, and `canva_openapi_get_folder`, and denies everything else. Guild's proxy enforces the policy before any request reaches Canva. See [credential policies](https://docs.guild.ai/platform/credential-policies.md) for the rule syntax.

> [accordion] Does the integration support webhook events from Canva?
>
> No. The catalog entry for `guildai~canva-openapi` lists no webhook events, so event-triggered runs from Canva are not available through this integration.

> [accordion] Do resize and autofill tools work on any Canva account?
>
> Not on every account. The `canva_openapi_create_design_resize_job` tool requires the acting user to be on a Canva plan with premium features such as Canva Pro. Autofill tools require Canva Pro, Canva Education, Canva for Nonprofits, Canva Teams, or Canva Enterprise.

> [accordion] Can different agents use different Canva accounts from the same Guild organization?
>
> Yes. Connect a dedicated credential for each agent, or scope separate credentials to individual workspaces or members. Guild resolves credentials in a defined order, checking agent-dedicated credentials before workspace and account defaults. See [Credentials](https://docs.guild.ai/platform/credentials.md) for the full resolution order.

## Put a governed agent on Canva this week

> [card] [Book a demo](https://guild-ai.cal.com/gtm/meeting-with-guild.ai)
>
> See how teams govern agents that use Canva.

> [card] [Talk to sales](https://guild.ai/talk-to-sales)
>
> Get access to Guild, then connect Canva to your first agent.

## Related

**Also runs on Guild:** [Figma](https://docs.guild.ai/integrations/figma.md)

**Read:** Docs: [Credential policies](https://docs.guild.ai/platform/credential-policies.md) · [Credentials](https://docs.guild.ai/platform/credentials.md) · [Tools in agents](https://docs.guild.ai/sdk/tools.md)
