Skip to main content
Send SMS, MMS or WhatsApp messages and check delivery. After logging in, replace the example numbers with an enabled sender and your test recipient:
Replace --dry-run with --yes to send the billed message. Check delivery with plivo messaging get "<message_uuid>", using the message UUID the send returns. SMS is text messaging; MMS adds media. Numbers use E.164 format with a country code, such as +14155550100. US application-to-person (A2P) messaging from a ten-digit local number needs 10DLC registration before you send. Command syntax: replace <values> and omit [flags] unless adding options. Global flags (-o, --query, --dry-run, --yes, --schema) and the paging flags --all, --limit and --offset on every list: see Configuration.

Filter message lists by date

plivo messaging sms list, mms list and whatsapp list take the same flags (dates below are examples):
Plivo searches only the last 90 days. A range starting earlier is refused before any request, with the earliest date you can use. The Message API can’t filter by number, so --from and --to are refused with BAD_FLAG. Use --query with --all instead:

SMS

For US local numbers, register a business profile, a brand and a campaign (your messaging use case), then link the number to the campaign. Toll-free numbers use a separate verification request. A Powerpack groups numbers for sending.

Send and list SMS

whatsapp send takes the same flags; mms send adds --media-url.

10DLC registration

A brand is registered from a 10DLC profile holding the company’s legal name, employer identification number (EIN), address, website and contact. A profile registers one brand. List profiles with plivo api GET /Profile/; create one in the console or with plivo api POST /Profile/. Without --brand-type the API registers a STANDARD brand, which needs a profile with an EIN and is sent for secondary vetting (a separate one-time fee) unless you pass --secondary-vetting=false.There is no brand update: the API has none.
Each update sends the campaign to the carriers for review again and is charged, so it needs --yes (or --dry-run to preview). The API allows updates only for a campaign whose registration failed (registration_status FAILED).

Toll-free verification

Submits one number. The business’s details come from a profile, the same kind 10DLC brands use. List yours with plivo api GET /Profile/.

Powerpacks

MMS

Send multimedia messages in the US or Canada from an MMS-enabled sender, with a publicly reachable media URL:
mms send takes the sms send flags plus --media-url <value>: URL of a hosted image or media file to attach (repeatable, up to 10).

WhatsApp

Use a sender connected to Plivo’s WhatsApp Business API. The CLI sends text with --text; it has no template flag. For a text reply allowed by your WhatsApp conversation:
For template payloads, use Any REST endpoint with the Message API.

Diagnose a message

Give the CLI a message UUID and it explains why the message failed: the error code, the carrier response, and what to change. Find IDs with the list commands above. Answers usually take 30 to 120 seconds. Only messages on your own account can be diagnosed. diagnose and plivo ask share a limit of 5 requests per 60 seconds per account. With -o json it prints one result with fixed fields, and it exits 3 if the analysis fails or stops early; see Read the result in a script.

Get any message