WSO2 Comments API

The Comments API from WSO2 — 6 operation(s) for comments.

Operations 12

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

GET /apis/{apiId}/comments List comments on an API · Retrieve API Comments #
Ask an LLM
“What comments have people left on this API in the developer portal?”
“Can I page through an API's comments and include who wrote each one?”
Tell an agent
List all comments on API {apiId}.
Show the first {limit} comments on API {apiId} with commenter details.
POST /apis/{apiId}/comments Post a comment on an API · Add an API Comment #
Ask an LLM
“How do I leave a comment on an API in the WSO2 developer portal?”
“Can I post my comment as a reply to someone else's comment on an API?”
Tell an agent
Post the comment "{content}" on API {apiId}.
Reply to comment {replyTo} on API {apiId} saying "{content}".
GET /apis/{apiId}/comments/{commentId} Get one comment on an API · Get Details of an API Comment #
Ask an LLM
“Where can I see the full detail of a single comment on an API, including its replies?”
“Is it possible to limit how many replies come back with an API comment?”
Tell an agent
Show comment {commentId} on API {apiId}.
Get comment {commentId} on API {apiId} with at most {replyLimit} replies.
PATCH /apis/{apiId}/comments/{commentId} Edit a comment on an API · Edit a comment #
Ask an LLM
“Can I change the text of a comment I already posted on an API?”
“Is there a way to recategorize an existing API comment?”
Tell an agent
Change comment {commentId} on API {apiId} to say "{content}".
Set the category of comment {commentId} on API {apiId} to {category}.
DELETE /apis/{apiId}/comments/{commentId} Delete a comment from an API · Delete an API Comment #
Ask an LLM
“How do I remove a comment someone posted on an API?”
“Can a comment on an API be deleted permanently?”
Tell an agent destructive · confirm first
Delete comment {commentId} from API {apiId}.
Remove my comment {commentId} on API {apiId}.
GET /apis/{apiId}/comments/{commentId}/replies List replies to an API comment · Get replies of a comment #
Ask an LLM
“What replies has a comment on an API received?”
“Can I page through the reply thread under an API comment?”
Tell an agent
List the replies to comment {commentId} on API {apiId}.
Show {limit} replies to comment {commentId} on API {apiId} starting at {offset}.
GET /mcp-servers/{mcpServerId}/comments List comments on an MCP server · Retrieve MCP Server Comments #
Ask an LLM
“What feedback have developers left as comments on an MCP server?”
“Can I page through the comments on an MCP server with commenter details?”
Tell an agent
List all comments on MCP server {mcpServerId}.
Show the first {limit} comments on MCP server {mcpServerId}.
POST /mcp-servers/{mcpServerId}/comments Post a comment on an MCP server · Add a MCP Server Comment #
Ask an LLM
“How do I leave a comment on an MCP server in the developer portal?”
“Can I reply to an existing comment thread on an MCP server?”
Tell an agent
Post the comment "{content}" on MCP server {mcpServerId}.
Reply to comment {replyTo} on MCP server {mcpServerId} with "{content}".
GET /mcp-servers/{mcpServerId}/comments/{commentId} Get one comment on an MCP server · Get Details of a MCP Server Comment #
Ask an LLM
“Where do I see a single MCP server comment along with its replies?”
“Can I cap the number of replies returned with an MCP server comment?”
Tell an agent
Show comment {commentId} on MCP server {mcpServerId}.
Get comment {commentId} on MCP server {mcpServerId} with up to {replyLimit} replies.
PATCH /mcp-servers/{mcpServerId}/comments/{commentId} Edit a comment on an MCP server · Edit a comment #
Ask an LLM
“Can I fix a typo in a comment I left on an MCP server?”
“Is it possible to change the category of an MCP server comment?”
Tell an agent
Change comment {commentId} on MCP server {mcpServerId} to "{content}".
Set the category of comment {commentId} on MCP server {mcpServerId} to {category}.
DELETE /mcp-servers/{mcpServerId}/comments/{commentId} Delete a comment from an MCP server · Delete a MCP Server Comment #
Ask an LLM
“How do I remove a comment that was posted on an MCP server?”
“Can an MCP server comment be taken down?”
Tell an agent destructive · confirm first
Delete comment {commentId} from MCP server {mcpServerId}.
Remove my comment {commentId} on MCP server {mcpServerId}.
GET /mcp-servers/{mcpServerId}/comments/{commentId}/replies List replies to an MCP server comment · Get replies of a comment #
Ask an LLM
“What replies has a comment on an MCP server received?”
“Can I page through replies under an MCP server comment?”
Tell an agent
List the replies to comment {commentId} on MCP server {mcpServerId}.
Show {limit} replies to comment {commentId} on MCP server {mcpServerId}.

