Start quickly from the same page without hunting through different areas of the platform.
Clean Base URL, auth header, ready examples, webhooks, error codes, and a Postman collection inside an organized developer experience.
Start quickly from the same page without hunting through different areas of the platform.
Choose the right scenario and run the first request through cURL or the ready snippets.
Receive sent, delivered, and failed callbacks in your system with retries and a visible attempt log.
Watch devices, queue health, and message state without leaving the same experience.
Use two quick endpoints during development or CI to confirm the service is alive and the account is ready for real traffic.
{
"ok": true,
"request_id": "req_01H...",
"status": "queued",
"queued_at": "2026-03-14T12:30:00Z"
}
{
"ok": true,
"otp_id": "otp_01H...",
"status": "sent",
"expires_in_seconds": 300
}
{
"ok": true,
"request_id": "req_01H...",
"status": "delivered",
"device_name": "Relay Device 1",
"attempts": 1
}
Use the OpenAPI file and Postman collection to keep developers and operations aligned.
Important failures should return to your system through webhooks and a clear retry log.
Test health, readiness, and app pairing before the first production launch.
Send a transactional SMS through the queue with device routing and status tracking.
Send OTP with purpose, locale, and clear expiration.
Verify the code and return success/failed/expired clearly.
Read message status, attempts, and failure reasons by request_id.
Read the saved recipient directory and search by name or number.
Queue a full list where each number becomes an individual queue item.
unauthorizedAPI key or auth header is invalid.
invalid_deviceThe device is unavailable or invalid for routing.
rate_limitedSending limits or safety thresholds were exceeded.
queue_blockedSending is temporarily blocked by queue state or policies.
subscription_expiredThe subscription expired and needs renewal.
It fits login systems, stores, bookings, invoices, and operational alerts that need OTP or event-driven messaging, not mass marketing campaigns.
Yes. Ready-to-copy examples include cURL, PHP, Laravel, Node, Axios, Python, Flutter, Kotlin, Java, C#, Go, and Ruby.
Yes. You can rely only on Send OTP and Verify OTP if your project needs verification without other messaging flows.
The device should preferably stay online with permissions and foreground service enabled so sending and status heartbeat continue normally.
Start by creating the account, pairing the Android Relay, taking an access token, then running your first request from the ready examples before moving to webhooks and production.