---
title: "Send Typing Indicator"
method: POST
path: "/messages/send/typing"
tags: ["Messages > rcs"]
---

# Send Typing Indicator

`POST /messages/send/typing`

## Request

- Base URL: `https://api.pinnacle.sh`
- URL: `https://api.pinnacle.sh/messages/send/typing`
- Auth: API key in header `PINNACLE-API-KEY`

Send a typing indicator from an RCS agent to a recipient.

This endpoint allows RCS agents to display a typing indicator to recipients. The indicator is a message bubble with animated typing dots like this: <img src="https://server.trypinnacle.app/storage/v1/object/public/pinnacle-public-assets/ios-typing-indicator.png" alt="Typing Indicator" style="display: inline; height: 1.5em; vertical-align: middle; margin: 0 4px;" />

**Use Case:** Typing indicators are especially useful for providing feedback to users while the agent is thinking or generating a response that may take some time, creating a more engaging conversational experience.

**Expiration:** Typing indicators automatically expire after around 20 seconds or when the agent sends a message, whichever comes first.

**Frequency:** You can send typing indicators as many times as needed, though only one will be displayed at a time. Sending multiple typing indicators will extend the duration of the current indicator.

> **Note:** Typing indicators are best-effort hints, not delivery-guaranteed state. The platform is allowed to coalesce or drop them, and the client UI decides when to show/hide.

## Request body

- SendTypingIndicatorSchema: Request schema for sending typing indicators to recipients from RCS agents.
  - `agentId` string, required: The unique identifier of the RCS agent sending the typing indicator. <br> Format: `agent_` followed by alphanumeric characters (e.g., `agent_pinnacle`).
  - `to` string, required: The recipient's phone number in E.164 format. <br> Must include country code with a leading plus sign (e.g., `+14155551234`).

## Response `200`

Successfully sent the typing indicator.

- SendTypingIndicatorResponse: Response schema confirming the typing indicator was sent.
  - `success` boolean, required: Indicates whether the typing indicator was successfully sent.
  - `agentId` string, required: The RCS agent that sent the typing indicator.
  - `recipient` string, required: The recipient's phone number that received the typing indicator.
  - `startedAt` string, date-time, required: Timestamp when the typing indicator was started (ISO 8601 format).
  - `endedAt` string, date-time, required: Timestamp when the typing indicator will automatically expire (ISO 8601 format). <br> This is typically one minute after `startedAt` unless a message is sent first.

## Other responses

- `400`: The request was unacceptable, often due to providing an invalid update. <br> Errors may originate from invalid payload or from Pinnacle's additional validation checks. For example, providing an URL that cannot be accessed, updating a campaign that is currently being reviewed, updating data that you cannot access, sending a malformed message, and so on. <br> For `Pinnacle Validation Error` inspect the `error` payload to determine the source of the failure. These errors are likely due to additional validation and business logic checks.<br> For `Request Validation Error` inspect the `description` and `errors` payload to determine the source of failure. These errors are likely due to invalid payload inside the request.
- `401`: The request lacks valid authentication credentials or the provided credentials are invalid. <br> Ensure you're including a valid API key in the request headers and that your account has the necessary permissions to access this endpoint.
- `403`: Your subscription does not include access to this feature. <br> This occurs when attempting to use functionality that requires a higher subscription tier. Please upgrade your subscription to access this feature.
- `404`: The requested resource could not be found. <br> This may occur if the identifier is incorrect, the resource has been deleted, or you don't have permission to access it.
- `500`: An unexpected error occurred on Pinnacle's servers while processing your request. <br> If this error persists, please contact support with the request details.
- `501`: The requested functionality is not implemented on the server. <br> This typically indicates that the feature or endpoint you attempted to access is unavailable or not yet supported.

---

[API](https://skmtc.dev/pinnacle/apis/pinnacle-2.md) - [All operations](https://skmtc.dev/pinnacle/apis/pinnacle-2/llms.txt) - [OpenAPI document](https://skmtc.dev/pinnacle/apis/pinnacle-2/revisions/45416dadab79?raw)
