Quick Start

Provision an Indian DID, register it for outbound over VoiceLink, connect your voice agent, and place a test call — end to end with real curl examples.

Quick Start

This walkthrough takes you from zero to a placed outbound call on an Indian number. Replace vp_YOUR_API_KEY with your own key throughout.

1. Get your API key

Sign in to the portal at voice-app.edesy.in to create your tenant and generate an API key. Authenticate every request with a tenant API key (starts with vp_) or a session JWT. See Authentication.

Authorization: Bearer vp_YOUR_API_KEY

2. Provision an Indian number

Buying a number gives your tenant ownership — a DB row plus the upstream VoiceLink reseller order. It does not by itself wire the number into the telephony layer; that happens explicitly in step 3.

curl -X POST https://voice-api.edesy.in/v1/dids/purchase-live \
  -H "Authorization: Bearer vp_YOUR_API_KEY" \
  -H "Content-Type: application/json"

Then list your numbers to get the phone number ID (phone_number_id) — you use it as :id in the wiring calls:

curl -H "Authorization: Bearer vp_YOUR_API_KEY" \
  https://voice-api.edesy.in/v1/phone-numbers

3. Register the number for outbound

Registering the number on the VoiceLink carrier creates the number's routing entry on the Edesy Voice Platform. This enables outbound caller-ID and is the prerequisite for inbound. The call is idempotent.

curl -X POST https://voice-api.edesy.in/v1/phone-numbers/$ID/carrier \
  -H "Authorization: Bearer vp_YOUR_API_KEY"

The response reports the live telephony state, including outbound_capable: true. See Phone Numbers for the full payload and for binding inbound to your agent.

4. Connect your platform

Point your voice agent at Edesy using whichever model fits your stack:

5. Make a test outbound call

Once the number is carrier-registered, originate a call with it as the caller-ID over VoiceLink:

curl -X POST https://voice-api.edesy.in/v1/calls \
  -H "Authorization: Bearer vp_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "from": "917969002802",
    "to": "919812345678",
    "trunk": "VoiceLink"
  }'

The from number must be registered (step 3), otherwise the platform rejects the caller-ID. Setting trunk to VoiceLink routes the call over the VoiceLink carrier rather than a default-carrier lookup.

Running a custom WebSocket agent instead? Use the streaming Calls API at https://voice-api.edesy.in/v1/Accounts/{ACCOUNT_SID}/Calls — see Calls.

Next