Pick the message type you need. Each guide shows the fields to send, a working example, and what comes back from the API.

Common request body

All send-message examples use the same top-level shape:
{
  "channel_id": "wzp_abc123",
  "to": "6281234567890",
  "type": "text",
  "content": {}
}
  • Use to for the recipient phone number in international format.
  • to_phone is accepted as an alias for to, but to is preferred.
  • content changes based on the selected type.
  • For media payloads, prefer media_url even though older aliases like media and url are still accepted.

Interactive

Engage customers using plain text or interactive components like buttons and list options.

Send text

Send plain text notifications and replies.

Send buttons

Send quick-reply button messages.

Send list

Send interactive list menus.

Media

Send images, video files, documents, and stickers to your customers.

Send image

Send image media with optional caption.

Send video

Send video media with optional caption.

Send audio

Send audio media URL.

Send document

Send document file and file name.

Send sticker

Send WhatsApp sticker by sticker URL.

Location & contacts

Ask for or share geographic locations and contact cards.

Send location

Send a location pin with latitude and longitude.

Request user location

Ask user to share their location.

Send contact

Share contact information in chat.

Actions

Perform session-management tasks like reactions and marking messages read.

Send reaction

React to a specific message.

Mark messages as read

Mark a message as read on provider side.

Channel availability

Message typeOfficialUnofficial
TextYesYes
ButtonsYesYes (fallback text possible)
ListYesYes (fallback text possible)
Image / Video / Audio / DocumentYesYes
StickerYesYes
LocationYesYes
Request user locationYesYes
ContactYesYes
ReactionYesYes
Mark as readYesYes
For full matrix, see Channel support.

Need exact fields?