Skip to content
Splashify Pro
Docs

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://api.splashifypro.com/api/v1/public/message

Headers

Request body

json
{
  "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"
              }
            ]
          }
        ]
      }
    }
  }
}

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

Example

bash
curl -X POST https://api.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

json
{
  "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:

json
{
  "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