Canva Comment API

The comment API from Canva — 5 operation(s) for comment.

Operations 6

POST /v1/comments #
GET /v1/designs/{designId}/comments/{threadId}/replies #
POST /v1/designs/{designId}/comments/{threadId}/replies #
GET /v1/designs/{designId}/comments/{threadId} #
GET /v1/designs/{designId}/comments/{threadId}/replies/{replyId} #
POST /v1/designs/{designId}/comments #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/canva-comment-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

canva-comment-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  contact:
    name: Canva Developer Community
    url: https://community.canva.dev/
  description: API for building integrations with Canva via a REST api
  license:
    name: ©2023 All Rights Reserved
  termsOfService: https://www.canva.com/trust/legal/
  title: Canva Connect Comment API
  version: 2024-06-18
servers:
- description: Canva Connect API
  url: https://api.canva.com/rest
tags:
- name: comment
paths:
  /v1/comments:
    post:
      deprecated: true
      description: '<Warning>


        This preview API is deprecated. You should use the [Create thread](https://www.canva.dev/docs/connect/api-reference/comments/create-thread/) API instead.


        </Warning>


        Create a new top-level comment on a design.

        For information on comments and how they''re used in the Canva UI, see the

        [Canva Help Center](https://www.canva.com/help/comments/). A design can have a maximum

        of 1000 comments.'
      operationId: createComment
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCommentRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateCommentResponse'
          description: OK
        '400':
          content:
            application/json:
              examples:
                assignee_not_mentioned:
                  $ref: '#/components/examples/AssigneeNotMentionedError'
                message_too_long:
                  $ref: '#/components/examples/MessageTooLongError'
                invalid_mention_ids:
                  $ref: '#/components/examples/InvalidMentionIdsError'
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request
        '403':
          content:
            application/json:
              examples:
                too_many_comments:
                  $ref: '#/components/examples/TooManyCommentsError'
                not_allowed_to_comment:
                  $ref: '#/components/examples/NotAllowedToCommentError'
              schema:
                $ref: '#/components/schemas/Error'
          description: Forbidden
        '404':
          content:
            application/json:
              examples:
                design_not_found:
                  $ref: '#/components/examples/DesignNotFoundError'
                mentioned_user_not_found:
                  $ref: '#/components/examples/MentionedUserNotFoundError'
                mentioned_team_not_found:
                  $ref: '#/components/examples/MentionedTeamNotFoundError'
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Error Response
      security:
      - oauthAuthCode:
        - comment:write
      tags:
      - comment
      x-rate-limit-per-client-user: 20
  /v1/designs/{designId}/comments/{threadId}/replies:
    get:
      description: '<Warning>

        This API is currently provided as a preview. Be aware of the following:

        - There might be unannounced breaking changes.

        - Any breaking changes to preview APIs won''t produce a new [API version](https://www.canva.dev/docs/connect/versions/).

        - Public integrations that use preview APIs will not pass the review process, and can''t be made available to all Canva users.

        </Warning>


        Retrieves a list of replies for a comment or suggestion thread on a design.


        For information on comments and how they''re used in the Canva UI, see the

        [Canva Help Center](https://www.canva.com/help/comments/).'
      operationId: listReplies
      parameters:
      - description: The design ID.
        explode: false
        in: path
        name: designId
        required: true
        schema:
          pattern: ^[a-zA-Z0-9_-]{1,50}$
          type: string
        style: simple
      - description: The ID of the thread.
        example: KeAbiEAjZEj
        explode: false
        in: path
        name: threadId
        required: true
        schema:
          pattern: ^[a-zA-Z0-9_-]{1,50}$
          type: string
        style: simple
      - explode: true
        in: query
        name: limit
        required: false
        schema:
          default: 50
          description: The number of replies to return.
          format: int32
          maximum: 100
          minimum: 1
          type: integer
        style: form
      - description: 'If the success response contains a continuation token, the list contains more items you can list. You can use this token as a query parameter and retrieve more items from the list, for example `?continuation={continuation}`.


          To retrieve all items, you might need to make multiple requests.'
        explode: true
        in: query
        name: continuation
        required: false
        schema:
          type: string
        style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListRepliesResponse'
          description: OK
        '403':
          content:
            application/json:
              examples:
                not_allowed_to_fetch_replies:
                  $ref: '#/components/examples/NotAllowedToFetchRepliesError'
              schema:
                $ref: '#/components/schemas/Error'
          description: Forbidden
        '404':
          content:
            application/json:
              examples:
                design_or_thread_not_found:
                  $ref: '#/components/examples/DesignOrThreadNotFoundError'
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Error Response
      security:
      - oauthAuthCode:
        - comment:read
      tags:
      - comment
      x-rate-limit-per-client-user: 100
    post:
      description: '<Warning>


        This API is currently provided as a preview. Be aware of the following:


        - There might be unannounced breaking changes.

        - Any breaking changes to preview APIs won''t produce a new [API version](https://www.canva.dev/docs/connect/versions/).

        - Public integrations that use preview APIs will not pass the review process, and can''t be made available to all Canva users.


        </Warning>


        Creates a reply to a comment or suggestion thread on a design.

        To reply to an existing thread, you must provide the ID of the thread

        which is returned when a thread is created, or from the `thread_id` value

        of an existing reply in the thread. Each thread can

        have a maximum of 100 replies created for it.


        For information on comments and how they''re used in the Canva UI, see the

        [Canva Help Center](https://www.canva.com/help/comments/).'
      operationId: createReply
      parameters:
      - description: The design ID.
        explode: false
        in: path
        name: designId
        required: true
        schema:
          pattern: ^[a-zA-Z0-9_-]{1,50}$
          type: string
        style: simple
      - description: The ID of the thread.
        example: KeAbiEAjZEj
        explode: false
        in: path
        name: threadId
        required: true
        schema:
          pattern: ^[a-zA-Z0-9_-]{1,50}$
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateReplyV2Request'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateReplyV2Response'
          description: OK
        '400':
          content:
            application/json:
              examples:
                message_too_long:
                  $ref: '#/components/examples/MessageTooLongError'
                invalid_mention_ids:
                  $ref: '#/components/examples/InvalidMentionIdsError'
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request
        '403':
          content:
            application/json:
              examples:
                too_many_replies:
                  $ref: '#/components/examples/TooManyRepliesError'
                not_allowed_to_reply:
                  $ref: '#/components/examples/NotAllowedToReplyError'
              schema:
                $ref: '#/components/schemas/Error'
          description: Forbidden
        '404':
          content:
            application/json:
              examples:
                design_or_comment_not_found:
                  $ref: '#/components/examples/DesignOrCommentNotFoundForReplyError'
                mentioned_user_not_found:
                  $ref: '#/components/examples/MentionedUserNotFoundError'
                mentioned_team_not_found:
                  $ref: '#/components/examples/MentionedTeamNotFoundError'
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Error Response
      security:
      - oauthAuthCode:
        - comment:write
      tags:
      - comment
      x-rate-limit-per-client-user: 20
  /v1/designs/{designId}/comments/{threadId}:
    get:
      description: '<Warning>


        This API is currently provided as a preview. Be aware of the following:


        - There might be unannounced breaking changes.

        - Any breaking changes to preview APIs won''t produce a new [API version](https://www.canva.dev/docs/connect/versions/).

        - Public integrations that use preview APIs will not pass the review process, and can''t be made available to all Canva users.


        </Warning>


        Gets a comment or suggestion thread on a design.

        To retrieve a reply to a comment thread, use the [Get reply](https://www.canva.dev/docs/connect/api-reference/comments/get-reply/) API.

        For information on comments and how they''re used in the Canva UI, see the

        [Canva Help Center](https://www.canva.com/help/comments/).'
      operationId: getThread
      parameters:
      - description: The design ID.
        explode: false
        in: path
        name: designId
        required: true
        schema:
          pattern: ^[a-zA-Z0-9_-]{1,50}$
          type: string
        style: simple
      - description: The ID of the thread.
        example: KeAbiEAjZEj
        explode: false
        in: path
        name: threadId
        required: true
        schema:
          pattern: ^[a-zA-Z0-9_-]{1,50}$
          type: string
        style: simple
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetThreadResponse'
          description: OK
        '403':
          content:
            application/json:
              examples:
                not_allowed_to_fetch_comment:
                  $ref: '#/components/examples/NotAllowedToFetchCommentError'
                not_allowed_to_fetch_suggestion:
                  $ref: '#/components/examples/NotAllowedToFetchSuggestionError'
              schema:
                $ref: '#/components/schemas/Error'
          description: Forbidden
        '404':
          content:
            application/json:
              examples:
                thread_not_found:
                  $ref: '#/components/examples/ThreadNotFoundError'
                thread_not_attached_to_design:
                  $ref: '#/components/examples/ThreadNotAttachedToDesignError'
                suggestion_not_found:
                  $ref: '#/components/examples/SuggestionNotFoundError'
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Error Response
      security:
      - oauthAuthCode:
        - comment:read
      tags:
      - comment
      x-rate-limit-per-client-user: 100
  /v1/designs/{designId}/comments/{threadId}/replies/{replyId}:
    get:
      description: '<Warning>


        This API is currently provided as a preview. Be aware of the following:


        - There might be unannounced breaking changes.

        - Any breaking changes to preview APIs won''t produce a new [API version](https://www.canva.dev/docs/connect/versions/).

        - Public integrations that use preview APIs will not pass the review process, and can''t be made available to all Canva users.


        </Warning>


        Gets a reply to a comment or suggestion thread on a design.

        For information on comments and how they''re used in the Canva UI, see the

        [Canva Help Center](https://www.canva.com/help/comments/).'
      operationId: getReply
      parameters:
      - description: The design ID.
        explode: false
        in: path
        name: designId
        required: true
        schema:
          pattern: ^[a-zA-Z0-9_-]{1,50}$
          type: string
        style: simple
      - description: The ID of the thread.
        example: KeAbiEAjZEj
        explode: false
        in: path
        name: threadId
        required: true
        schema:
          pattern: ^[a-zA-Z0-9_-]{1,50}$
          type: string
        style: simple
      - description: The ID of the reply.
        example: KeAZEAjijEb
        explode: false
        in: path
        name: replyId
        required: true
        schema:
          pattern: ^[a-zA-Z0-9_-]{1,50}$
          type: string
        style: simple
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetReplyResponse'
          description: OK
        '403':
          content:
            application/json:
              examples:
                not_allowed_to_fetch_reply:
                  $ref: '#/components/examples/NotAllowedToFetchReplyError'
              schema:
                $ref: '#/components/schemas/Error'
          description: Forbidden
        '404':
          content:
            application/json:
              examples:
                reply_not_found:
                  $ref: '#/components/examples/ReplyNotFoundError'
                suggestion_reply_not_found:
                  $ref: '#/components/examples/SuggestionReplyNotFoundError'
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Error Response
      security:
      - oauthAuthCode:
        - comment:read
      tags:
      - comment
      x-rate-limit-per-client-user: 100
  /v1/designs/{designId}/comments:
    post:
      description: '<Warning>

        This API is currently provided as a preview. Be aware of the following:

        - There might be unannounced breaking changes.

        - Any breaking changes to preview APIs won''t produce a new [API version](https://www.canva.dev/docs/connect/versions/).

        - Public integrations that use preview APIs will not pass the review process, and can''t be made available to all Canva users.

        </Warning>


        Creates a new comment thread on a design.

        For information on comments and how they''re used in the Canva UI, see the

        [Canva Help Center](https://www.canva.com/help/comments/).'
      operationId: createThread
      parameters:
      - description: The design ID.
        explode: false
        in: path
        name: designId
        required: true
        schema:
          pattern: ^[a-zA-Z0-9_-]{1,50}$
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateThreadRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateThreadResponse'
          description: OK
        '400':
          content:
            application/json:
              examples:
                assignee_not_mentioned:
                  $ref: '#/components/examples/AssigneeNotMentionedError'
                message_too_long:
                  $ref: '#/components/examples/MessageTooLongError'
                invalid_mention_ids:
                  $ref: '#/components/examples/InvalidMentionIdsError'
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request
        '403':
          content:
            application/json:
              examples:
                too_many_comments:
                  $ref: '#/components/examples/TooManyCommentsError'
                not_allowed_to_comment:
                  $ref: '#/components/examples/NotAllowedToCommentError'
              schema:
                $ref: '#/components/schemas/Error'
          description: Forbidden
        '404':
          content:
            application/json:
              examples:
                design_not_found:
                  $ref: '#/components/examples/DesignNotFoundError'
                mentioned_user_not_found:
                  $ref: '#/components/examples/MentionedUserNotFoundError'
                mentioned_team_not_found:
                  $ref: '#/components/examples/MentionedTeamNotFoundError'
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Error Response
      security:
      - oauthAuthCode:
        - comment:write
      tags:
      - comment
      x-rate-limit-per-client-user: 100
components:
  examples:
    ReplyNotFoundError:
      summary: Reply not found
      value:
        code: reply_not_found
        message: Reply with ID {replyId} not found
    NotAllowedToFetchRepliesError:
      summary: Not allowed to fetch replies
      value:
        code: permission_denied
        message: Not allowed to fetch replies
    DesignOrCommentNotFoundForReplyError:
      summary: Design or comment not found
      value:
        code: design_not_found
        message: Design or comment not found
    MentionedTeamNotFoundError:
      summary: A mentioned user's team could not be found
      value:
        code: team_not_found
        message: Invalid brand ID
    SuggestionNotFoundError:
      summary: No suggestion thread with ID found
      value:
        code: thread_not_found
        message: Suggestion with ID {threadId} not found
    AssigneeNotMentionedError:
      summary: Assignee must be mentioned in comment content
      value:
        code: bad_request_body
        message: Assignee must be mentioned in comment content
    NotAllowedToCommentError:
      summary: Not allowed to comment on this design
      value:
        code: permission_denied
        message: Not allowed to comment on this design
    NotAllowedToFetchSuggestionError:
      summary: Not allowed to fetch this suggestion
      value:
        code: permission_denied
        message: Not allowed to fetch this suggestion
    MessageTooLongError:
      summary: Message is too long
      value:
        code: message_too_long
        message: Message is too long
    NotAllowedToReplyError:
      summary: Not allowed to reply on this design
      value:
        code: permission_denied
        message: Not allowed to reply on this design
    InvalidMentionIdsError:
      summary: Mentions with non-obfuscated IDs are not allowed for this client
      value:
        code: invalid_field
        message: Invalid IDs
    ThreadNotAttachedToDesignError:
      summary: Thread not attached to design
      value:
        code: thread_not_found
        message: Thread with ID {threadId} is not attached to design {designId}, or design not found
    ThreadNotFoundError:
      summary: No thread with ID found
      value:
        code: thread_not_found
        message: No thread with ID {threadId} found
    TooManyRepliesError:
      summary: This comment thread already has the maximum number of allowed replies
      value:
        code: too_many_replies
        message: This comment thread already has the maximum number of allowed replies
    DesignNotFoundError:
      summary: Design not found
      value:
        code: design_not_found
        message: Design not found
    TooManyCommentsError:
      summary: Design already has the maximum number of allowed comments
      value:
        code: too_many_comments
        message: Design already has the maximum number of allowed comments
    MentionedUserNotFoundError:
      summary: A mentioned user could not be found
      value:
        code: user_not_found
        message: Invalid user ID
    NotAllowedToFetchCommentError:
      summary: Not allowed to fetch this comment
      value:
        code: permission_denied
        message: Not allowed to fetch this comment
    DesignOrThreadNotFoundError:
      summary: Design or comment not found
      value:
        code: design_or_thread_not_found
        message: Design or comment not found
    NotAllowedToFetchReplyError:
      summary: Not allowed to fetch this reply
      value:
        code: permission_denied
        message: Not allowed to fetch this reply
    SuggestionReplyNotFoundError:
      summary: Suggestion reply not found
      value:
        code: reply_not_found
        message: Suggestion reply with ID {replyId} not found
  schemas:
    Reply:
      description: 'A reply to a thread.


        The `author` of the reply might be missing if that user account no longer exists.'
      properties:
        id:
          description: The ID of the reply.
          example: KeAZEAjijEb
          type: string
        design_id:
          description: The ID of the design that the thread for this reply is attached to.
          example: DAFVztcvd9z
          type: string
        thread_id:
          description: The ID of the thread this reply is in.
          example: KeAbiEAjZEj
          type: string
        author:
          $ref: '#/components/schemas/User'
        content:
          $ref: '#/components/schemas/CommentContent'
        mentions:
          additionalProperties:
            $ref: '#/components/schemas/UserMention'
          description: The Canva users mentioned in the comment thread or reply.
          example:
            oUnPjZ2k2yuhftbWF7873o:oBpVhLW22VrqtwKgaayRbP:
              tag: oUnPjZ2k2yuhftbWF7873o:oBpVhLW22VrqtwKgaayRbP
              user:
                user_id: oUnPjZ2k2yuhftbWF7873o
                team_id: oBpVhLW22VrqtwKgaayRbP
                display_name: John Doe
          type: object
        created_at:
          description: 'When the reply was created, as a Unix timestamp

            (in seconds since the Unix Epoch).'
          example: 1692929800
          format: int64
          type: integer
        updated_at:
          description: 'When the reply was last updated, as a Unix timestamp

            (in seconds since the Unix Epoch).'
          example: 1692929900
          format: int64
          type: integer
      required:
      - content
      - created_at
      - design_id
      - id
      - mentions
      - thread_id
      - updated_at
      type: object
    DesignCommentObjectInput:
      description: If the comment is attached to a Canva Design.
      properties:
        type:
          enum:
          - design
          type: string
        design_id:
          description: The ID of the design you want to attach this comment to.
          example: DAFVztcvd9z
          type: string
      required:
      - design_id
      - type
      type: object
    ParentComment:
      deprecated: true
      description: 'Data about the comment, including the message, author, and

        the object (such as a design) the comment is attached to.'
      properties:
        type:
          enum:
          - parent
          type: string
        id:
          description: 'The ID of the comment.


            You can use this ID to create replies to the comment using the [Create reply API](https://www.canva.dev/docs/connect/api-reference/comments/create-reply/).'
          example: KeAbiEAjZEj
          type: string
        attached_to:
          $ref: '#/components/schemas/CommentObject'
        message:
          description: 'The comment message. This is the comment body shown in the Canva UI.

            User mentions are shown here in the format `[user_id:team_id]`.'
          example: Great work [oUnPjZ2k2yuhftbWF7873o:oBpVhLW22VrqtwKgaayRbP]!
          type: string
        author:
          $ref: '#/components/schemas/User'
        created_at:
          description: 'When the comment or reply was created, as a Unix timestamp

            (in seconds since the Unix Epoch).'
          example: 1692928800
          format: int64
          type: integer
        updated_at:
          description: 'When the comment or reply was last updated, as a Unix timestamp

            (in seconds since the Unix Epoch).'
          example: 1692928900
          format: int64
          type: integer
        mentions:
          additionalProperties:
            $ref: '#/components/schemas/TeamUser'
          deprecated: true
          description: The Canva users mentioned in the comment.
          example:
            oUnPjZ2k2yuhftbWF7873o:oBpVhLW22VrqtwKgaayRbP:
              user_id: oUnPjZ2k2yuhftbWF7873o
              team_id: oBpVhLW22VrqtwKgaayRbP
              display_name: John Doe
          type: object
        assignee:
          $ref: '#/components/schemas/User'
        resolver:
          $ref: '#/components/schemas/User'
      required:
      - author
      - id
      - mentions
      - message
      - type
      type: object
    SuggestionThreadType:
      description: A suggestion thread.
      properties:
        type:
          enum:
          - suggestion
          type: string
        suggested_edits:
          items:
            $ref: '#/components/schemas/SuggestedEdit'
          minItems: 1
          type: array
        status:
          $ref: '#/components/schemas/SuggestionStatus'
      required:
      - status
      - suggested_edits
      - type
      type: object
    CommentObject:
      deprecated: true
      description: Identifying information about the object (such as a design) that the comment is attached to.
      discriminator:
        mapping:
          design: '#/components/schemas/DesignCommentObject'
        propertyName: type
      example:
        design_id: DAFVztcvd9z
        type: design
      oneOf:
      - $ref: '#/components/schemas/DesignCommentObject'
      type: object
    ListRepliesResponse:
      description: Successful response from a `listReplies` request.
      properties:
        continuation:
          description: 'If the success response contains a continuation token, the list contains more items

            you can list. You can use this token as a query parameter and retrieve more items

            from the list, for example `?continuation={continuation}`.


            To retrieve all items, you might need to make multiple requests.'
          example: RkFGMgXlsVTDbMd:MR3L0QjiaUzycIAjx0yMyuNiV0OildoiOwL0x32G4NjNu4FwtAQNxowUQNMMYN
          type: string
        items:
          items:
            $ref: '#/components/schemas/Reply'
          type: array
      required:
      - items
      type: object
    Comment:
      deprecated: true
      description: 'The comment object, which contains metadata about the comment.

        Deprecated in favor of the new `thread` object.'
      discriminator:
        mapping:
          parent: '#/components/schemas/ParentComment'
          reply: '#/components/schemas/ReplyComment'
        propertyName: type
      oneOf:
      - $ref: '#/components/schemas/ParentComment'
      - $ref: '#/components/schemas/ReplyComment'
      type: object
    DesignCommentObject:
      deprecated: true
      description: If the comment is attached to a Canva Design.
      properties:
        type:
          enum:
          - design
          type: string
        design_id:
          description: The ID of the design this comment is attached to.
          example: DAFVztcvd9z
          type: string
      required:
      - design_id
      - type
      type: object
    ReplyComment:
      deprecated: true
      description: 'Data about the reply comment, including the message, author, and

        the object (such as a design) the comment is attached to.'
      properties:
        type:
          enum:
          - reply
          type: string
        id:
          description: The ID of the comment.
          example: KeAZEAjijEb
          type: string
        attached_to:
          $ref: '#/components/schemas/CommentObject'
        message:
          description: 'The comment message. This is the comment body shown in the Canva UI.

            User mentions are shown here in the format `[user_id:team_id]`.'
          example: Thanks!
          type: string
        author:
          $ref: '#/components/schemas/User'
        created_at:
          description: 'When the comment or reply was created, as a Unix timestamp

            (in seconds since the Unix Epoch).'
          example: 1692929800
          format: int64
          type: integer
        updated_at:
          description: 'When the comment or reply was last updated, as a Unix timestamp

            (in seconds since the Unix Epoch).'
          example: 1692929900
          format: int64
          type: integer
        mentions:
          additionalProperties:
            $ref: '#/components/schemas/TeamUser'
          deprecated: true
          description: The Canva users mentioned in the comment.
          example:
            oUnPjZ2k2yuhftbWF7873o:oBpVhLW22VrqtwKgaayRbP:
              user_id: oUnPjZ2k2yuhftbWF7873o
              team_id: oBpVhLW22VrqtwKgaayRbP
              display_name: John Doe
          type: object
        thread_id:
          description: 'The ID of the comment thread this reply is in. This ID is the same as the `id` of the

            parent comment.'
          example: KeAbiEAjZEj
          type: string
      required:
      - author
      - id
      - mentions
      - message
      - thread_id
      - type
      type: object
    CreateCommentResponse:
      properties:
        comment:
          $ref: '#/components/schemas/ParentComment'
      required:
      - comment
      type: object
    CreateThreadResponse:
      properties:
        thread:
          $ref: '#/components/schemas/Thread'
      required:
      - thread
      type: object
    CreateReplyV2Response:
      properties:
        reply:
          $ref: '#/components/schemas/Reply'
      required:
      - reply
      type: object
    Thread:
      description: 'A discussion thread on a design.


        The `type` of the thread can be found in the `thread_type` object, along with additional type-specific properties.

        The `author` of the thread might be missing if that user account no longer exists.'
      properties:
        id:
          description: 'The ID of the thread.


            You can use this ID to create replies to the thread using the [Create reply API](https://www.canva.dev/docs/connect/api-reference/comments/create-reply/).'
          example: KeAbiEAjZEj
          type: string
        design_id:
          description: The ID of the design that the discussion thread is on.
          example: DAFVztcvd9z
          type: string
        thread_type:
          $ref: '#/components/schemas/ThreadType'
        author:
          $ref: '#/components/schemas/User'
        created_at:
          description: 'When the thread was created, as a Unix timestamp

            (in seconds since the Unix Epoch).'
          ex

# --- truncated at 32 KB (45 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/canva/refs/heads/main/openapi/canva-comment-api-openapi.yml