Skip to main content
POST
Keys requiring send approval receive 403 confirmation_required for direct sends. Use pending sends for approved single or bulk SMS; raw sends have no approval workflow. Send a single SMS message. This endpoint accepts a set of skip_* flags intended for granular control over validation and rate-limiting behavior.
The skip_* flags are currently accepted but have no effect. The endpoint does not read them, so every check it performs runs regardless of what you pass. This endpoint skips the recipient consent checks that POST /v2/send runs before queuing: a recipient who has opted out of the list or is blocked on it is accepted here with 201 instead of 400 contact_suppressed. That message is still dropped before delivery with status contact_blocked, so a 201 is not proof of delivery — read the message status. Every other consent decision is yours: use this endpoint only for recipients whose consent you manage yourself. It differs from POST /v2/send in more than link wrapping and contact-data macro substitution.
The following checks are always enforced:
  • Your account must own the sending list
  • Phone numbers must be in E.164 format
  • Your account must be in active status

Body Parameters

string
required
Recipient phone number in E.164 format (e.g. +14155551234).
string
required
Sending list phone number in E.164 format. Must belong to your account.
string
required
Message body text. Use the {{messageId}} placeholder to insert the unique message ID into the body at send time.
boolean
default:"false"
Intended to skip the duplicate message check. Currently accepted but ignored — this flag has no effect.
boolean
default:"false"
Intended to skip per-list rate limiting. Currently accepted but ignored — this flag has no effect.
boolean
default:"false"
Intended to skip contact validation such as opt-out and block list checks. Currently accepted but ignored — this flag has no effect, and this endpoint does not run those opt-out or block-list checks in the first place.
boolean
default:"false"
Intended to skip the journey enrollment check. Currently accepted but ignored — this flag has no effect.
object
Optional key-value metadata dictionary. Currently accepted but not stored or returned — the endpoint discards this field, so it cannot yet be used to correlate messages with your own systems.

Response Fields

boolean
Whether the message was successfully queued.
string
An opaque, variable-length message identifier for tracking delivery and clicks.
string
Current message status. Will be "queued" on successful submission.

Examples

Error Codes

Authenticated requests can also fail with 401 invalid_credentials, 403 account_suspended, or 429 rate_limited — see Error Codes.

Next Steps

Campaign Execution

How messages flow from queue to delivery

Create Contact

Add contacts before sending