WhatsApp API Platform
Session Messages

Send List Message

POST
/api/v1/messages/send#list

Send an interactive list message with sections and selectable rows. The recipient picks one item from the list.

Authorization

ApiKeyAuth
X-API-Key<token>

API key from your dashboard (Settings > API Keys)

In: header

Header Parameters

X-AGENT-ID?string

Optional. Attribute this send to a specific agent, overriding the agent bound to the API key. The agent must belong to your account and be active (role AGENT, parent = your account) — otherwise the request returns 400. Drives customer assignment, agent allotment limits, and the wallet ledger entry.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://loading/api/v1/messages/send#list" \  -H "X-AGENT-ID: agt_abc123" \  -H "Content-Type: application/json" \  -d '{    "to": "919876543210",    "message": {      "message_type": "interactive_list",      "text": "Please select a service",      "header_text": "Our Services",      "interactive_list": {        "title": "Select a service",        "sections": [          {            "title": "Support",            "rows": [              {                "id": "billing",                "title": "Billing Support",                "description": "Help with invoices and payments"              },              {                "id": "technical",                "title": "Technical Support",                "description": "Help with product issues"              }            ]          },          {            "title": "Sales",            "rows": [              {                "id": "demo",                "title": "Request a Demo"              },              {                "id": "pricing",                "title": "Get Pricing"              }            ]          }        ]      }    }  }'
{
  "success": true,
  "data": {
    "id": "clx9abc123def456"
  }
}
{
  "success": false,
  "message": "to field is required"
}
{
  "success": false,
  "message": "user not authenticated"
}
{
  "success": false,
  "message": "insufficient balance to send message"
}
{
  "success": false,
  "message": "internal server error"
}