OpenWeb top comments API

Top Comments

Operations 3

GET /top-comments-conversation List top comments within a specific Conversation #
GET /top-comments-spot List top comments within an entire spot #
GET /top-comments-user List top comments for an individual user #

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/openweb:openweb-top-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

openweb-top-comments-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: top comments API
  version: '1.0'
  contact:
    name: OpenWeb
    url: https://www.openweb.com/
  description: This API fetches and sorts the top comments from a specific site, article, or user.
servers:
- url: https://api.openweb.com/engagement-api
tags:
- name: top comments
  description: Top Comments
paths:
  /top-comments-conversation:
    get:
      summary: List top comments within a specific Conversation
      tags:
      - top comments
      responses:
        '200':
          $ref: '#/components/responses/CommentObject'
      description: Retrieve the top Conversation comments from all time
      parameters:
      - $ref: '#/components/parameters/x-api-key'
      - $ref: '#/components/parameters/x-conversation-id'
      - $ref: '#/components/parameters/x-post-id'
      - $ref: '#/components/parameters/x-spot-id'
      - $ref: '#/components/parameters/x-count'
      operationId: getTopCommentsConversation
      x-operation-id-source: derived
  /top-comments-spot:
    get:
      summary: List top comments within an entire spot
      tags:
      - top comments
      responses:
        '200':
          $ref: '#/components/responses/CommentObject'
      description: Retrieve the top comments for a Spot ID in a given time period
      parameters:
      - $ref: '#/components/parameters/x-api-key'
      - $ref: '#/components/parameters/x-spot-id'
      - $ref: '#/components/parameters/x-count'
      - $ref: '#/components/parameters/x-interval'
      - $ref: '#/components/parameters/x-month'
      - $ref: '#/components/parameters/x-weeks'
      - $ref: '#/components/parameters/x-year'
      operationId: getTopCommentsSpot
      x-operation-id-source: derived
  /top-comments-user:
    get:
      summary: List top comments for an individual user
      tags:
      - top comments
      responses:
        '200':
          $ref: '#/components/responses/CommentObject'
      description: Retrieve the top user comments in a given time period
      parameters:
      - $ref: '#/components/parameters/x-api-key'
      - $ref: '#/components/parameters/x-spot-id'
      - $ref: '#/components/parameters/x-user-id'
      - $ref: '#/components/parameters/x-count'
      - $ref: '#/components/parameters/x-interval'
      - $ref: '#/components/parameters/x-month'
      - $ref: '#/components/parameters/x-weeks'
      - $ref: '#/components/parameters/x-year'
      operationId: getTopCommentsUser
      x-operation-id-source: derived
