Skip to main content
The Public Broadcast API lets your server send approved WhatsApp templates at scale and send supported free-form messages. This guide covers the organization-scoped v2 endpoints.

Base configuration

Keep your API key on your server. It grants send access to the WhatsApp numbers connected to your organization, so do not expose it in browser or mobile code.

Authenticate your requests

You can find the organization auth key in Workspace → Staff. Add it to the x-api-key header on every endpoint except the health check.
The key identifies your organization. When a request includes fromPhoneNumber or phone_number, the API also verifies that the number belongs to that organization and has a complete WABA configuration.
A complete WABA configuration contains waba_id, phone_number_id, phone_number, and access_token. An organization mismatch or incomplete configuration returns 401.

Integration flow

  1. Get phone numbers to find the senders available to your organization.
  2. Get templates and confirm that the template you need is approved.
  3. Send a template broadcast, or send a free-form message.
  4. If a template broadcast contains more than 1,000 recipients, use the returned jobId to get its status.
  5. Use the health check when you need to confirm that the service is reachable.

Endpoint index

Validation rules

Validation happens before a message or broadcast is queued. If one recipient or field is invalid, correct the request and submit it again.
For media, the API reads the extension from the URL path and ignores query parameters. A URL without a path extension is rejected even when it returns a supported media type.

Rate limits

Rate-limit windows are fixed at 60 seconds. When you receive 429, wait for the number of seconds stated in the error message before retrying. Sending more requests during the same window does not reset it.

Error handling

Errors use the same response envelope across the v2 endpoints:
Common 401 messages distinguish the configuration problem:
  • API key is required
  • Invalid API key. Organization not found.
  • No WABA account found for this organization.
  • WABA account is incomplete. Missing fields: …

Safe retries

For template broadcasts, send a unique Idempotency-Key header and reuse that value when retrying the same request. This prevents a transient failure from creating a second broadcast.
  • Retry 500 and 503 with exponential backoff.
  • For 429, wait for the interval in the response.
  • Do not retry 400 or 401 without changing the request or configuration.
This section documents the organization-scoped v2 integration only. Older per-number endpoints are intentionally excluded from the supported integration guide.