Docs

Engage API

A clean REST API for the WhatsApp Business Platform. Send any message type, manage templates, contacts and campaigns, and receive signed webhooks — with predictable errors, idempotency and cursor pagination.

Base URL

All endpoints live under a single versioned base URL. Every request and response body is JSON, with snake_case fields, UUID ids and RFC 3339 UTC timestamps.

Base URL
https://api.engage.swastik.ai/v1
Examples use the production host
The examples in these docs use https://api.engage.swastik.ai/v1. If your workspace runs on a dedicated or self-hosted domain, substitute your own API host — paths are identical.

How it fits together

  • Numbers — WhatsApp phone numbers connected to your organization through Embedded Signup in the dashboard.
  • Messages — send with POST /v1/messages; delivery updates arrive as message.status webhooks.
  • Templates — pre-approved message formats required to start conversations outside the 24-hour customer service window.
  • Contacts — people you message, with tags, custom attributes and an opt-in state.
  • Campaigns — template broadcasts to an audience, with scheduling and live stats.

The 24-hour window

When a customer messages you, a customer service window opens for 24 hours. Inside it you can send any message type. Outside it, WhatsApp only allows approved templates. Engage returns validation_failed if you try to send a free-form message to a closed window.

Conventions

TopicConvention
AuthBearer API key — Authentication
ErrorsHTTP status + JSON envelope — Errors
RetriesIdempotency-Key header on POST — Idempotency
Listslimit + cursor — Pagination
VersioningBreaking changes ship under a new path version; additive fields can appear at any time.