> ## 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.

# Create a new comment

> Create a new comment. This API is considered content agnostic, meaning it may record data for more than a single type of object (a blog post or a landing page, etc.) Due to this difference, the API requires additional fields that may seem redundant if the API were only concerned with a single type.

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 POST /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:
    post:
      tags:
        - Blog Comments
      summary: Create a new comment
      description: >-
        Create a new comment. This API is considered content agnostic, meaning
        it may record data for more than a single type of object (a blog post or
        a landing page, etc.) Due to this difference, the API requires
        additional fields that may seem redundant if the API were only concerned
        with a single type.
      operationId: post-comments-v3-comments
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NewComment'
            example:
              comment: This is a test blog comment
              contentId: '6513512292'
              collectionId: '6513512292'
              contentTitle: This is a test blog title
              userEmail: tester@gmail.com
              userName: tester
              contentAuthorEmail: author@example.com
              contentAuthorName: Blog Author
              contentPermalink: https://example.com/blog-post
      responses:
        '201':
          description: Comment created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Comment'
              example:
                id: 409700798
                portalId: 62515
                contentId: 6513512292
                contentTitle: This is a test blog title
                contentPermalink: null
                collectionId: 6513512292
                createdAt: 1550599262439
                deletedAt: 0
                userName: tester
                firstName: tester
                lastName: ''
                userEmail: tester@gmail.com
                comment: This is a test blog comment
                userUrl: ''
                state: PENDING_AKISMET
                userIp: 216.107.205.146
                userReferrer: >-
                  https://tools.hubteam.com/api/post/api.hubapi.com%2Fcomments%2Fv3%2Fcomments%3F
                userAgent: >-
                  Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3)
                  AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109
                  Safari/537.36
                contentAuthorEmail: null
                contentAuthorName: null
                contentCreatedAt: 0
                threadId: 0001.0000.0000.0000.0000.0000.0000.0000.0000.0000
                replyingTo: null
                parentId: 0
                legacyId: 0
                extraContext: null
                parent: null
        default:
          $ref: '#/components/responses/Error'
      security:
        - oauth2:
            - content
        - private_apps: []
components:
  schemas:
    NewComment:
      type: object
      required:
        - comment
        - contentId
        - collectionId
        - contentAuthorEmail
        - contentAuthorName
        - contentPermalink
        - contentTitle
        - userEmail
        - userName
      properties:
        comment:
          type: string
          description: The full text of the comment
        contentId:
          type: integer
          format: int64
          description: The id of the parent blog post
        collectionId:
          type: integer
          format: int64
          description: The ID of the blog that the post is a part of
        contentAuthorEmail:
          type: string
          description: The email address of the blog post author
        contentAuthorName:
          type: string
          description: The name of the blog post author
        contentPermalink:
          type: string
          description: URL to the blog post
        contentTitle:
          type: string
          description: Title of the blog post
        userEmail:
          type: string
          description: The email address of the comment author
        userName:
          type: string
          description: The name of the comment author
        userUrl:
          type: string
          description: The homepage of the comment author
    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

````