Developers

Clearer developer docs from day one

Clean Base URL, auth header, ready examples, webhooks, error codes, and a Postman collection inside an organized developer experience.

cURL PHP Laravel WordPress Node Axios Python Flutter Kotlin Java C# Go Ruby

      
cURL • PHP • Laravel • Node • Axios • Python • Flutter • Kotlin • Java • C# • Go • Ruby
1Copy Base URL and Access Token

Start quickly from the same page without hunting through different areas of the platform.

2Test OTP or transactional SMS

Choose the right scenario and run the first request through cURL or the ready snippets.

3Attach your webhook

Receive sent, delivered, and failed callbacks in your system with retries and a visible attempt log.

4Track execution from the dashboard

Watch devices, queue health, and message state without leaving the same experience.

Quick Start

Start integration through three clear tracks

  • Create an access token from the client panel.
  • Pair the Android Relay and confirm it appears online.
  • Send the first Send OTP or Send SMS call, then track status and webhooks.
Request basics
  • Base URL https://sms.yebrax.com/api
  • Auth Header Bearer YOUR_ACCESS_TOKEN
  • Content-Type application/json
  • Relay Mode auto or manual depending on your setup
Health & launch endpoints

Lightweight checks before go-live

Use two quick endpoints during development or CI to confirm the service is alive and the account is ready for real traffic.

GET /v1/healthPublic health check without a token
GET /v1/launch/readinessReturns the account launch-readiness report and requires account.read
POST /v1/relay/app/pairPair the app through a pairing code or QR payload.
Sample responses
message.accepted
{
  "ok": true,
  "request_id": "req_01H...",
  "status": "queued",
  "queued_at": "2026-03-14T12:30:00Z"
}
otp.sent
{
  "ok": true,
  "otp_id": "otp_01H...",
  "status": "sent",
  "expires_in_seconds": 300
}
message.status
{
  "ok": true,
  "request_id": "req_01H...",
  "status": "delivered",
  "device_name": "Relay Device 1",
  "attempts": 1
}
Quick guides
OpenAPI

Use the OpenAPI file and Postman collection to keep developers and operations aligned.

Webhook Retry

Important failures should return to your system through webhooks and a clear retry log.

Go Live

Test health, readiness, and app pairing before the first production launch.

Endpoint reference

Clear cards instead of scattered docs

API

POST /api/v1/sms/send

Send a transactional SMS through the queue with device routing and status tracking.

API

POST /v1/otp/send

Send OTP with purpose, locale, and clear expiration.

API

POST /v1/otp/verify

Verify the code and return success/failed/expired clearly.

API

GET /v1/messages/status

Read message status, attempts, and failure reasons by request_id.

API

GET /v1/recipients

Read the saved recipient directory and search by name or number.

API

POST /v1/recipient-lists/queue

Queue a full list where each number becomes an individual queue item.

Webhook events
  • message.sent Delivered successfully from Relay.
  • message.failed Delivery failed with a reason.
  • otp.verified OTP verification succeeded.
  • device.offline The device went offline.
Error codes

unauthorized

API key or auth header is invalid.

invalid_device

The device is unavailable or invalid for routing.

rate_limited

Sending limits or safety thresholds were exceeded.

queue_blocked

Sending is temporarily blocked by queue state or policies.

subscription_expired

The subscription expired and needs renewal.

What kinds of apps fit this integration best?+

It fits login systems, stores, bookings, invoices, and operational alerts that need OTP or event-driven messaging, not mass marketing campaigns.

Do you provide examples in multiple languages?+

Yes. Ready-to-copy examples include cURL, PHP, Laravel, Node, Axios, Python, Flutter, Kotlin, Java, C#, Go, and Ruby.

Can I use it only for OTP?+

Yes. You can rely only on Send OTP and Verify OTP if your project needs verification without other messaging flows.

Does the Android device need to stay online?+

The device should preferably stay online with permissions and foreground service enabled so sending and status heartbeat continue normally.

Where should I start in practice?+

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.

After the docs

Move to pricing, create the account, or ask for quick support

Once the integration picture is clear, the next step is account setup, pricing, or a direct message to the team for a faster rollout.

WhatsApp WhatsApp