Skip to main content
POST
Send without an approved template

Authorizations

Authorization
string
header
required

Your API key, e.g. sk_live_... or sk_test_....

Headers

Idempotency-Key
string

Optional. Makes this write safe to retry: the same key replays the first response instead of acting twice.

Maximum string length: 255

Body

application/json
body
string
required
Maximum string length: 1024
category
enum<string>
required
Available options:
utility,
authentication
to
string
Maximum string length: 32
recipient
object
context
object
idempotency_key
string
Maximum string length: 128
phone_number_id
string
Maximum string length: 64
connection_uuid
string<uuid>
metadata
object
ttl_seconds
integer

How long WhatsApp keeps trying to deliver. Authentication allows at most 900 (Meta default 600).

Required range: 30 <= x <= 43200
template_name
string

Utility only: Meta files every message with this name under one generated template, so insights group them.

Maximum string length: 512
Pattern: ^[a-z0-9_]+$
interactive
object

Utility only. One of a link button, up to three reply buttons, or a Call on WhatsApp button, with an optional media header.

Response

Sent.

uuid
string

LazyApp's stable id for the message.

request_id
string | null

Correlation id, echoed as X-Request-Id.

status
enum<string>
Available options:
queued,
sent,
delivered,
read,
played,
failed
acceptance_status
string | null
type
enum<string>
Available options:
text,
template,
image,
document,
audio,
video,
sticker,
location,
contacts,
interactive,
reaction
provider_message_id
string | null

Meta's wamid.

error_message
string | null

Set only when status is failed.