Developers

One API key. Five channels. Three SDKs.

Same bearer key, same base URL, a send endpoint per channel. Webhooks for every delivery event, idempotency keys on every send, fallback chains by ID, and SDKs for Node.js, PHP and Python.

Send

Change the path. Keep everything else.

Each channel has its own send endpoint under /api/v2/messages, and every one takes the same key, the same idempotency header and returns the same event vocabulary.

  • Idempotency-KeyA retry after a timeout never sends twice.
  • Scoped keysSend-only, read-only or full. IP allow-lists. Rotate without downtime.
  • Batch endpointsWhatsApp, SMS and RCS accept batches for high-volume transactional traffic.
  • Fallback chain by IDAttach a chain to a send and the switchboard handles the retries across channels.
# email · transactional lane
curl https://theaurapost.com/api/v2/messages/email/send \
  -H "Authorization: Bearer $API_KEY" \
  -d '{"to":"user@example.com","template":"welcome","subject":"Welcome"}'
# whatsapp · approved template, your own number
curl https://theaurapost.com/api/v2/messages/whatsapp/send \
  -H "Authorization: Bearer $API_KEY" \
  -H "Idempotency-Key: order-8812" \
  -d '{"to":"+919876543210","template":"order_update"}'
# sms · DLT template, registered header
curl https://theaurapost.com/api/v2/messages/sms/send \
  -H "Authorization: Bearer $API_KEY" \
  -H "Idempotency-Key: otp-4471" \
  -d '{"to":"+919876543210","template":"otp_login","params":{"code":"482913"}}'
# rcs · rich card, falls back to sms in a chain
curl https://theaurapost.com/api/v2/messages/rcs/send \
  -H "Authorization: Bearer $API_KEY" \
  -d '{"to":"+919876543210","template":"new_arrivals"}'
# web push · by email, phone or subscriber id
curl https://theaurapost.com/api/v2/push/send \
  -H "Authorization: Bearer $API_KEY" \
  -d '{"email":"user@example.com","title":"Your order shipped","body":"Track it now"}'

Everything on the same key

Campaigns, templates, wallets, sub-accounts, webhooks.

Webhooks

sent, delivered, read, clicked, failed on every channel. Signed payloads, retries, a replay endpoint for anything you missed.

Campaign APIs

Create, schedule, send and report on email, WhatsApp, SMS, RCS and push campaigns.

Template APIs

WhatsApp templates submitted to Meta, SMS templates registered with DLT, both tracked by status.

Partner API

Sub-accounts, wallets, thresholds, DLT headers and usage per merchant for platforms and agencies.

OTP endpoints

WhatsApp and SMS verification codes with reserved capacity and fraud guards.

GDPR endpoints

Export and delete a person's data across channels from one call.

SDKs and specs

Pick a language. Or read the spec.

The API reference is rendered from the same OpenAPI arrays the API serves, so it cannot drift. Live health is on the status page.

Questions, answered first

Frequently asked questions

Is there one API for all channels?

Yes. One bearer key, one base URL, a send endpoint per channel under /api/v2/messages, and campaigns, templates, fallback chains, sub-accounts and wallets on the same key.

Are retries safe?

Send endpoints honour an Idempotency-Key header, so a retry after a timeout never sends twice.

How do I get delivery events?

Webhooks for sent, delivered, read, clicked and failed on every channel, with a replay endpoint for anything you missed.

Which SDKs exist?

Node.js, PHP and Python, downloadable from the API reference page. The OpenAPI specs are public at /openapi.json and /openapi-v2.json.

First send in five minutes.

Create an account, copy a key, pick a channel.