components:
  parameters:
    x-year:
      name: x-year
      in: header
      required: false
      schema:
        type: integer
      description: Year of the time range<br /><br />The current year is the default value.
    x-api-key:
      name: x-api-key
      in: header
      required: true
      schema:
        type: string
      description: Unique OpenWeb engagement token<br /><br />Follow these steps to obtain the engagement token:<ol><li>From your OpenWeb Admin Dashboard, click <strong>Settings</strong>.</li><li>Under <strong>Authentication Tokens</strong>, copy the <strong>Engagement</strong> value.</li></ol><strong>NOTE:</strong> This value <strong>must not</strong> be exposed to users.
    x-month:
      name: x-month
      in: header
      required: false
      schema:
        type: integer
        minimum: 1
        maximum: 12
        example: 3
      description: 'Number of the month within the `x-year` in which comments were posted


        The `x-month` and `x-interval` values determines the duration of comments returned:

        - If `x-month` = `3` and `x-interval` = `one-month`, the API returns comments posted in March (month 3 of the year).

        - If `x-month` = `3` and `x-interval` = `two-months` (default), the API returns comments posted in March (month 3 of the year) and February (the previous month).


        **Default Value**: The month number of the current month.

        '
    x-interval:
      name: x-interval
      in: header
      required: false
      schema:
        type: string
        enum:
        - one-week
        - two-weeks
        - one-month
        - two-months
        default: two-months
      description: Period of time to return comments
    x-weeks:
      name: x-weeks
      in: header
      required: false
      schema:
        type: string
      description: 'Number of the week within the `x-month` of the `x-year` in which comments were posted


        The `x-weeks` and `x-interval` values determine the duration of comments returned:

        - If `x-weeks` = `3` and `x-interval` = `one-week`, the API returns comments posted in week 3 of the month of the year.

        - If `x-weeks` = `3,4` and `x-interval` = `two-weeks`, the API returns comments posted in weeks 3 and 4 of the month of the year.


        **NOTES**:

        - If `x-interval` = `two-weeks`, the `x-weeks` value must be defined as two consecutive weeks separated by a comma, `3,4`.

        - If `x-interval` = `one-month` or `two-months`, the `x-weeks` value is ignored.

        '
    x-conversation-id:
      name: x-conversation-id
      in: header
      required: true
      schema:
        type: string
      description: 'Unique identifier for the Conversation or thread


        Use one of these approaches to obtain this value:


        <strong>Article Card</strong>

        1. From your OpenWeb Admin Panel, click **Moderation > Articles**.

        2. Search for a comment associated with the Conversation.

        3. On the comment card, click **More > Copy conversation ID to clipboard**.


        <strong>Code</strong>

        1. Locate the spot ID. Contact your OpenWeb representative if you do not know this value.

        2. Identify the post ID. This is the unique article identifier assigned to the article page when it is created.

        3. Concatenate the spot ID and postID with an underscore

        ```

        spotID_postID

        ```


        <strong>Comment Card</strong>

        1. From your OpenWeb Admin Panel, click **Moderation > Comments**.

        2. Search for a comment associated with the Conversation.

        3. On the comment card, click **More > Copy conversation ID to clipboard**.


        **NOTE**: Only one of the `x-post-id` or `x-conversation-id` is required. If both values are included in the header, `x-post-id` will be used and `x-conversation-id` will be ignored.'
    x-user-id:
      name: x-user-id
      in: header
      required: true
      schema:
        type: string
      description: ID for the user who wrote the comments
    x-count:
      name: x-count
      in: header
      required: false
      schema:
        type: integer
        default: 10
      description: Number of comments to return
    x-spot-id:
      name: x-spot-id
      in: header
      required: true
      schema:
        type: string
      description: Spot ID of the partner
    x-post-id:
      name: x-post-id
      in: header
      required: true
      schema:
        type: string
      description: 'Unique article identifier that is specific to the article page


        The ideal post ID has the following characteristics:

        - Aligns with the URL slug (`an-article-title`) or article ID (`14325`)

        - Is **less than 50 characters**, ideally 15 characters

        - Uses a combination of letters, numbers, dashes (-), or hyphens (_)

        - Except for the regex `[^\w\s\-\:\.\$\~]`, does not include special characters


        **NOTE**: Only one of the `x-post-id` or `x-conversation-id` is required. If both values are included in the header, `x-post-id` will be used and `x-conversation-id` will be ignored.

        '
  responses:
    CommentObject:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            x-examples:
              Example 1:
                comments:
                - spot_id: SPOT_ID
                  post_id: POST_ID
                  article_name: ARTICLE_NAME
                  article_url: ARTICLE_URL
                  article_img: ARTICLE_IMG_URL
                  conversation_id: SPOT_ID_POST_ID
                  user_id: USER_ID
                  username: USERNAME
                  message_id: SPOT_ID_POST_ID_c_2dxlD797mA4wuiNLcJgDg9mAnIC
                  content:
                  - id: ANIMATION_ID
                    originalHeight: 225
                    originalUrl: https://media4.giphy.com/media/ANIMATION_ID/giphy.gif
                    originalWidth: 250
                    previewHeight: 63
                    previewUrl: https://media4.giphy.com/media/ANIMATION_ID/giphy-preview.gif
                    previewWidth: 70
                    title: ANIMATION_TITLE
                    type: animation
                  - id: 160b1173579f25064410a57bd814e176
                    text: <p>As far as I can see, the company has not yet made any profits.</p>
                    type: text
                  message_timestamp: 1710957487
                  message_type: comment
                  is_featured: false
                  like_count: 5
                  dislike_count: 0
                  replies_count: 0
                  user_profile_picture: USER_PROFILE_PICTURE_URL
                  state: approved
                  label:
                    ids:
                    - BEARISH
                    section: stock
            properties:
              comments:
                type: array
                items:
                  type: object
                  properties:
                    article_name:
                      type: string
                      description: Title or name of the article
                    article_url:
                      type: string
                      description: URL of the article
                    article_img:
                      type: string
                      description: Image associated with the article
                    content:
                      type: array
                      description: 'Possible properties of the content


                        Properties returned depend the `content.type`.'
                      items:
                        type: object
                        properties:
                          description:
                            type: string
                            description: Short description of the content
                          embed:
                            type: string
                            description: HTML tag (`<embed>`) used to embed the media on a page
                          frameType:
                            type: string
                            description: 'Defines type of social media format the frame emulates


                              **Possible Values**

                              - `FACEBOOK`

                              - `TWEET`'
                          id:
                            type: string
                            description: Unique identifier for the content
                          imageId:
                            type: string
                            description: Unique identifier for the image
                          mediaHeight:
                            type: number
                            description: Height of the media
                          mediaWidth:
                            type: number
                            description: Width of the media
                          originalHeight:
                            type: number
                            description: Height dimension of the media before resizing
                          originalUrl:
                            type: string
                            description: URL for the content
                          originalWidth:
                            type: number
                            description: Width dimension of the media before resizing
                          previewHeight:
                            type: number
                            description: Height dimension of the media preview
                          previewUrl:
                            type: string
                            description: URL of the media preview
                          previewWidth:
                            type: number
                            description: Width dimension of the media preview
                          providerUrl:
                            type: string
                            description: URL of the provider
                          thumbnailHeight:
                            type: number
                            description: Height of the thumbnail
                          thumbnailUrl:
                            type: string
                            description: URL for the thumbnail
                          thumbnailWidth:
                            type: number
                            description: Width of the thumbnail
                          title:
                            type: string
                            description: Title of the content
                          type:
                            type: string
                            description: 'Type of content


                              **Possible Values**

                              - `animation`

                              - `frame`

                              - `image`

                              - `link`

                              - `mention`

                              - `text`

                              - `video`'
                          text:
                            type: string
                            description: Raw content of the comment
                          url:
                            type: string
                            description: URL for the content
                          userId:
                            type: string
                            description: Unique identifier of a mentioned user
                    conversation_id:
                      type: string
                      description: Unique identifier for the Conversation or thread
                    dislike_count:
                      type: number
                      description: Number of dislikes received by the comment
                    is_featured:
                      type: boolean
                      description: Indicates if the comment is featured
                    label:
                      type: object
                      properties:
                        ids:
                          type: array
                          description: Label names
                          items:
                            type: string
                        section:
                          type: string
                          description: Section name
                    like_count:
                      type: number
                      description: Number of likes received by the comment
                    message_id:
                      type: string
                      description: Unique ID of the comment
                    message_timestamp:
                      type: number
                      description: Date and time the comment was posted
                    message_type:
                      type: string
                      description: 'Type of message


                        This value will always be `comment`.'
                    post_id:
                      type: string
                      description: Unique identifier for the post
                    replies_count:
                      type: number
                      description: Total number of replies to the comment
                    spot_id:
                      type: string
                      description: Unique OpenWeb identifier for a property
                    state:
                      type: string
                      description: 'Status of the comment


                        **Possible Values**

                        - `approved`

                        - `publish and moderate`

                        - `rejected`

                        - `require approval`

                        '
                    user_id:
                      type: string
                      description: Unique identifier for the commenter
                    username:
                      type: string
                      description: Username of the commenter
                    user_profile_picture:
                      type: string
                      description: URL of the profile image of the user
          examples:
            Comment with label and animation in content:
              value:
                comments:
                - spot_id: SPOT_ID
                  post_id: POST_ID
                  article_name: ARTICLE_NAME
                  article_url: ARTICLE_URL
                  article_img: ARTICLE_IMG_URL
                  conversation_id: SPOT_ID_POST_ID
                  user_id: USER_ID
                  username: USERNAME
                  message_id: SPOT_ID_POST_ID_c_2dxlD797mA4wuiNLcJgDg9mAnIC
                  content:
                  - id: ANIMATION_ID
                    originalHeight: 225
                    originalUrl: https://media4.giphy.com/media/ANIMATION_ID/giphy.gif
                    originalWidth: 250
                    previewHeight: 63
                    previewUrl: https://media4.giphy.com/media/ANIMATION_ID/giphy-preview.gif
                    previewWidth: 70
                    title: ANIMATION_TITLE
                    type: animation
                  - id: 160b1173579f25064410a57bd814e176
                    text: <p>As far as I can see, the company has not yet made any profits.</p>
                    type: text
                  message_timestamp: 1710957487
                  message_type: comment
                  is_featured: false
                  like_count: 5
                  dislike_count: 0
                  replies_count: 0
                  user_profile_picture: USER_PROFILE_PICTURE_URL
                  state: approved
                  label:
                    ids:
                    - BEARISH
                    section: stock
x-provenance:
  method: searched
  source: https://developers.openweb.com/reference
  harvested: '2026-10-14'
  tool: harvest-readme-openapi.py
  note: Assembled verbatim from the OpenAPI definition ReadMe embeds in each operation page of the provider's developer portal; paths and components merged by API title, nothing authored.
  assembled_from:
  - https://developers.openweb.com/reference/get_top-comments-conversation.md
  - https://developers.openweb.com/reference/get_top-comments-spot.md
  - https://developers.openweb.com/reference/get_top-comments-user.md
  merge:
    pages: 3
    deduped: 12
    conflicts_kept_first: 0