The Typing Indicator API allows your application to display a "typing..." indicator in a WhatsApp conversation while your system prepares a response.
When the Typing Indicator request is sent:
The user sees a "typing..." animation from your business.
The incoming message is automatically marked as read and displays double blue checkmarks.
For example, when a user sends a message such as "help", Insider One forwards the message to your webhook endpoint. Your system retrieves the message_id from the webhook payload and sends it to the Typing Indicator endpoint. The user then sees the read receipt and typing indicator while your system processes the request and prepares a response.
Read receipts are always sent. Triggering a typing indicator automatically marks the incoming message as read and displays a read receipt to the user.
For information on receiving incoming WhatsApp messages through webhooks, refer to Webhooks for Conversational WhatsApp.
Prerequisites
Before using the Typing Indicator API, ensure that you have:
An active Conversational API integration on InOne.
A valid OAuth 2.0 credential. For step-by-step instructions on generating an OAuth 2.0 credential, refer to Send Conversational WhatsApp Messages with OAuth 2.0.
The message_id of the incoming WhatsApp message, retrieved from your webhook payload.
Endpoint
POST https://gw.useinsider.com/api/wa/v2/conversational/messages/send
Body Parameters
Parameter | Data Type | Required | Description |
|---|---|---|---|
messaging_product | String | Yes | Must be "whatsapp". |
status | String | Yes | Must be "read". |
message_id | String | Yes | The ID of the incoming user message from your webhook payload. |
typing_indicator.type | String | Yes | Must be "text". |
Sample Request
curl --location 'https://gw.useinsider.com/api/wa/v2/conversational/messages/send' \
--header 'Authorization: Bearer {{oauth2-bearer}}' \
--header 'Content-Type: application/json' \
--data '{
"messaging_product": "whatsapp",
"status": "read",
"message_id": "{{MESSAGE_ID}}",
"typing_indicator": {
"type": "text"
}
}'Sample Responses
A successful request returns the HTTP 200 OK response below.
{
"success": true
}400 Bad Request
{
"error": {
"message": "(#100) Invalid parameter",
"code": 100,
"type": "OAuthException",
"error_data": {
"messaging_product": "whatsapp",
"details": "Message supplied to mark message as read API with message ID: wamid.HBgMOTk0NTU4OTY0MTg0FQIAERgSOEZGMEQxMEQ3OEEzOEI1QjlEAA== is outgoing. Please use an incoming message ID."
},
"fbtrace_id": "ARoq5AnglzzrJ9RYBbociIq"
}
}Limitations
Manual triggering is required. Typing indicators are not sent automatically. Your system must call this endpoint after receiving an incoming message through a webhook.
Rate limits apply. Requests to this endpoint are sent directly to Meta and bypass the standard message queue. To maintain system stability, rate limits are enforced. For more information, refer to the API Rate Limits.