Skip to Content
Public APISend List Message

Send List Message

Send an interactive list message — a single button that opens a sectioned menu. Each row is tappable and the customer’s choice arrives as an inbound webhook carrying the row’s id.

Lists are great for menu-style flows: pick a service, pick a slot, pick a product collection. They support more options than a Button message (up to 10 rows across multiple sections).

Endpoint

POST https://apis.splashifypro.com/api/v1/public/message

Headers

HeaderValue
AuthorizationBasic YOUR_API_KEY
Content-Typeapplication/json

Request body

{ "phoneNumber": "919876543210", "callbackData": "browse_collections", "type": "InteractiveList", "data": { "message": { "type": "list", "body": { "text": "Check out our top product collections below!" }, "action": { "button": "View Collections", "sections": [ { "title": "service", "rows": [ { "id": "unique_id1", "title": "All products", "description": "hello" } ] } ] } } } }
FieldRequiredNotes
type (top level)yesMust be "InteractiveList"
data.message.typeyesMust be "list"
data.message.body.textyesBody shown above the menu button. Max 1024 chars
data.message.action.buttonyesLabel on the trigger button (e.g. "View Collections"). Max 20 chars
data.message.action.sectionsyesArray of sections, each with a title and rows
sections[].titleoptionalSection header. Max 24 chars
sections[].rowsyes1+ rows per section. Up to 10 rows total across all sections
rows[].idyesStable identifier — echoed back on tap. Max 200 chars
rows[].titleyesPrimary row label. Max 24 chars
rows[].descriptionoptionalSecondary line below the title. Max 72 chars

Optional header (text only) and footer.text are supported under data.message.

Example

curl -X POST https://apis.splashifypro.com/api/v1/public/message \ -H "Authorization: Basic YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "phoneNumber": "919876543210", "callbackData": "some_callback_data", "type": "InteractiveList", "data": { "message": { "type": "list", "body": { "text": "Check out our top product collections below!" }, "action": { "button": "View Collections", "sections": [ { "title": "service", "rows": [ { "id": "unique_id1", "title": "All products", "description": "hello" } ] } ] } } } }'

Successful response — 201 Created

{ "result": true, "message": "Message queued for sending via Splashify Pro. Check webhook for delivery status", "id": "8a35b1e1-fac5-49b4-84d8-526eaa4c4d77" }

When the user taps a row

The selection arrives via your inbound webhook as a list_reply:

{ "type": "list", "from": "919876543210", "list_reply": { "id": "unique_id1", "title": "All products", "description": "hello" } }

Limits at a glance

  • 1–10 sections
  • 10 rows total across all sections
  • Title 24 chars, description 72 chars, row id 200 chars
  • Body 1024 chars, button label 20 chars