Documentation

Specifications

Schemas & Data

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/wso2:wso2-comments-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

wso2-comments-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: WSO2 API Manager - Developer Portal Comments API
  description: This document specifies a **RESTful API** for WSO2 **API Manager** - **Developer Portal**.
  contact:
    name: WSO2
    url: https://wso2.com/api-manager/
    email: architecture@wso2.com
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
  version: v3
servers:
- url: https://apis.wso2.com/api/am/devportal/v3
tags:
- name: Comments
paths:
  /apis/{apiId}/comments:
    get:
      tags:
      - Comments
      summary: Retrieve API Comments
      description: Get a list of Comments that are already added to APIs
      operationId: getAllCommentsOfAPI
      parameters:
      - $ref: '#/components/parameters/apiId'
      - $ref: '#/components/parameters/requestedTenant'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/includeCommenterInfo'
      responses:
        200:
          description: 'OK.

            Comments list is returned.

            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommentList'
        404:
          $ref: '#/components/responses/NotFound'
        500:
          $ref: '#/components/responses/InternalServerError'
      security:
      - OAuth2Security: []
      x-code-samples:
      - lang: Curl
        source: curl -k "https://localhost:9443/api/am/devportal/v3/apis/e93fb282-b456-48fc-8981-003fb89086ae/comments"
    post:
      tags:
      - Comments
      summary: Add an API Comment
      operationId: addCommentToAPI
      parameters:
      - $ref: '#/components/parameters/apiId'
      - $ref: '#/components/parameters/parentCommentId'
      requestBody:
        description: 'Comment object that should to be added

          '
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostRequestBody'
        required: true
      responses:
        201:
          description: 'Created.

            Successful response with the newly created object as entity in the body.

            Location header contains URL of newly created entity.

            '
          headers:
            ETag:
              description: 'Entity Tag of the response resource. Used by caches, or in conditional request.

                '
              schema:
                type: string
            Location:
              description: 'Location to the newly created Comment.

                '
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Comment'
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/Unauthorized'
        404:
          $ref: '#/components/responses/NotFound'
        415:
          $ref: '#/components/responses/UnsupportedMediaType'
        500:
          $ref: '#/components/responses/InternalServerError'
      security:
      - OAuth2Security:
        - apim:subscribe
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X POST -H "Authorization:Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8" -H "Content-Type: application/json" -d @data.json "https://localhost:9443/api/am/devportal/v3/apis/e93fb282-b456-48fc-8981-003fb89086ae/comments"'
  /apis/{apiId}/comments/{commentId}:
    get:
      tags:
      - Comments
      summary: Get Details of an API Comment
      description: Get the individual comment given by a user for a certain API.
      operationId: getCommentOfAPI
      parameters:
      - $ref: '#/components/parameters/commentId'
      - $ref: '#/components/parameters/apiId'
      - $ref: '#/components/parameters/requestedTenant'
      - $ref: '#/components/parameters/If-None-Match'
      - $ref: '#/components/parameters/includeCommenterInfo'
      - $ref: '#/components/parameters/replyLimit'
      - $ref: '#/components/parameters/replyOffset'
      responses:
        200:
          description: 'OK.

            Comment returned.

            '
          headers:
            ETag:
              description: 'Entity Tag of the response resource.

                Used by caches, or in conditional requests.

                '
              schema:
                type: string
            Last-Modified:
              description: 'Date and time the resource has been modifed the last time.

                Used by caches, or in conditional requests.

                '
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Comment'
        401:
          $ref: '#/components/responses/Unauthorized'
        404:
          $ref: '#/components/responses/NotFound'
        406:
          $ref: '#/components/responses/NotAcceptable'
        500:
          $ref: '#/components/responses/InternalServerError'
      security:
      - OAuth2Security: []
      x-code-samples:
      - lang: Curl
        source: curl -k "https://localhost:9443/api/am/devportal/v3/apis/e93fb282-b456-48fc-8981-003fb89086ae/comments/d4cf1704-5d09-491c-bc48-4d19ce6ea9b4"
    patch:
      tags:
      - Comments
      summary: Edit a comment
      description: Edit the individual comment
      operationId: editCommentOfAPI
      parameters:
      - $ref: '#/components/parameters/commentId'
      - $ref: '#/components/parameters/apiId'
      requestBody:
        description: 'Comment object that should to be updated

          '
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchRequestBody'
        required: true
      responses:
        200:
          description: 'OK.

            Comment updated.

            '
          headers:
            ETag:
              description: 'Entity Tag of the response resource. Used by caches, or in conditional request.

                '
              schema:
                type: string
            Location:
              description: 'Location to the newly created Comment.

                '
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Comment'
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/Unauthorized'
        403:
          description: 'Forbidden.

            The request must be conditional but no condition has been specified.

            '
        404:
          $ref: '#/components/responses/NotFound'
        415:
          $ref: '#/components/responses/UnsupportedMediaType'
        500:
          $ref: '#/components/responses/InternalServerError'
      security:
      - OAuth2Security:
        - apim:subscribe
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X PATCH -H "Authorization:Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8" -H "Content-Type: application/json" -d @data.json "https://localhost:9443/api/am/devportal/v3/apis/e93fb282-b456-48fc-8981-003fb89086ae/comments/d4cf1704-5d09-491c-bc48-4d19ce6ea9b4"'
    delete:
      tags:
      - Comments
      summary: Delete an API Comment
      description: Remove a Comment
      operationId: deleteComment
      parameters:
      - $ref: '#/components/parameters/commentId'
      - $ref: '#/components/parameters/apiId'
      - $ref: '#/components/parameters/If-Match'
      responses:
        200:
          description: 'OK.

            Resource successfully deleted.

            '
          content: {}
        401:
          $ref: '#/components/responses/Unauthorized'
        403:
          description: 'Forbidden.

            The request must be conditional but no condition has been specified.

            '
          content: {}
        404:
          $ref: '#/components/responses/NotFound'
        405:
          description: 'MethodNotAllowed.

            Request method is known by the server but is not supported by the target resource.

            '
          content: {}
        500:
          $ref: '#/components/responses/InternalServerError'
      security:
      - OAuth2Security:
        - apim:subscribe
        - apim:admin
      x-code-samples:
      - lang: Curl
        source: curl -k -X DELETE -H "Authorization:Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8" "https://localhost:9443/api/am/devportal/v3/apis/e93fb282-b456-48fc-8981-003fb89086ae/comments/d4cf1704-5d09-491c-bc48-4d19ce6ea9b4"
  /apis/{apiId}/comments/{commentId}/replies:
    get:
      tags:
      - Comments
      summary: Get replies of a comment
      operationId: getRepliesOfComment
      parameters:
      - $ref: '#/components/parameters/commentId'
      - $ref: '#/components/parameters/apiId'
      - $ref: '#/components/parameters/requestedTenant'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/If-None-Match'
      - $ref: '#/components/parameters/includeCommenterInfo'
      responses:
        200:
          description: 'OK.

            Comment returned.

            '
          headers:
            ETag:
              description: 'Entity Tag of the response resource.

                Used by caches, or in conditional requests.

                '
              schema:
                type: string
            Last-Modified:
              description: 'Date and time the resource has been modifed the last time.

                Used by caches, or in conditional requests.

                '
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommentList'
        401:
          $ref: '#/components/responses/Unauthorized'
        404:
          $ref: '#/components/responses/NotFound'
        406:
          $ref: '#/components/responses/NotAcceptable'
        500:
          $ref: '#/components/responses/InternalServerError'
      security:
      - OAuth2Security: []
      x-code-samples:
      - lang: Curl
        source: curl -k -H "Authorization:Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8" "https://localhost:9443/api/am/devportal/v3/apis/e93fb282-b456-48fc-8981-003fb89086ae/comments/d4cf1704-5d09-491c-bc48-4d19ce6ea9b4/replies"
  /mcp-servers/{mcpServerId}/comments:
    get:
      tags:
      - Comments
      summary: Retrieve MCP Server Comments
      description: Get a list of Comments that are already added to MCP Servers
      parameters:
      - $ref: '#/components/parameters/mcpServerId'
      - $ref: '#/components/parameters/requestedTenant'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/includeCommenterInfo'
      responses:
        200:
          description: 'OK.

            Comments list is returned.

            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommentList'
        404:
          $ref: '#/components/responses/NotFound'
        500:
          $ref: '#/components/responses/InternalServerError'
      security:
      - OAuth2Security: []
      x-code-samples:
      - lang: Curl
        source: curl -k "https://localhost:9443/api/am/devportal/v3/mcp-servers/e93fb282-b456-48fc-8981-003fb89086ae/comments"
      operationId: getAllCommentsOfMCPServer
    post:
      tags:
      - Comments
      summary: Add a MCP Server Comment
      parameters:
      - $ref: '#/components/parameters/mcpServerId'
      - $ref: '#/components/parameters/parentCommentId'
      requestBody:
        description: 'Comment object that should to be added

          '
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostRequestBody'
        required: true
      responses:
        201:
          description: 'Created.

            Successful response with the newly created object as entity in the body.

            Location header contains URL of newly created entity.

            '
          headers:
            ETag:
              description: 'Entity Tag of the response resource. Used by caches, or in conditional request.

                '
              schema:
                type: string
            Location:
              description: 'Location to the newly created Comment.

                '
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Comment'
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/Unauthorized'
        404:
          $ref: '#/components/responses/NotFound'
        415:
          $ref: '#/components/responses/UnsupportedMediaType'
        500:
          $ref: '#/components/responses/InternalServerError'
      security:
      - OAuth2Security:
        - apim:subscribe
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X POST -H "Authorization:Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8" -H "Content-Type: application/json" -d @data.json "https://localhost:9443/api/am/devportal/v3/mcp-servers/e93fb282-b456-48fc-8981-003fb89086ae/comments"'
      operationId: addCommentToMCPServer
  /mcp-servers/{mcpServerId}/comments/{commentId}:
    get:
      tags:
      - Comments
      summary: Get Details of a MCP Server Comment
      description: Get the individual comment given by a user for a certain MCP Server.
      parameters:
      - $ref: '#/components/parameters/mcpServerId'
      - $ref: '#/components/parameters/commentId'
      - $ref: '#/components/parameters/requestedTenant'
      - $ref: '#/components/parameters/If-None-Match'
      - $ref: '#/components/parameters/includeCommenterInfo'
      - $ref: '#/components/parameters/replyLimit'
      - $ref: '#/components/parameters/replyOffset'
      responses:
        200:
          description: 'OK.

            Comment returned.

            '
          headers:
            ETag:
              description: 'Entity Tag of the response resource.

                Used by caches, or in conditional requests.

                '
              schema:
                type: string
            Last-Modified:
              description: 'Date and time the resource has been modified the last time.

                Used by caches, or in conditional requests.

                '
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Comment'
        401:
          $ref: '#/components/responses/Unauthorized'
        404:
          $ref: '#/components/responses/NotFound'
        406:
          $ref: '#/components/responses/NotAcceptable'
        500:
          $ref: '#/components/responses/InternalServerError'
      security:
      - OAuth2Security: []
      x-code-samples:
      - lang: Curl
        source: curl -k "https://localhost:9443/api/am/devportal/v3/mcp-servers/e93fb282-b456-48fc-8981-003fb89086ae/comments/d4cf1704-5d09-491c-bc48-4d19ce6ea9b4"
      operationId: getCommentOfMCPServer
    patch:
      tags:
      - Comments
      summary: Edit a comment
      description: Edit the individual comment
      parameters:
      - $ref: '#/components/parameters/mcpServerId'
      - $ref: '#/components/parameters/commentId'
      requestBody:
        description: 'Comment object that should to be updated

          '
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchRequestBody'
        required: true
      responses:
        200:
          description: 'OK.

            Comment updated.

            '
          headers:
            ETag:
              description: 'Entity Tag of the response resource. Used by caches, or in conditional request.

                '
              schema:
                type: string
            Location:
              description: 'Location to the newly created Comment.

                '
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Comment'
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/Unauthorized'
        403:
          description: 'Forbidden.

            The request must be conditional but no condition has been specified.

            '
        404:
          $ref: '#/components/responses/NotFound'
        415:
          $ref: '#/components/responses/UnsupportedMediaType'
        500:
          $ref: '#/components/responses/InternalServerError'
      security:
      - OAuth2Security:
        - apim:subscribe
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X PATCH -H "Authorization:Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8" -H "Content-Type: application/json" -d @data.json "https://localhost:9443/api/am/devportal/v3/mcp-servers/e93fb282-b456-48fc-8981-003fb89086ae/comments/d4cf1704-5d09-491c-bc48-4d19ce6ea9b4"'
      operationId: editCommentOfMCPServer
    delete:
      tags:
      - Comments
      summary: Delete a MCP Server Comment
      description: Remove a Comment
      parameters:
      - $ref: '#/components/parameters/mcpServerId'
      - $ref: '#/components/parameters/commentId'
      - $ref: '#/components/parameters/If-Match'
      responses:
        200:
          description: 'OK.

            Resource successfully deleted.

            '
          content: {}
        401:
          $ref: '#/components/responses/Unauthorized'
        403:
          description: 'Forbidden.

            The request must be conditional but no condition has been specified.

            '
          content: {}
        404:
          $ref: '#/components/responses/NotFound'
        405:
          description: 'MethodNotAllowed.

            Request method is known by the server but is not supported by the target resource.

            '
          content: {}
        500:
          $ref: '#/components/responses/InternalServerError'
      security:
      - OAuth2Security:
        - apim:subscribe
        - apim:admin
      x-code-samples:
      - lang: Curl
        source: curl -k -X DELETE -H "Authorization:Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8" "https://localhost:9443/api/am/devportal/v3/mcp-servers/e93fb282-b456-48fc-8981-003fb89086ae/comments/d4cf1704-5d09-491c-bc48-4d19ce6ea9b4"
      operationId: deleteCommentOfMCPServer
  /mcp-servers/{mcpServerId}/comments/{commentId}/replies:
    get:
      tags:
      - Comments
      summary: Get replies of a comment
      parameters:
      - $ref: '#/components/parameters/mcpServerId'
      - $ref: '#/components/parameters/commentId'
      - $ref: '#/components/parameters/requestedTenant'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/If-None-Match'
      - $ref: '#/components/parameters/includeCommenterInfo'
      responses:
        200:
          description: 'OK.

            Comment returned.

            '
          headers:
            ETag:
              description: 'Entity Tag of the response resource.

                Used by caches, or in conditional requests.

                '
              schema:
                type: string
            Last-Modified:
              description: 'Date and time the resource has been modified the last time.

                Used by caches, or in conditional requests.

                '
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommentList'
        401:
          $ref: '#/components/responses/Unauthorized'
        404:
          $ref: '#/components/responses/NotFound'
        406:
          $ref: '#/components/responses/NotAcceptable'
        500:
          $ref: '#/components/responses/InternalServerError'
      security:
      - OAuth2Security: []
      x-code-samples:
      - lang: Curl
        source: curl -k -H "Authorization:Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8" "https://localhost:9443/api/am/devportal/v3/mcp-servers/e93fb282-b456-48fc-8981-003fb89086ae/comments/d4cf1704-5d09-491c-bc48-4d19ce6ea9b4/replies"
      operationId: getRepliesOfCommentOfMCPServer
