Adds a message or a poll to a live chat.

**Quota impact:** A call to this method has a [quota cost](https://developers.google.com/youtube/data/getting-started.md.txt#quota) of 20 units.

## Common use cases

<iframe src="https://developers.devsite.google/frame/youtube/data/live/reference/rest/v3/liveChatMessages/insert_ecf06036222ea2a964fb506940cc8240bc7608c4ff2d624c21525a427b5aaf6e.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/liveChat/messages
```

### Authorization

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

| Scope |
|---|
| `https://www.googleapis.com/auth/youtube` |
| `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 serves two purposes. It identifies the properties that the write operation will set as well as the properties that the API response will include. Set the parameter value to `snippet`. |

### Request body

Provide a [liveChatMessage resource](https://developers.google.com/youtube/data/live/reference/rest/v3/liveChatMessages.md.txt#resource) in the request body.
For that resource, you must specify values for these properties

- `snippet.liveChatId`
- `snippet.type` - choose one of the following options: `textMessageEvent` or `pollEvent`
- If type is `textMessageEvent`, include `snippet.textMessageDetails.messageText`
- If type is `pollEvent`, include the `snippet.pollDetails` object structured as follows:
  - `snippet.pollDetails.metadata.questionText` (String): The main question for the poll.
  - `snippet.pollDetails.metadata.options` (Array): A list of option objects.
  - Requirements: You must include a minimum of 2 and a maximum of 4 items.
  - Ordering: Items are displayed sequentially in the exact order they are listed.
  - Each object in the array must contain:
    - `optionText` (String): The text displayed for that specific poll choice.

## Response

If successful, this method returns a [liveChatMessage resource](https://developers.google.com/youtube/data/live/reference/rest/v3/liveChatMessages.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 [YouTube Live Streaming API - Errors](https://developers.google.com/youtube/data/live/reference/rest/v3/errors.md.txt).

| Error type | Error detail | Description |
|---|---|---|
| `forbidden (403)` | `forbidden` | You don't have the permissions required to create the specified message. |
| `forbidden (403)` | `liveChatDisabled` | The specified live chat has been disabled by the owner, which means messages cannot be added to the chat. |
| `forbidden (403)` | `liveChatEnded` | The specified live chat is no longer live. |
| `invalidValue (400)` | `messageTextInvalid` | The message text (`snippet.textMessageDetails.messageText`) is not valid. |
| `notFound (404)` | `liveChatNotFound` | The live chat identified in the API request does not exist. This error occurs if the chat has been deleted by the owner. |
| `required (400)` | `liveChatIdRequired` | The [liveChatMessage resource](https://developers.google.com/youtube/data/live/reference/rest/v3/liveChatMessages.md.txt#resource) must include and specify a value for the `snippet.liveChatId` property. |
| `required (400)` | `messageTextRequired` | The [liveChatMessage resource](https://developers.google.com/youtube/data/live/reference/rest/v3/liveChatMessages.md.txt#resource) must include and specify a value for the `snippet.textMessageDetails.messageText` property. |
| `required (400)` | `typeRequired` | The [liveChatMessage resource](https://developers.google.com/youtube/data/live/reference/rest/v3/liveChatMessages.md.txt#resource) must include and specify a value for the `snippet.type` property. Set the parameter value to `text` |
| `required (400)` | `preconditionCheckFailed` | A pinned active poll already exists. |
| `rateLimitExceeded` | `rateLimitExceeded` | The user has posted too many chat messages in a given timeframe. |

## Try it!

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