Send Messages

Send Options List

Sends a list menu with sections and selectable items. The contact taps the button and chooses an option.

POSThttps://api.zapzapapi.com/api/v1/{instanceId}/send/list

Authentication with the x-api-key and x-api-secret headers.

Parameters

NameTypeInRequiredDescription
numbertextbodyYesRecipient number
texttextbodyYesMain text
choicesjsonbodyYesOptions: use "[Section]" for a header and "Item|id|description" for each item
listButtontextbodyNoText of the button that opens the list
footerTexttextbodyNoFooter (optional)
digitandoselectbodyNoShows an automatic "typing..." indicator, proportional to the message length, before sending. On by default (humanizes and reduces block risk). Send false to turn it off and reply faster. The response remains synchronous.

Request example

curl

curl -X POST "https://api.zapzapapi.com/api/v1/{instanceId}/send/list" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "x-api-secret: YOUR_API_SECRET" \
  -H "Content-Type: application/json" \
  -d '{"number":"5511999999999","text":"Escolha uma opção:","choices":["[Produtos]","Camiseta|p1|R$ 50","Calça|p2|R$ 120"]}'

Node.js

const res = await fetch("https://api.zapzapapi.com/api/v1/{instanceId}/send/list", {
  method: "POST",
  headers: {
    "x-api-key": "YOUR_API_KEY",
    "x-api-secret": "YOUR_API_SECRET",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "number": "5511999999999",
    "text": "Escolha uma opção:",
    "choices": [
      "[Produtos]",
      "Camiseta|p1|R$ 50",
      "Calça|p2|R$ 120"
    ]
  }),
});
console.log(await res.json());

Python

import requests

res = requests.post(
    "https://api.zapzapapi.com/api/v1/{instanceId}/send/list",
    headers={"x-api-key": "YOUR_API_KEY", "x-api-secret": "YOUR_API_SECRET"},
    json={"number":"5511999999999","text":"Escolha uma opção:","choices":["[Produtos]","Camiseta|p1|R$ 50","Calça|p2|R$ 120"]},
)
print(res.json())

Response example

JSON

{
  "messageType": "ListMessage",
  "status": "Pending"
}

Values are illustrative; the fields follow the real response format.

See the full reference

Get your API keys

Create your account, connect a number in minutes and start using the API. R$15 per active number/month, with a welcome credit when you create the account, subject to the current campaign.