Canva · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Canva Connect Design API
9 actions
9 updates
phrasing
extends
openapi/canva-design-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Canva's API. It is a proposal applied on top of the contract, not a document Canva publishes.
What the actions change
x-apievangelist-phrasing
Targets 9
$.info
$.paths['/v1/designs'].get
$.paths['/v1/designs'].post
$.paths['/v1/designs/{designId}'].get
$.paths['/v1/designs/{designId}/pages'].get
$.paths['/v1/designs/{designId}/export-formats'].get
$.paths['/v1/designs/{designId}/dataset'].get
$.paths['/v1/print-partner/designs'].post
$.paths['/v1/print-partner/designs/{designId}'].get
OpenAPI Overlay
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
title: API Evangelist conversational phrasing for Canva Connect Design API
version: 1.0.0
extends: openapi/canva-design-api-openapi.yml
actions:
- target: $.info
update:
x-apievangelist-phrasing:
method: generated
generated: '2026-09-26'
generator: build-phrasing.py
label: Generated by API Evangelist
operations: 8
- target: $.paths['/v1/designs'].get
update:
x-apievangelist-phrasing:
intent: List or search my designs
effect: read
questions:
- How do I list all the designs in my Canva projects?
- Can I show only designs shared with me rather than ones I created?
- Which designs match a search term, sorted by last edit?
instructions:
- text: List my designs.
- text: Search my designs for {query}.
slots:
query: query.query
- text: List designs with ownership {ownership} sorted by {sort_by}.
slots:
ownership: query.ownership
sort_by: query.sort_by
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/designs'].post
update:
x-apievangelist-phrasing:
intent: Create a new design
effect: write
questions:
- How do I create a blank presentation or custom-size design?
- What is the maximum size for a custom design?
- Can I start a new design with one of my assets already inserted?
instructions:
- text: Create a new presentation design.
- text: Create a custom 1080 by 1080 pixel design.
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/designs/{designId}'].get
update:
x-apievangelist-phrasing:
intent: Get a design's metadata
effect: read
questions:
- How do I get the edit and view URLs for a design?
- Who owns a design and what does its thumbnail look like?
instructions:
- text: Get design {designId}.
slots:
designId: path.designId
- text: Show the edit link and owner of design {designId}.
slots:
designId: path.designId
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/designs/{designId}/pages'].get
update:
x-apievangelist-phrasing:
intent: List the pages in a design
effect: read
questions:
- Can I get thumbnails for each page of a design?
- How do I fetch only a range of pages from a long presentation?
- Do Canva docs have pages I can list?
instructions:
- text: List the pages of design {designId}.
slots:
designId: path.designId
- text: Show {limit} pages of design {designId} starting at page {offset}.
slots:
limit: query.limit
designId: path.designId
offset: query.offset
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/designs/{designId}/export-formats'].get
update:
x-apievangelist-phrasing:
intent: List export formats available for a design
effect: read
questions:
- Which file formats can I export this design to?
- Can every page of my design be exported as MP4 or only some?
instructions:
- text: List the export formats available for design {designId}.
slots:
designId: path.designId
- text: Check which pages of design {designId} support each export format.
slots:
designId: path.designId
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/designs/{designId}/dataset'].get
update:
x-apievangelist-phrasing:
intent: Get a design's autofill data fields
effect: read
questions:
- Does my design contain autofill data fields, and what types do they take?
- How do I see the dataset definition of a regular design, not a template?
instructions:
- text: Get the dataset definition of design {designId}.
slots:
designId: path.designId
- text: List the autofill fields in design {designId}.
slots:
designId: path.designId
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/print-partner/designs'].post
update:
x-apievangelist-phrasing:
intent: Create a design for a print product
effect: write
questions:
- As a print partner, how do I create a design from a product ID?
- Can I set bleed and page limits when creating a print design?
instructions:
- text: Create a print partner design from {design_source}.
slots:
design_source: requestBody.design_source
- text: Create print design {title} from {design_source} with bleed {bleed}.
slots:
title: requestBody.title
design_source: requestBody.design_source
bleed: requestBody.bleed
- text: Create a print design from {design_source} allowing {min_pages} to {max_pages} pages.
slots:
design_source: requestBody.design_source
min_pages: requestBody.min_pages
max_pages: requestBody.max_pages
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/print-partner/designs/{designId}'].get
update:
x-apievangelist-phrasing:
intent: Get a print partner design with proofing
effect: read
questions:
- How does a print partner fetch a design's URLs with proofing settings applied?
- Why do I have to pass bleed again when reading a print design?
instructions:
- text: Get print partner design {designId}.
slots:
designId: path.designId
- text: Get print design {designId} with bleed {bleed} and at most {max_pages} pages.
slots:
designId: path.designId
bleed: query.bleed
max_pages: query.max_pages
method: generated
generated: '2026-09-26'