Skip to content

Errors & limits

Errors return a JSON body with a numeric statusCode, a message, and a short error label. message is a string for most errors, or an array of strings for validation errors.

{
"statusCode": 403,
"message": "Cannot start a new conversation with this contact; they must message you first",
"error": "Forbidden"
}
StatusMeaning
400Validation error — missing chatId, neither/both of text and media, or missing media.type.
401Missing or invalid session API key.
403Cold 1:1 reach-out to an untrusted contact (they must message you first). See Trusted contacts.
404Unknown/too-old message id on POST /read, or media not found/expired on GET /media/:id.
413Base64 payload exceeds the 16 MB decoded limit — use media.url instead.
422A media.url could not be fetched at send time (bad or unreachable link).
503The session is offline (not currently connected to WhatsApp).
LimitValue
Base64 media (decoded)16 MB — larger payloads must use media.url
Cold 1:1 reach-outBlocked until the contact messages you first (replies always work)
  • 1:1 and group messaging are both supported.
  • Quoted replies are supported via quoteMessageId.
  • Still out of scope: mentions, reactions/edits/deletes, polls, stickers, contact cards, and view-once.