SMS API integration

SMS verification API for your server. The approved DLT sender and template are fixed for every account.

API key

Manage named keys & usage

Loading

The key is not stored in this browser. POST with a header is recommended. Query-string keys can appear in logs and browser history.

Approved SMS setup

Only one recipient and a six-digit OTP per request. Changing the header or template is blocked.

Build request

Variables: API+|123456

One send costs Rs.0.50 promotional balance or one purchased SMS credit. Reusing a request ID does not send or charge twice.

Request example

Loading

GET URL includes a placeholder key for compatibility. For real use, pass your key in an X-API-Key header. Do not open a completed GET URL casually: each new request ID can send and charge an SMS.

Responses & errors

{
  "status": "ACCEPTED",
  "idempotencyKey": "sms-your-unique-request",
  "providerRequestId": "provider-reference",
  "message": "Provider accepted the SMS. Delivery may take time."
}
202 · Accepted

Queued by the provider. Check delivery using the status endpoint.

400 · Invalid request

Check the mobile, six-digit OTP, approved template and request ID.

401 · Key unavailable

Use an active key in the X-API-Key header. Revoked keys are rejected.

402 · Insufficient balance

Add SMS credits before sending again.

409 · Request conflict

Check the existing request status. Use a new ID only for a new SMS.

429 · Rate limit

Allow requests to slow down. Limit: 20 sends per account per minute.

502 · Provider rejected

The reservation was returned to its original credit source.

503 · Temporarily unavailable

Try later with the same request ID to avoid duplicates.

{"error": "SMS wallet balance is insufficient"}

Delivery status

GET https://apiplus.in/api/v1/sms/status/YOUR_REQUEST_ID
X-API-Key: YOUR_API_KEY

{"status":"ACCEPTED","deliveryStatus":"DELIVERED","deliveryDescription":"Delivered","providerRequestId":"provider-reference"}