Skip to content
← Community packages

@kody/canva

TrustedFeatured

by @kodyFollow @kody

Create, organize, collaborate on, import, and export Canva content through the Connect API.

  • canva
  • design
  • assets
  • folders
  • comments
  • import
  • export
  • oauth
License
MIT
Published
July 21, 2026
Pinned commit
44dc6b4
Rating
No ratings yet
Forks
0
Stars
0
Adaptation effort

One-click install

Install forks this package into your account and publishes it right away when it passes the standard package checks. An admin reviewed and trusted this exact version.

Log in to install this package.

Fork with your agent

Copy this prompt into your MCP-capable agent to fork and adapt the package safely. Installing creates a fork you own; the original author can't change it out from under you.

Use Kody to fork the community package "@kody/canva" (listing id: c5c8bc47-4a26-4641-b038-789e9691fe8d). Call community_get with that listing id first, review the package source for safety and cross-scope imports before publishing anything, update the README Intent section to match my goals, and after adapting it, rate it with community_rate.

README

@kody/canva

Intent

Provide a complete, reusable Canva Connect API package for Kody workflows. It covers every operation in the configured Canva OpenAPI surface while keeping mutations explicit, previewable, and safe to publish as a community package.

When to use

  • Create, inspect, search, resize, merge, import, or export Canva designs.
  • Upload, inspect, rename, tag, or delete assets.
  • Create and organize folders, then list or move their contents.
  • Read and write comment threads and replies.
  • Work with brand templates, autofill datasets, user capabilities, and OIDC.
  • Call a newly added operation through the generic API dispatcher while this package's convenience exports catch up.

Required setup

Create a Canva Connect API integration, use https://heykody.dev/connect/oauth as its redirect URI, and save the OAuth integration in Kody as canva. Connect or reconnect it at:

https://heykody.dev/connect/oauth?provider=canva

The integration needs api.canva.com and www.canva.com as approved hosts. Grant only the scopes your workflows require. The complete surface can use:

  • asset:read, asset:write
  • brandtemplate:content:read, brandtemplate:content:write, brandtemplate:meta:read
  • comment:read, comment:write
  • design:content:read, design:content:write, design:meta:read
  • folder:read, folder:write, folder:permission:write
  • profile:read

Exports

  • kody:@kody/canva — package overview, coverage, and safety metadata.
  • kody:@kody/canva/api — named helpers for all 48 operations plus a default generic dispatcher.
  • kody:@kody/canva/operations — the operation catalog with methods, paths, domains, and preview/deprecation flags.
  • kody:@kody/canva/smoke-test — verify OAuth access without returning Canva profile data.

Designs and jobs

createDesign, getDesign, listDesigns, getDesignPages, getDesignDataset, getDesignExportFormats, createDesignResizeJob, getDesignResizeJob, createDesignMergeJob, getDesignMergeJob, createPrintPartnerDesign, and createPrintPartnerDesignExportJob.

Assets

createAssetUploadJob, getAssetUploadJob, createUrlAssetUploadJob, getUrlAssetUploadJob, getAsset, updateAsset, and deleteAsset.

Imports and exports

createDesignImportJob, getDesignImportJob, createUrlImportJob, getUrlImportJob, createDesignExportJob, and getDesignExportJob.

Folders

createFolder, getFolder, updateFolder, deleteFolder, listFolderItems, and moveFolderItem.

Comments

createThread, getThread, createReply, getReply, listReplies, and the deprecated createComment.

Brand templates and autofill

listBrandTemplates, getBrandTemplate, getBrandTemplateDataset, publishBrandTemplate, createDesignAutofillJob, and getDesignAutofillJob.

Users and OIDC

usersMe, getUserProfile, getUserCapabilities, userInfo, and getOidcJwks.

Request shape

Named helpers accept the native Canva request structure:

  • params for path placeholders such as designId or folderId.
  • query for filters, pagination tokens, sorting, and limits.
  • headers for operation-specific metadata headers. An injected Authorization header is always ignored.
  • body for JSON or binary request bodies.
  • confirm and dryRun for mutation safety.
import { getDesign, listDesigns } from 'kody:@kody/canva/api'

const recent = await listDesigns({
	query: { ownership: 'owned', sort_by: 'modified_descending', limit: 10 },
})

const design = await getDesign({ params: { designId: 'DAVZr1z5464' } })

The default export dispatches by lowercase OpenAPI operation slug:

import canva from 'kody:@kody/canva/api'

await canva({
	operation: 'listdesigns',
	input: { query: { limit: 5 } },
})

Mutation safety

Every POST, PATCH, and DELETE operation requires confirm: true after the user approves the exact action. Use dryRun: true to return the method, path template, and request without contacting Canva.

import { createDesign } from 'kody:@kody/canva/api'

const preview = await createDesign({
	body: {
		design_type: { type: 'preset', name: 'presentation' },
		title: 'Quarterly review',
	},
	dryRun: true,
})

const result = await createDesign({
	body: preview.request.body,
	confirm: true,
})

API notes

  • Canva preview APIs can change without notice and cannot be used in public Canva integrations submitted for review. They are marked preview in the operation catalog.
  • createComment is retained for complete API coverage but is deprecated; prefer createThread.
  • Resize APIs require Canva Pro or another eligible plan. Autofill and some brand-template operations require Canva Enterprise.
  • Async create operations return job IDs. Poll the corresponding get*Job helper until Canva reports success or failed.
  • Rate-limit errors throw CanvaApiError with status, body, and retryAfter fields.
  • community-icon.svg is Canva's approved, unmodified gradient icon asset.

Stars

0 stars

Log in to star this package.

Report this listing

Log in to report this listing.