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](https://developers.google.com/youtube/data/getting-started.md.txt#quota) of 50 units.

## Common use cases

<iframe src="https://developers.devsite.google/frame/youtube/data/reference/rest/v3/commentThreads/insert_d25b46d2d04006fdb9a7a67f2141e87d36cd183b43956163d02a11c43759807c.frame" class="framebox inherit-locale " allow="clipboard-write https://developers.devsite.google" allowfullscreen is-upgraded></iframe>

## Request

### HTTP request

```
POST https://www.googleapis.com/youtube/v3/commentThreads
```

### Authorization

This request requires authorization with at least one of the following scopes ([read more about authentication and authorization](https://developers.google.com/youtube/data/guides/authentication.md.txt)).

| Scope |
|---|
| `https://www.googleapis.com/auth/youtube.force-ssl` |

### Parameters

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

| 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](https://developers.google.com/youtube/data/reference/rest/v3/commentThreads.md.txt#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`

## Response

If successful, this method returns a [commentThread resource](https://developers.google.com/youtube/data/reference/rest/v3/commentThreads.md.txt#resource) in the response body.

## Errors

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](https://developers.google.com/youtube/data/reference/rest/v3/errors.md.txt) 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.