Skip to content
v2 API now live

Ship OTP delivery in one integration.

Production-grade OTP delivery for teams building in India. Prepaid, auditable, and documented well enough that you will not need to email us.

Uptime
99.9%
p95 latency
<100ms
Daily requests
1M+
Developers
5k+
POST/api/v1/otp/send
{  "number": "9876543210",  "template": "login"}// 200 OK - 84ms{  "success": true,  "request_id": "req_8Kd2mQ",  "status": "delivered"}

From signup to first response in three steps.

  1. Create your key

    Sign up and generate a scoped API key from the dashboard.

    // Store this server-side.// Never ship a key to the browser.API_KEY="ak_live_****************"
  2. Call the endpoint

    Send a JSON body with your key in the x-api-key header.

    POST/api/v1/otp/send
    {  "number": "9876543210",  "template": "login"}
  3. Handle the response

    Every response carries a request_id you can trace in your usage log.

    {  "success": true,  "request_id": "req_8Kd2mQ",  "status": "delivered"}

Built for people who read the docs first.

  • Keys in under a minute

    Register, generate a key, and make your first authenticated call without talking to sales.

  • Scoped, revocable keys

    Every key is scoped to a service and can be rotated or revoked instantly from the dashboard.

  • Usage you can audit

    Every request is logged with latency, status, and cost so billing is never a surprise.

  • Prepaid, no lock-in

    Top up a wallet and draw down per request. No seats, no minimums, no annual contract.

Questions we actually get asked.

How quickly can I start sending requests?

Register an account, generate a key from the dashboard, and your first authenticated request will work immediately. There is no manual approval step.

How is pricing calculated?

Every service is prepaid per request against your wallet balance. You top up the wallet, and each successful call draws down from it. There are no seat fees or monthly minimums.

What happens if an SMS provider goes down?

OTP delivery automatically fails over to a secondary provider. You receive a single consistent response shape regardless of which provider handled the message.

Can I use this from PHP, Node.js, or Python?

Yes. Every endpoint is plain HTTP with JSON request and response bodies, so any language with an HTTP client works. The documentation includes copyable examples.

Are my API keys recoverable if I lose them?

No — keys are shown once at creation and stored hashed. If you lose a key, revoke it from the dashboard and generate a replacement.

Generate a key and make your first call.

No sales call, no contract. Top up when you are ready to go to production.