CommentThreads: insert

Creates a new top-level comment. To add a reply to an existing comment, use the comments.insert method instead.

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
  • replies
  • snippet

Request body

Provide a commentThread resource in the request body.

For that resource, you must specify a value for the following properties:

  • snippet.channelId
  • snippet.videoId
  • snippet.topLevelComment.snippet.textOriginal


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


The following table identifies error messages that the API could return in response to a call to this method. For more details, see the error message documentation.

Error type Error detail Description
badRequest (400) channelOrVideoIdMissing Each comment thread must be linked to a video. Make sure the resource specifies values for the snippet.channelId and the snippet.videoId properties. A comment on a video appears on the video's watch page.
badRequest (400) commentTextRequired The comment resource that is being inserted must specify a value for the snippet.topLevelComment.snippet.textOriginal property. Comments cannot be empty.
badRequest (400) commentTextTooLong The comment resource that is being inserted contains too many characters in the snippet.topLevelComment.snippet.textOriginal property.
badRequest (400) invalidCommentThreadMetadata The request metadata is invalid.
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 commentThread resource in the request body to ensure that it is valid.
forbidden (403) forbidden The comment thread couldn't 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) channelNotFound The specified channel couldn't be found. Check the value of the snippet.channelId property to ensure it is correct.
notFound (404) videoNotFound The specified video couldn't be found. Check the value of the snippet.videoId property to ensure it is correct.

Try it!

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