Canva · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Canva Connect Comment API

7 actions 7 updates phrasing extends openapi/canva-comment-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.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

Targets 7

$.info
$.paths['/v1/comments'].post
$.paths['/v1/designs/{designId}/comments/{threadId}/replies'].get
$.paths['/v1/designs/{designId}/comments/{threadId}/replies'].post
$.paths['/v1/designs/{designId}/comments/{threadId}'].get
$.paths['/v1/designs/{designId}/comments/{threadId}/replies/{replyId}'].get
$.paths['/v1/designs/{designId}/comments'].post

OpenAPI Overlay

Raw ↑
# 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 Comment API
  version: 1.0.0
extends: openapi/canva-comment-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: 6
- target: $.paths['/v1/comments'].post
  update:
    x-apievangelist-phrasing:
      intent: Add a top-level comment (deprecated)
      effect: write
      questions:
      - Can I still post a top-level comment with the older comments endpoint?
      - What is the maximum number of comments a design can have?
      instructions:
      - text: Post comment {message} on {attached_to} using the legacy comment endpoint.
        slots:
          message: requestBody.message
          attached_to: requestBody.attached_to
      - text: Add legacy comment {message} to {attached_to} and assign it to {assignee_id}.
        slots:
          message: requestBody.message
          attached_to: requestBody.attached_to
          assignee_id: requestBody.assignee_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/designs/{designId}/comments/{threadId}/replies'].get
  update:
    x-apievangelist-phrasing:
      intent: List replies in a comment thread
      effect: read
      questions:
      - How do I see all the replies in a comment thread on my design?
      - Can I page through replies to a suggestion thread?
      instructions:
      - text: List the replies in thread {threadId} on design {designId}.
        slots:
          threadId: path.threadId
          designId: path.designId
      - text: Show the first {limit} replies to thread {threadId} in design {designId}.
        slots:
          limit: query.limit
          threadId: path.threadId
          designId: path.designId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/designs/{designId}/comments/{threadId}/replies'].post
  update:
    x-apievangelist-phrasing:
      intent: Reply to a comment thread
      effect: write
      questions:
      - How do I respond to a comment someone left on my design?
      - Is there a limit on how many replies a thread can have?
      instructions:
      - text: Reply {message_plaintext} to thread {threadId} on design {designId}.
        slots:
          message_plaintext: requestBody.message_plaintext
          threadId: path.threadId
          designId: path.designId
      - text: Answer comment thread {threadId} in design {designId} with {message_plaintext}.
        slots:
          threadId: path.threadId
          designId: path.designId
          message_plaintext: requestBody.message_plaintext
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/designs/{designId}/comments/{threadId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a comment thread
      effect: read
      questions:
      - How do I fetch a single comment or suggestion thread on a design?
      - What does the opening message of a comment thread contain?
      instructions:
      - text: Get thread {threadId} on design {designId}.
        slots:
          threadId: path.threadId
          designId: path.designId
      - text: Show the original comment of thread {threadId} in design {designId}.
        slots:
          threadId: path.threadId
          designId: path.designId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/designs/{designId}/comments/{threadId}/replies/{replyId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get one reply in a comment thread
      effect: read
      questions:
      - Can I retrieve one specific reply within a comment thread?
      - Which call returns a single reply by its ID?
      instructions:
      - text: Get reply {replyId} in thread {threadId} on design {designId}.
        slots:
          replyId: path.replyId
          threadId: path.threadId
          designId: path.designId
      - text: Show reply {replyId} from thread {threadId} of design {designId}.
        slots:
          replyId: path.replyId
          threadId: path.threadId
          designId: path.designId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/designs/{designId}/comments'].post
  update:
    x-apievangelist-phrasing:
      intent: Start a comment thread on a design
      effect: write
      questions:
      - How do I start a new comment thread on a design?
      - Can I assign a new comment thread to a teammate?
      instructions:
      - text: Start a comment thread on design {designId} saying {message_plaintext}.
        slots:
          designId: path.designId
          message_plaintext: requestBody.message_plaintext
      - text: Open a thread on design {designId} with {message_plaintext} assigned to {assignee_id}.
        slots:
          designId: path.designId
          message_plaintext: requestBody.message_plaintext
          assignee_id: requestBody.assignee_id
      method: generated
      generated: '2026-09-26'