PHPackages                             carmelosantana/coqui-toolkit-canva - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. carmelosantana/coqui-toolkit-canva

ActiveLibrary

carmelosantana/coqui-toolkit-canva
==================================

Canva Connect API toolkit for Coqui — create designs, manage assets, export files, autofill templates, and more via the Canva REST API.

v0.1.0(1mo ago)00MITPHPPHP ^8.4

Since Apr 8Pushed 1mo agoCompare

[ Source](https://github.com/carmelosantana/coqui-canva)[ Packagist](https://packagist.org/packages/carmelosantana/coqui-toolkit-canva)[ RSS](/packages/carmelosantana-coqui-toolkit-canva/feed)WikiDiscussions main Synced yesterday

READMEChangelogDependencies (4)Versions (2)Used By (0)

Canva Toolkit for Coqui
=======================

[](#canva-toolkit-for-coqui)

Comprehensive Canva Connect API toolkit for [Coqui](https://github.com/coquibot/coqui). Provides structured access to the Canva REST API v1 for design management, asset uploads, exports, folders, comments, brand templates, and autofill.

Installation
------------

[](#installation)

```
composer require coquibot/coqui-toolkit-canva
```

The toolkit is auto-discovered by Coqui on startup. No additional configuration required.

Authentication Setup
--------------------

[](#authentication-setup)

### 1. Create a Canva Integration

[](#1-create-a-canva-integration)

1. Go to the [Canva Developer Portal](https://www.canva.com/developers/)
2. Create a new integration (or use an existing one)
3. Set the redirect URL to `http://127.0.0.1` (the toolkit uses a random high port for the callback)
4. Note your **Client ID** and **Client Secret**

### 2. Configure Credentials

[](#2-configure-credentials)

In Coqui, set your credentials:

```
credentials(action: "set", key: "CANVA_CLIENT_ID", value: "your-client-id")
credentials(action: "set", key: "CANVA_CLIENT_SECRET", value: "your-client-secret")

```

### 3. Authenticate

[](#3-authenticate)

```
canva_auth(action: "login")

```

This opens your browser for OAuth authorization. After granting access, the toolkit stores tokens securely and auto-refreshes them.

### Required Scopes

[](#required-scopes)

The toolkit requests these scopes during OAuth:

ScopeTools`design:content:read`canva\_export`design:content:write`canva\_design (create), canva\_autofill`design:meta:read`canva\_design (list, get)`asset:read`canva\_asset (get, list)`asset:write`canva\_asset (upload, update, delete)`folder:read`canva\_folder (list\_items, get)`folder:write`canva\_folder (create, update, delete, move\_item)`brandtemplate:meta:read`canva\_brand\_template (list, get)`brandtemplate:content:read`canva\_brand\_template (dataset), canva\_autofill`comment:read`canva\_comment (list\_threads, get\_thread)`comment:write`canva\_comment (create\_thread, create\_reply)`profile:read`canva\_userTools Reference
---------------

[](#tools-reference)

### canva\_auth

[](#canva_auth)

Manage OAuth authentication.

ActionDescription`login`Opens browser for OAuth authorization`status`Shows current authentication status and token expiry`logout`Revokes tokens and clears stored credentials### canva\_design

[](#canva_design)

Create and manage Canva designs.

ActionParametersDescription`create``design_type` (doc/whiteboard/presentation/custom), `title`, `width`, `height`, `asset_id`Create a new design`list``query`, `sort_by`, `continuation`List designs with search and pagination`get``design_id`Get design details by ID`delete``design_id`Delete a design (gated)### canva\_export

[](#canva_export)

Export designs to various formats. Jobs are polled automatically.

ActionParametersDescription`create``design_id`, `format` (pdf/jpg/png/pptx/gif/mp4), `pages`, `quality`, `width`, `height`Create export job and poll for completion`status``job_id`Check export job status### canva\_asset

[](#canva_asset)

Upload and manage media assets.

ActionParametersDescription`upload``file_path`, `name`Upload a file as a Canva asset`get``asset_id`Get asset details`list``continuation`List assets with pagination`update``asset_id`, `name`, `tags`Update asset metadata`delete``asset_id`Delete an asset (gated)`upload_status``job_id`Check upload job status### canva\_folder

[](#canva_folder)

Organize designs and assets into folders.

ActionParametersDescription`create``name`, `parent_folder_id`Create a new folder`list_items``folder_id`, `item_type`, `sort_by`, `continuation`List items in a folder`get``folder_id`Get folder details`update``folder_id`, `name`Rename a folder`delete``folder_id`Delete a folder (gated)`move_item``folder_id`, `item_id`, `item_type`Move an item to a folder### canva\_comment

[](#canva_comment)

Manage design comments and threads.

ActionParametersDescription`create_thread``design_id`, `message`Create a new comment thread`list_threads``design_id`, `continuation`List comment threads on a design`create_reply``thread_id`, `message`Reply to a comment thread`get_thread``thread_id`Get full thread with replies### canva\_user

[](#canva_user)

Get authenticated user information.

ActionDescription`profile`Get the current user's profile### canva\_brand\_template (Enterprise)

[](#canva_brand_template-enterprise)

Manage brand templates. Requires Canva Enterprise subscription.

ActionParametersDescription`list``query`, `continuation`List available brand templates`get``template_id`Get template details`dataset``template_id`Get autofillable fields and their types### canva\_autofill (Enterprise)

[](#canva_autofill-enterprise)

Create designs from brand templates with data. Requires Canva Enterprise.

ActionParametersDescription`create``template_id`, `data` (JSON), `title`Autofill a template and poll for completion`status``job_id`Check autofill job statusWorkflow Examples
-----------------

[](#workflow-examples)

### Create and Export a Presentation

[](#create-and-export-a-presentation)

```
canva_auth(action: "status")
canva_design(action: "create", design_type: "presentation", title: "Q4 Review")
canva_export(action: "create", design_id: "DAFxyz123", format: "pdf")

```

### Upload Assets and Organize

[](#upload-assets-and-organize)

```
canva_asset(action: "upload", file_path: "/path/to/logo.png", name: "Company Logo")
canva_folder(action: "create", name: "Brand Assets")
canva_folder(action: "move_item", folder_id: "FAFabc", item_id: "AAFxyz")

```

### Autofill a Brand Template (Enterprise)

[](#autofill-a-brand-template-enterprise)

```
canva_brand_template(action: "list", query: "social")
canva_brand_template(action: "dataset", template_id: "BTFxyz")
canva_autofill(action: "create", template_id: "BTFxyz", data: '{"headline": "Summer Sale", "discount": "30% off"}')
canva_export(action: "create", design_id: "...", format: "png")

```

### Add Design Feedback

[](#add-design-feedback)

```
canva_comment(action: "create_thread", design_id: "DAFxyz", message: "The logo needs more padding on the left")
canva_comment(action: "list_threads", design_id: "DAFxyz")

```

MCP Integration (Canva AI Connector)
------------------------------------

[](#mcp-integration-canva-ai-connector)

In addition to this REST API toolkit, Canva offers an MCP server (Canva AI Connector) for design operations. You can use both simultaneously — the REST toolkit for structured programmatic access and the MCP connector for interactive design operations.

### Setting Up the Canva AI Connector

[](#setting-up-the-canva-ai-connector)

Add to your `.workspace/mcp.json`:

```
{
    "servers": {
        "canva": {
            "type": "stdio",
            "command": "npx",
            "args": ["-y", "@anthropic-ai/canva-mcp-server"],
            "env": {
                "CANVA_CLIENT_ID": "${CANVA_CLIENT_ID}",
                "CANVA_CLIENT_SECRET": "${CANVA_CLIENT_SECRET}"
            }
        }
    }
}
```

The MCP connector shares the same `CANVA_CLIENT_ID` and `CANVA_CLIENT_SECRET` credentials.

Designer Role
-------------

[](#designer-role)

The toolkit includes a `designer` agent role optimized for creative work. Spawn it as a child agent:

```
spawn_agent(role: "designer", task: "Create a presentation deck for our Q4 review")

```

The designer role brings expertise in visual design principles, brand consistency, and Canva workflow patterns.

Rate Limits
-----------

[](#rate-limits)

Canva enforces per-user rate limits:

Endpoint CategoryLimitGeneral100 requests/minuteDesign creation20 requests/minuteExports20 requests/minuteAsset uploads20 requests/minuteThe toolkit automatically retries once on rate limit (429) responses using the `Retry-After` header.

Enterprise Features
-------------------

[](#enterprise-features)

Brand templates and autofill require a Canva Enterprise subscription. Non-Enterprise users will see a clear error message when attempting to use these features. All other tools work with any Canva plan.

Development
-----------

[](#development)

```
# Install dependencies
composer install

# Run tests
vendor/bin/pest

# Static analysis
vendor/bin/phpstan analyse
```

License
-------

[](#license)

MIT

###  Health Score

36

—

LowBetter than 82% of packages

Maintenance93

Actively maintained with recent releases

Popularity0

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

34d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/597820?v=4)[Carmelo Santana](/maintainers/carmelosantana)[@carmelosantana](https://github.com/carmelosantana)

---

Top Contributors

[![carmelosantana](https://avatars.githubusercontent.com/u/597820?v=4)](https://github.com/carmelosantana "carmelosantana (1 commits)")

---

Tags

exportassetsdesigntoolkitphp-agentscoquiautofillcanvabrand-templates

###  Code Quality

TestsPest

Static AnalysisPHPStan

Type Coverage Yes

### Embed Badge

![Health badge](/badges/carmelosantana-coqui-toolkit-canva/health.svg)

```
[![Health](https://phpackages.com/badges/carmelosantana-coqui-toolkit-canva/health.svg)](https://phpackages.com/packages/carmelosantana-coqui-toolkit-canva)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
