# sendChatAction

Source: https://core.telegram.org/bots/api#sendchataction

[Documentation index](../llms.txt)

Use this method when you need to tell the user that something is happening on the bot's side. The status is set for 5 seconds or less (when a message arrives from your bot, Telegram clients clear its typing status). Returns *True* on success.

> Example: The [ImageBot](https://t.me/imagebot) needs some time to process a request and upload the image. Instead of sending a text message along the lines of “Retrieving image, please wait…”, the bot may use [sendChatAction](sendchataction.md) with *action* = *upload\_photo*. The user will see a “sending photo” status for the bot.

We only recommend using this method when a response from the bot will take a **noticeable** amount of time to arrive.

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| business\_connection\_id | String | Optional | Unique identifier of the business connection on behalf of which the action will be sent |
| chat\_id | Integer or String | Yes | Unique identifier for the target chat or username of the target bot or supergroup in the format `@username`. Channel chats and channel direct messages chats aren't supported. |
| message\_thread\_id | Integer | Optional | Unique identifier for the target message thread or topic of a forum; for supergroups and private chats of bots with forum topic mode enabled only |
| action | String | Yes | Type of action to broadcast. Choose one, depending on what the user is about to receive: *typing* for [text messages](sendmessage.md), *upload\_photo* for [photos](sendphoto.md), *record\_video* or *upload\_video* for [videos](sendvideo.md), *record\_voice* or *upload\_voice* for [voice notes](sendvoice.md), *upload\_document* for [general files](senddocument.md), *choose\_sticker* for [stickers](sendsticker.md), *find\_location* for [location data](sendlocation.md), *record\_video\_note* or *upload\_video\_note* for [video notes](sendvideonote.md). |
