Setu Recipes: reusable workflows across every app.Browse templates

Integrations / Canva

Canva

Design platform: list and open designs, create new blank designs.

3 actions OAuth 2 2 read1 write Calls api.canva.com

Connect

TypeScript
const conn = await setu.connections.initiate({ userId: "user_1", toolkit: "canva" });
console.log(conn.connectUrl); // show this to your user
await conn.waitUntilActive();

Permissions requested

ScopeWhy it is requested
design:meta:readSee the titles and links of your designs
design:content:writeCreate new designs

Actions

Create designwritecanva.create_designCreate a new blank Canva design from a preset type and return its id and edit link.

Needs scope: design:content:write

InputTypeDescription
presetstringRequired
titlestringOptional1 to 255 characters
TypeScript
await setu.execute({
  userId: "user_1",
  action: "canva.create_design",
  input: {
    "preset": "<preset>"
  },
});
Get designreadcanva.get_designGet one Canva design's title, page count and temporary edit and view links.

Needs scope: design:meta:read

InputTypeDescription
design_idstringRequired
TypeScript
await setu.execute({
  userId: "user_1",
  action: "canva.get_design",
  input: {
    "design_id": "<design_id>"
  },
});
List designsreadcanva.list_designsList or search the connected user's Canva designs, newest or most relevant first, with paging.

Needs scope: design:meta:read

InputTypeDescription
querystringOptionalSearch text, max 255 characters
ownershipstringOptional
sort_bystringOptional
limitintegerOptional1 to 100, default 25
continuationstringOptionalToken from a previous page
TypeScript
await setu.execute({
  userId: "user_1",
  action: "canva.list_designs",
  input: {},
});