El catálogo/Canva

Canva

app.canva

Create, export, and manage Canva designs, folders, assets, and brand templates

OAuth 2designLeer el código
Versión2.0.0
Categoríadesign
AutenticaciónOAuth 2
Herramientas35
Transportestdio
LicenciaMIT
01

Qué hace

La aplicación, en sus propias palabras.

Canva design management — designs, exports, resizes, folders, assets, brand templates, autofill, and comments via the Canva Connect API.

canvadesigngraphicstemplatesexportresizecomments
02

Herramientas

35 herramientas que el agente puede llamar.

Todas se declaran con parámetros tipados y devuelven resultados estructurados, así que el anfitrión puede renderizarlas en vez de narrarlas.

  • autofill-designCreate a design by autofilling a brand template with named fields. data keys must match the template dataset (call get-brand-template-dataset first). columnConfigs: optional chart-data field definitions. Async — returns curated job (poll get-autofill-job). Not retryable. Params: brandTemplateId, data, title?, columnConfigs?, fields?, includeRaw.
  • create-designCreate a new Canva design. Use designType=custom with width+height for a custom canvas, or one of the preset names (doc, whiteboard, presentation, email). Returns curated design. Not retryable. Params: designType, title?, width?, height?, assetId?, fields?, includeRaw.
  • create-folderCreate a new folder under a parent. Use parentFolderId="root" for top level. Returns curated folder. Not retryable. Params: name, parentFolderId, fields?, includeRaw.
  • create-replyReply to a comment thread. message ≤ 2048 chars. Returns curated reply. Not retryable. Params: designId, threadId, message, fields?, includeRaw.
  • create-resize-jobResize a design to a new size (preset or custom). Async — returns curated job (poll get-resize-job). Use designType="custom" with width+height OR a preset name. Output is a NEW design at top level. Not retryable. Params: designId, designType, width?, height?, fields?, includeRaw.
  • create-threadCreate a comment thread on a design. message ≤ 2048 chars. Returns curated thread. Not retryable. Params: designId, message, fields?, includeRaw.
  • delete-assetDelete an asset (moved to trash). Idempotent — repeated deletes return 404 (already deleted). Returns { assetId, deleted: true }. Params: assetId.
  • delete-folderDelete a folder. Items in the folder are moved to the parent. Idempotent — repeated deletes return 404. Returns { folderId, deleted: true }. Params: folderId.
  • export-designStart an export job for a design. Returns curated job (poll get-export-job by id). Formats: pdf, png, jpg, gif, pptx, mp4, html_bundle, html_standalone. transparentBackground only for png. Not retryable. Params: designId, format, quality?, width?, height?, pages?, transparentBackground?, fields?, includeRaw.
  • get-assetGet asset metadata. Returns curated { id, name, type, thumbnail*, tags, metadata, dates }. Params: assetId, fields?, includeRaw.
  • get-asset-upload-jobGet an asset URL upload job status/result. Returns curated job { id, status, error, result: {asset shape with thumbnailUrl}? }. Params: jobId, fields?, includeRaw.
  • get-autofill-jobGet an autofill job status/result. Returns curated job { id, status, error, result: design? }. Params: jobId, fields?, includeRaw.
  • get-brand-templateGet brand template metadata. Returns curated detail (id, title, thumbnailUrl, viewUrl, createUrl, dates). Params: brandTemplateId, fields?, includeRaw.
  • get-brand-template-datasetGet the autofill dataset (named fields like {title}, {body}, {image}) for a brand template. Returned shape mirrors Canva — useful before calling autofill-design. Params: brandTemplateId.
  • get-designGet a Canva design by ID. Returns curated detail (id, title, ownerUserId/teamId, thumbnail*, edit/view URLs, pageCount, dates). Params: designId, fields?, includeRaw.
  • get-design-export-formatsList the export formats supported by a specific design. Use this before export-design to avoid 400 errors on unsupported formats. Returns curated { formats: string[] }. Params: designId, fields?, includeRaw.
  • get-design-pagesGet pages of a Canva design with thumbnails (returns dimensions for bounded designs). Returns curated { pages: [{ index, thumbnailUrl, width, height }] }. Params: designId, fields?, includeRaw.
  • get-export-jobGet an export job status/result. Returns curated job { id, status, error, result.urls? }. Params: exportId, fields?, includeRaw.
  • get-folderGet folder metadata. Returns curated { id, name, thumbnailUrl, dates }. Params: folderId, fields?, includeRaw.
  • get-import-jobGet a URL design import job status/result. Returns curated job { id, status, error, result.designId? }. Params: jobId, fields?, includeRaw.
  • get-replyGet a single reply within a comment thread. Returns curated reply. Params: designId, threadId, replyId, fields?, includeRaw.
  • get-resize-jobGet a resize job status/result. Returns curated job { id, status, error, result: design? }. Params: jobId, fields?, includeRaw.
  • get-threadGet a comment thread by ID. Returns curated thread. Params: designId, threadId, fields?, includeRaw.
  • get-userGet the authenticated Canva user. Returns curated { userId, teamId }. Params: fields?, includeRaw.
  • get-user-capabilitiesGet the authenticated user capabilities (Canva plan + role gating). Returns curated { capabilities: string[] }. Use to decide whether features like brand templates or autofill are available before calling them. Params: fields?, includeRaw.
  • get-user-profileGet the authenticated user's profile. Returns curated { displayName }. Params: fields?, includeRaw.
  • import-designImport an external file (e.g. PDF, PPTX, DOCX) as a new Canva design. Async — returns curated job (poll get-import-job by id). url must be http/https. Not retryable. Params: title, url, mimeType?, fields?, includeRaw.
  • list-brand-templatesList brand templates the user can access (requires Canva Enterprise). Returns curated rows with thumbnail URL. Params: query?, ownership?, limit (1-100, def 25), continuation?, fields?, includeRaw.
  • list-designsList designs in the user's account with search/sort/pagination. Returns curated rows with thumbnail URL for inline preview. Params: query?, ownership? (any|owned|shared), sortBy?, limit (1-100, def 25), continuation?, fields?, includeRaw.
  • list-foldersList items in a folder (designs, sub-folders, images, videos). Use folderId="root" for top level. Returns curated rows with thumbnail URL. Params: folderId, itemTypes?, sortBy?, pinStatus? (pinned|unpinned), limit (1-100, def 50), continuation?, fields?, includeRaw.
  • list-repliesList replies to a comment thread. Returns curated rows. Params: designId, threadId, limit (1-100, def 50), continuation?, fields?, includeRaw.
  • move-itemMove an item (design / folder / asset) to another folder. Idempotent if target unchanged. Returns { itemId, toFolderId, moved: true }. Params: itemId, toFolderId.
  • update-assetUpdate asset metadata (rename, retag). Idempotent — same payload yields same final state. Returns curated asset. Params: assetId, name?, tags?, fields?, includeRaw.
  • update-folderRename a folder. Idempotent. Returns curated folder. Params: folderId, name, fields?, includeRaw.
  • upload-assetUpload an asset (image, video, audio) to the user library from a public URL. Async — returns curated job (poll get-asset-upload-job by id). url must be http/https. Not retryable. Params: name, url, fields?, includeRaw.
03

Autenticación y permisos

Qué pide.

Declarado en el manifiesto y por adelantado. La aplicación no puede alcanzar nada que no haya pedido aquí.

Permisos

design:content:readdesign:content:writedesign:meta:readdesign:permission:readdesign:permission:writefolder:readfolder:writefolder:permission:readfolder:permission:writeasset:readasset:writebrandtemplate:meta:readbrandtemplate:content:readcomment:readcomment:writeprofile:read

Secretos de sistema

CLIENT_IDCLIENT_SECRET

Secretos de usuario

ACCESS_TOKENREFRESH_TOKEN

Seguir leyendo

El manifiesto y el código de Canva están en el monorepo, junto al resto de aplicaciones.

Leer el códigoVolver al catálogo

Canva · Agent Apps