Comments: insert

Creates a reply to an existing comment. Note: To create a top-level comment, use the commentThreads.insert method.

Quota impact: A call to this method has a quota cost of 50 units.

Common use cases


HTTP request



This request requires authorization with at least one of the following scopes (read more about authentication and authorization).



The following table lists the parameters that this query supports. All of the parameters listed are query parameters.

Required parameters
part string
The part parameter identifies the properties that the API response will include. Set the parameter value to snippet. The snippet part has a quota cost of 2 units.

The following list contains the part names that you can include in the parameter value:
  • id
  • snippet

Request body

Provide a comment resource in the request body. For that resource:

  • You must specify a value for these properties:

    • snippet.textOriginal
    • snippet.parentId

  • You can set values for these properties:

    • snippet.textOriginal


If successful, this method returns a comment resource in the response body.


The following table identifies error messages that the API could return in response to a call to this method. Please see the error message documentation for more detail.

Error type Error detail Description
badRequest (400) commentTextRequired The comment resource that is being inserted must specify a value for the snippet.textOriginal property. Comments cannot be empty.
badRequest (400) commentTextTooLong The comment resource that is being inserted contains too many characters in the snippet.textOriginal property.
badRequest (400) invalidCustomEmoji The comment resource that is being inserted contains invalid custom emoji.
badRequest (400) invalidCommentMetadata The request metadata is invalid.
badRequest (400) operationNotSupported The API user is not able to insert a comment in reply to the top-level comment identified by the snippet.parentId property. In a commentThread resource, the snippet.canReply property indicates whether the current viewer can reply to the thread.
badRequest (400) parentCommentIsPrivate The specified parent comment is private. The API does not support replies to private comments.
badRequest (400) parentIdMissing The comment that is being inserted must be linked to a parent comment. However, the comment resource in the body of the API request did not specify a value for the snippet.parentId property.
badRequest (400) processingFailure The API server failed to successfully process the request. While this can be a transient error, it usually indicates that the request's input is invalid. Check the structure of the comment resource in the request body to ensure that it is valid.
forbidden (403) forbidden The comment cannot be created due to insufficient permissions. The request might not be properly authorized.
forbidden (403) ineligibleAccount The YouTube account used to authorize the API request must be merged with the user's Google account to insert a comment or comment thread.
notFound (404) parentCommentNotFound The specified parent comment could not be found. Check the value of the snippet.parentId property in the request body to ensure that it is correct.

Try it!

Use the APIs Explorer to call this API and see the API request and response.