> ## Documentation Index
> Fetch the complete documentation index at: https://developers.hubspot.jp/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# List comments

> List comments from your HubSpot blogs. Supports paging and filtering.

export const ScopesList = ({scopes = [], description = "この API には、次のいずれかのスコープが必要です。"}) => {
  if (!scopes || scopes.length === 0) {
    return null;
  }
  const sortedScopes = scopes.sort((a, b) => a.localeCompare(b));
  return <div>
      <div className="text-sm mb-2">{description}</div>
      <div>
        {sortedScopes.map((scope, index) => <div key={index}>
            <code>
              <span className="text-xs">{scope}</span>
            </code>
          </div>)}
      </div>
    </div>;
};

<Accordion title="Scope requirements">
  <ScopesList scopes={['content']} />
</Accordion>


## OpenAPI

````yaml specs/legacy/v3/blog-comments-v3.json GET /comments/v3/comments
openapi: 3.0.1
info:
  title: Blog Comments API - V3
  version: v3
  description: >-
    Use the Blog Comments API to create and manage blog comments, including
    restoring deleted comments.
  x-hubspot-api-use-case: >-
    You want to build a system for automating the moderation of comments left on
    your company's blog.
servers:
  - url: https://api.hubapi.com
security: []
tags:
  - name: Blog Comments
paths:
  /comments/v3/comments:
    get:
      tags:
        - Blog Comments
      summary: List comments
      description: List comments from your HubSpot blogs. Supports paging and filtering.
      operationId: get-comments-v3-comments
      parameters:
        - name: limit
          in: query
          description: The number of items to return. Defaults to 20.
          required: false
          schema:
            type: integer
            format: int32
        - name: offset
          in: query
          description: The offset set to start returning rows from. Defaults to 0.
          required: false
          schema:
            type: integer
            format: int32
        - name: portalId
          in: query
          description: The portal number associated with your api key/token.
          required: false
          schema:
            type: integer
            format: int64
        - name: state
          in: query
          description: >-
            Comment state. Options are: APPROVED, SPAM, REJECTED,
            PENDING_MODERATION.
          required: false
          schema:
            type: string
            enum:
              - APPROVED
              - SPAM
              - REJECTED
              - PENDING_MODERATION
        - name: contentId
          in: query
          description: >-
            Allows you get comments for a specific blog post. Include
            `contentId={post ID}` to only get comments for that post.
          required: false
          schema:
            type: integer
            format: int64
        - name: reverse
          in: query
          description: If you want comments oldest to newest, supply 'reverse=true'.
          required: false
          schema:
            type: boolean
        - name: query
          in: query
          description: Matches arbitrary text within a comment.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: A list of blog comments.
          content:
            application/json:
              schema:
                type: object
                properties:
                  objects:
                    type: array
                    items:
                      $ref: '#/components/schemas/Comment'
                  total:
                    type: integer
                  limit:
                    type: integer
                  offset:
                    type: integer
              example:
                objects:
                  - id: 409695529
                    portalId: 62515
                    contentId: 6860971618
                    contentTitle: Test Blog
                    contentPermalink: http://demo-hubapi.hs-sites.com/tb-es/test-blog
                    collectionId: 6513512292
                    createdAt: 1550182973778
                    deletedAt: 0
                    userName: test testerson
                    firstName: test testerson
                    lastName: ''
                    userEmail: test@gmail.com
                    comment: sample test comment
                    userUrl: ''
                    state: APPROVED
                    userIp: null
                    userReferrer: null
                    userAgent: null
                    contentAuthorEmail: testapi@hubspot.com
                    contentAuthorName: Test 2
                    contentCreatedAt: 1545651277462
                    threadId: 0001.0000.0000.0000.0000.0000.0000.0000.0000.0000
                    replyingTo: null
                    parentId: 0
                    legacyId: 0
                    extraContext: null
                    parent: null
                total: 17
                limit: 1
                offset: 0
        default:
          $ref: '#/components/responses/Error'
      security:
        - oauth2:
            - content
        - private_apps: []
components:
  schemas:
    Comment:
      type: object
      properties:
        id:
          type: integer
          format: int64
          description: The unique id of the comment
        portalId:
          type: integer
          format: int64
        contentId:
          type: integer
          format: int64
          description: The id of the parent blog post
        contentTitle:
          type: string
        contentPermalink:
          type: string
        collectionId:
          type: integer
          format: int64
        createdAt:
          type: integer
          format: int64
          description: Unix timestamp when the comment was made
        deletedAt:
          type: integer
          format: int64
        userName:
          type: string
          description: The name of the person submitting the comment
        firstName:
          type: string
        lastName:
          type: string
        userEmail:
          type: string
          description: The email address of the user submitting the comment
        userReferrer:
          type: string
          description: The URL the comment was submitted from
        userIp:
          type: string
          description: The IP address of the person submitting the comment
        userAgent:
          type: string
          description: The user agent of the commenter's browser
        userWebsite:
          type: string
          description: The web site of the user submitting the comment
        userUrl:
          type: string
        comment:
          type: string
          description: The full text of the comment
        state:
          type: string
          description: State of the comment; approved, rejected, etc.
        contentAuthorEmail:
          type: string
        contentAuthorName:
          type: string
        contentCreatedAt:
          type: integer
          format: int64
        threadId:
          type: string
        replyingTo:
          type: string
          nullable: true
        parentId:
          type: integer
          format: int64
        legacyId:
          type: integer
          format: int64
        extraContext:
          type: object
          nullable: true
        parent:
          type: object
          nullable: true
  responses:
    Error:
      description: An error occurred.
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                type: string
              message:
                type: string

````