# Quick Start

> Send your first voice OTP with a single curl request and check the result.

Source: https://edesy.in/docs/voice-otp/getting-started/quick-start

## 1. Send a voice OTP

```bash
curl -X POST https://voice-api.edesy.in/v1/voice-otp/send \
  -H "Authorization: Bearer sk_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "phone_number": "9876543210",
    "otp_code": "482913",
    "callback_url": "https://your-app.com/webhooks/voice-otp"
  }'
```

Leave out `otp_code` and we generate a 6-digit code for you. The response returns it:

```json
{
  "data": {
    "id": "5b1c2d3e-0000-4000-8000-000000000000",
    "call_sid": "a1b2c3",
    "phone_number": "9876543210",
    "otp_code": "482913",
    "status": "initiated",
    "created_at": "2026-09-26T10:15:12Z"
  },
  "meta": { "timestamp": "2026-09-26T10:15:12Z" }
}
```

## 2. Check the code in your app

The user hears "Your verification code is 4 8 2 9 1 3. I repeat, 4 8 2 9 1 3." and types it into your app. Your backend compares it with the code you sent. There is no verify endpoint yet (available on request), so store the code (or a hash of it) with an expiry, typically 5-10 minutes.

## 3. Get the result

When the call ends we POST the outcome to your `callback_url` - see [Webhooks](https://edesy.in/docs/voice-otp/api-reference/webhooks). You can also poll [Get a Call](https://edesy.in/docs/voice-otp/api-reference/get-call).

## Code in other languages

Node.js, Python, PHP, Java, React, Flutter, Android and iOS examples are on the [integration pages](https://edesy.in/voice-otp/sdk/nodejs).