components:
  responses:
    NotFound:
      description: Not Found. The specified resource does not exist.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            code: 404
            message: Not Found
            description: The specified resource does not exist
            moreInfo: ''
            error: []
    NotAcceptable:
      description: Not Acceptable. The requested media type is not supported.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            code: 406
            message: Not Acceptable
            description: The requested media type is not supported
            moreInfo: ''
            error: []
    BadRequest:
      description: Bad Request. Invalid request or validation error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            code: 400
            message: Bad Request
            description: Invalid request or validation error
            moreInfo: ''
            error: []
    Unauthorized:
      description: Unauthorized. The user is not authorized.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            code: 401
            message: Unauthorized
            description: The user is not authorized
            moreInfo: ''
            error: []
    InternalServerError:
      description: Internal Server Error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            code: 500
            message: Internal Server Error
            description: The server encountered an internal error. Please contact administrator.
            moreInfo: ''
            error: []
    UnsupportedMediaType:
      description: Unsupported Media Type. The entity of the request was not in a supported format.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            code: 415
            message: Unsupported media type
            description: The entity of the request was not in a supported format
            moreInfo: ''
            error: []
  schemas:
    Comment:
      title: Comment
      required:
      - content
      type: object
      properties:
        id:
          type: string
          readOnly: true
          example: 943d3002-000c-42d3-a1b9-d6559f8a4d49
        content:
          maxLength: 512
          type: string
          example: This is a comment
        createdTime:
          type: string
          readOnly: true
          example: 2021-02-11-09:57:25
        createdBy:
          type: string
          readOnly: true
          example: admin
        updatedTime:
          type: string
          readOnly: true
          example: 2021-02-12-19:57:25
        category:
          type: string
          readOnly: true
          default: general
          example: general
        parentCommentId:
          type: string
          readOnly: true
          example: 6f38aea2-f41e-4ac9-b3f2-a9493d00ba97
        entryPoint:
          type: string
          readOnly: true
          enum:
          - devPortal
          - publisher
        commenterInfo:
          $ref: '#/components/schemas/CommenterInfo'
        replies:
          $ref: '#/components/schemas/CommentList'
    CommenterInfo:
      type: object
      properties:
        firstName:
          type: string
          example: John
        lastName:
          type: string
          example: David
        fullName:
          type: string
          example: John David
    PatchRequestBody:
      title: Patch request body
      type: object
      properties:
        content:
          type: string
          maxLength: 512
          description: 'Content of the comment

            '
          example: This is a comment
        category:
          type: string
          description: 'Category of the comment

            '
          example: general
    Pagination:
      title: Pagination
      type: object
      properties:
        offset:
          type: integer
          example: 0
        limit:
          type: integer
          example: 10
        total:
          type: integer
          example: 1
        next:
          type: string
          description: 'Link to the next subset of resources qualified.

            Empty if no more resources are to be returned.

            '
          example: ''
        previous:
          type: string
          description: 'Link to the previous subset of resources qualified.

            Empty if current subset is the first subset returned.

            '
          example: ''
    CommentList:
      title: Comments List
      type: object
      properties:
        count:
          type: integer
          readOnly: true
          description: 'Number of Comments returned.

            '
          example: 1
        list:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/Comment'
        pagination:
          $ref: '#/components/schemas/Pagination'
    Error:
      title: Error object returned with 4XX HTTP status
      required:
      - code
      - message
      type: object
      properties:
        code:
          type: integer
          format: int64
        message:
          type: string
          description: Error message.
        description:
          type: string
          description: 'A detail description about the error message.

            '
        moreInfo:
          type: string
          description: 'Preferably an url with more details about the error.

            '
        error:
          type: array
          description: 'If there are more than one error list them out.

            For example, list out validation errors by each field.

            '
          items:
            $ref: '#/components/schemas/ErrorListItem'
    ErrorListItem:
      title: Description of individual errors that may have occurred during a request.
      required:
      - code
      - message
      type: object
      properties:
        code:
          type: string
        message:
          type: string
          description: 'Description about individual errors occurred

            '
    PostRequestBody:
      title: Post request body
      type: object
      properties:
        content:
          type: string
          maxLength: 512
          description: 'Content of the comment

            '
          example: This is a comment
        category:
          type: string
          description: 'Category of the comment

            '
          example: general
      required:
      - content
  parameters:
    apiId:
      name: apiId
      in: path
      description: '**API ID** consisting of the **UUID** of the API.

        '
      required: true
      schema:
        type: string
    includeCommenterInfo:
      name: includeCommenterInfo
      in: query
      description: 'Whether we need to display commentor details.

        '
      schema:
        type: boolean
        default: false
    replyLimit:
      name: replyLimit
      in: query
      description: 'Maximum size of replies array to return.

        '
      schema:
        type: integer
        default: 25
    parentCommentId:
      name: replyTo
      in: query
      description: 'ID of the perent comment.

        '
      schema:
        type: string
    limit:
      name: limit
      in: query
      description: 'Maximum size of resource array to return.

        '
      schema:
        type: integer
        default: 25
    offset:
      name: offset
      in: query
      description: 'Starting point within the complete list of items qualified.

        '
      schema:
        type: integer
        default: 0
    If-Match:
      name: If-Match
      in: header
      description: 'Validator for conditional requests; based on ETag.

        '
      schema:
        type: string
    If-None-Match:
      name: If-None-Match
      in: header
      description: 'Validator for conditional requests; based on the ETag of the formerly retrieved

        variant of the resourec.

        '
      schema:
        type: string
    mcpServerId:
      name: mcpServerId
      in: path
      description: '**MCP Server ID** consisting of the **UUID** of the MCP Server.

        '
      required: true
      schema:
        type: string
    replyOffset:
      name: replyOffset
      in: query
      description: 'Starting point within the complete list of replies.

        '
      schema:
        type: integer
        default: 0
    commentId:
      name: commentId
      in: path
      description: 'Comment Id

        '
      required: true
      schema:
        type: string
    requestedTenant:
      name: X-WSO2-Tenant
      in: header
      description: "For cross-tenant invocations, this is used to specify the tenant domain, where the resource need to be\n  retrieved from.\n"
      schema:
        type: string
  securitySchemes:
    OAuth2Security:
      type: oauth2
      flows:
        password:
          tokenUrl: https://localhost:9443/oauth2/token
          scopes:
            openid: Authorize access to user details
            apim:subscribe: Subscribe API
            apim:api_key: Generate API Keys
            apim:app_manage: Retrieve, Manage and Import, Export applications
            apim:sub_manage: Retrieve, Manage subscriptions
            apim:store_settings: Retrieve Developer Portal settings
            apim:sub_alert_manage: Retrieve, subscribe and configure Developer Portal alert types
            apim:app_import_export: Import and export applications related operations
            apim:admin: Manage all admin operations