Documentation / HTTP API reference
REFERENCE

HTTP API reference

A practical map of available integration routes. Use /api/v1 through the dashboard proxy, or /v1 directly at the API origin.

Request and response conventions

Send JSON with Content-Type: application/json. Successful responses wrap resources in data. Timestamps use UTC ISO 8601; money uses integer INR paise. Lists accept limit 1–100 (default 50), cursor and tenant_id when using a session. API keys derive tenant scope.

// Success
{ "data": { "id": "...", "status": "queued" } }
// Paginated list
{ "data": [], "next_cursor": "LAST_RECORD_UUID" }
// Failure
{ "error": { "code": "forbidden", "message": "...", "request_id": "..." } }

Integration routes

The scopes below apply to API keys. Resource-specific routes derive tenant scope from the resource and validate it against the principal.

RouteDescriptionRequirement / access
POST /v1/notificationsSend a messagenotifications:write
GET /v1/notifications or /v1/notifications/:idList messages / inspect timelinenotifications:read
POST /v1/notifications/:id/cancelCancel before sendnotifications:write
GET /v1/domainsRead sending domainsdomains:read
GET /v1/templatesRead templates and versionstemplates:read
POST /v1/contactsUpsert contact and optional consentcontacts:write
GET /v1/contactsList contactscontacts:read
PATCH /v1/contacts/:idUpdate contact / consentcontacts:write
POST /v1/contacts/importImport up to 1,000 contactscontacts:write
GET /v1/listsRead audience listscontacts:read
POST /v1/listsCreate listcontacts:write
POST /v1/lists/:id/contactsAdd list memberscontacts:write
GET /v1/suppressionsRead suppressed addressescontacts:read
GET /v1/campaigns or /v1/campaigns/:idRead campaigns and countscampaigns:read
POST /v1/campaignsCreate draft campaigncampaigns:write
POST /v1/campaigns/:id/launchLaunch / resumecampaigns:write
POST /v1/campaigns/:id/pausePause remaining dispatchcampaigns:write
POST /v1/campaigns/:id/cancelCancel remaining workcampaigns:write
GET /v1/overviewRead delivery metricsmetrics:read
POST /v1/whatsapp/notificationsSend an approved WhatsApp templatenotifications:write
GET /v1/whatsapp/templatesRead synced Meta templates and schematemplates:read
POST /v1/whatsapp/consentsRecord account and purpose specific consentcontacts:write
POST /v1/whatsapp/campaignsCreate a WhatsApp marketing draftcampaigns:write
POST /v1/whatsapp/campaigns/:id/launchLaunch or resume after reviewcampaigns:write

Dashboard session routes

The dashboard exposes tenant setup, Meta credential connections and rotation, Meta callback verification token recovery, domain verification, template editing, attachment uploads, webhooks, API key management, invitations, team roles, audit history, plans, approval requests, subscriptions, invoices, payments, and billing exports. These are permission-checked session operations; public API keys are not administrator credentials.

Pagination

Pass next_cursor from the previous response as cursor on the next request, keeping the same filters. Lists sort by descending creation time and ID. Stop when next_cursor is absent.

GET /api/v1/contacts?limit=100
GET /api/v1/contacts?limit=100&cursor=LAST_RECORD_UUID
Building something interesting?We’d love to help