API reference
Connect SMS and WhatsApp with workspace API keys, email with domain tokens, and verified websites with Web Push.
Quick start
- Create a key in Customer panel → Developer → API keys. Keep it on your server.
- Link an SMS phone or WhatsApp account in the customer panel.
- Use Authorization: Bearer YOUR_API_KEY on every request. Base URL:
- For SMS, fetch /sms/phones, then send phoneId, to and text. The server generates the request ID automatically.
Accepted does not mean delivered. Check the SMS status endpoint or WhatsApp history before retrying an uncertain submission.
Postman tests
Import the collection and set baseUrl and apiKey. Read requests include HTTP and response-field checks. Set phoneId and recipient, then allowSend=true to run sending requests. Sending requests are skipped by default.
Each SMS sent without requestId creates a new submission. For safe retries, optionally supply a UUID requestId and reuse it for the same message. WhatsApp sending has no duplicate-request protection.
Rate limits: 60 API requests per minute per workspace; SMS sending also has a 20 requests per minute limit. Package allowances are shared by SMS and WhatsApp.
SMS integration
Link your Android phone in the customer panel. GET /v1/sms/phones returns phone IDs. POST /v1/sms accepts phoneId, to and text; save the returned id. Poll GET /v1/sms/messages/{id} for delivery status. A partial response contains stored status because the gateway refresh failed.
WhatsApp integration
Connect WhatsApp in the customer panel, then check GET /v1/whatsapp/session. POST /v1/whatsapp/messages accepts to and text. Use an international recipient number with country code. Save messageId and requestId from the response and inspect GET /v1/whatsapp/messages before retrying an uncertain send. History can be partial and is not paginated.
Email API and SMTP
Generate a domain email token under Email → Domains → Manage. POST /v1/email/messages sends from an exactly verified sender; GET /v1/email/messages/{id} returns status and recorded events. These endpoints require a domain email token, not the SMS/WhatsApp workspace key. SMTP credentials are generated separately in the domain panel.
Web Push notifications
Open Push Notifications → Applications, register your HTTPS website and verify its DNS TXT record. Manage application provides a downloadable service worker, a website installation snippet, subscriber IDs and test sending. Browser endpoints below use the verified website Origin, without a Bearer token. Their base URL is https://resalahub.com, not /v1.
Web Push installation and API guide
Website test delivery is available. Production push broadcasts, a public push publishing API and native Android/iOS delivery are not available yet. Test acceptance does not confirm device display.
Customer webhooks
Configure customer webhook endpoints under Developer > Webhooks in the signed-in panel. Select messaging events, save your signing secret and send a test. Delivery history shows HTTP results, retries and replay controls. Events are collected from available history; email delivery and bounce events require provider reporting. See the webhook guide for signature verification and coverage limits.
Delivery states and errors
preparing, scheduled, pending and sending are in progress. sent means submitted to the carrier; delivered confirms a delivery report. failed, expired and rejected are unsuccessful. unconfirmed or unknown requires checking history before retrying.
Errors return an error object with a message and, where available, a code. 401: API key; 403: access or package restriction; 409: connection or request conflict; 422: invalid payload; 429: rate or monthly limit; 503/504: service unavailable or submission uncertain.
Availability
All implemented public integration endpoints are listed above. Account, admin, chatbot editing and phone pairing use private customer-panel APIs with session authentication. The email API uses domain tokens. Bulk campaign APIs, production push publishing and native mobile push APIs are not available in this version. The browser installation script is available from the verified website setup page.