React

Voice OTP for React

Trigger voice OTPs from a React app through your backend and the REST API. One HTTPS call, a webhook for the result, Rs 1.50 per answered call-minute.

REST API

No KYC to start

Native React SDK on request

Send a Voice OTP from React

Never put the API key in the app. The app calls your backend, and your backend calls Edesy (see the Node.js or Python example).

// In your React app: ask YOUR backend to send the OTP
async function requestVoiceOtp(phone) {
  const res = await fetch("/api/otp/voice", {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({ phone }),
  });
  if (!res.ok) throw new Error("Could not send OTP");
}

// Your backend route (/api/otp/voice) then calls
// POST https://voice-api.edesy.in/v1/voice-otp/send with the API key - see the Node.js example.

The result arrives on your webhook

Status is one of delivered, no-answer, busy or failed. dtmf_response is set when you enable press-1 confirmation.

POST https://your-app.com/webhooks/voice-otp
X-Edesy-Event: voice-otp.completed
Content-Type: application/json

{
  "id": "5b1c...-uuid",
  "external_id": "signup-123",
  "phone_number": "9876543210",
  "status": "delivered",
  "dtmf_response": "1",
  "duration_sec": 18,
  "price": "1.5000",
  "completed_at": "2026-09-26T10:15:30Z"
}

Other Platforms

Available Now vs Built On Request

Voice OTP is live today as a self-serve REST API for Indian mobile numbers. Everything in the second list we build for customers who need it - tell us your use case and volume.

Available now

  • Voice OTP call API

    POST a phone number; we call and read the code aloud. Send your own code or let us generate a 6-digit one.

  • Custom message template

    Put your brand name and wording in the call.

  • "Press 1 to confirm"

    Optional keypad confirmation - also used for COD order confirmation calls.

  • Delivery webhook

    We POST the call result (delivered, no-answer, busy, failed) to your callback URL.

  • Call logs and stats

    Every OTP call with status and duration in the dashboard and via API.

  • Abuse protection

    Per-number rate limit (5 calls per hour by default).

  • Self-serve, no KYC

    Sign up, create an API key, top up a prepaid wallet with UPI or card.

  • English voice

    Clear Indian-English voice out of the box.

Pricing

Rs 1.50 per call-minute, billed per started minute. A typical OTP call is under a minute, so most OTPs cost Rs 1.50. Unanswered calls are not charged. New accounts get Rs 20 of free credit. Volume pricing on request.

Built on request

  • Hindi and regional-language voice

    Hindi, Tamil, Telugu, Bengali, Marathi and more.

  • SMS OTP with voice fallback

    Send by SMS first, call if it is not verified in time.

  • WhatsApp OTP

    Authentication templates on WhatsApp.

  • Verify API

    We store and check the code so your backend does not have to.

  • Automatic retries

    Redial unanswered calls after a delay you choose.

  • Flash call / missed call verification

    Verify a number without the user typing a code.

  • SDKs

    Node.js, Python, PHP, Java, Android, iOS or Flutter client libraries.

  • Dedicated caller ID

    Call from a number reserved for your brand.

  • Volume pricing

    Per-OTP pricing for committed monthly volumes.

Need something from the on-request list?

Tick what you need. We prioritise what customers ask for and reply with a timeline and price.

Capabilities you need

FAQ

Ready to Integrate?

Sign up, get Rs 20 of free credit (about 13 test calls) and send your first voice OTP in minutes.