The Edesy number masking REST API: create two-way sessions, place masked click-to-calls, pause or end sessions, enroll numbers, set routing, and read call logs, recordings, usage and wallet balance. Bearer API keys, JSON over HTTPS.
Number masking at a glance
From API key to first masked call
Sign up at masking.edesy.in, complete KYC and create an API key (prefix vp_).
POST /v1/masking/sessions with party_a and party_b. You get a virtual number back; either party can call it.
Whoever dials the virtual number is bridged to the other party. Both see only the virtual number.
GET /v1/masking/call-logs, a single call, its recording, usage stats and wallet balance.
Every call uses Authorization: Bearer with your vp_ API key.
# Base URL: https://voice-api.edesy.in/v1 Auth: Authorization: Bearer vp_...
# Two-way session: either party dials the virtual number
curl -X POST https://voice-api.edesy.in/v1/masking/sessions \
-H "Authorization: Bearer $EDESY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"party_a":"9876543210","party_b":"9123456789","reference":"ORD-4821","expiry_minutes":60}'
# Click-to-call: ring Party A, then bridge Party B on a masked caller ID
curl -X POST https://voice-api.edesy.in/v1/masking/calls \
-H "Authorization: Bearer $EDESY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"party_a":"9876543210","party_b":"9123456789"}'
# Pause, extend or end a session
curl -X PATCH https://voice-api.edesy.in/v1/masking/sessions/SESSION_ID \
-H "Authorization: Bearer $EDESY_API_KEY" -H "Content-Type: application/json" \
-d '{"status":"paused"}'
curl -X DELETE https://voice-api.edesy.in/v1/masking/sessions/SESSION_ID \
-H "Authorization: Bearer $EDESY_API_KEY"
# Call logs, one call, its recording, usage and wallet balance
curl "https://voice-api.edesy.in/v1/masking/call-logs?page=1&per_page=20" -H "Authorization: Bearer $EDESY_API_KEY"
curl https://voice-api.edesy.in/v1/masking/calls/CALL_SID -H "Authorization: Bearer $EDESY_API_KEY"
curl https://voice-api.edesy.in/v1/masking/calls/CALL_SID/recording -H "Authorization: Bearer $EDESY_API_KEY"
curl https://voice-api.edesy.in/v1/masking/stats -H "Authorization: Bearer $EDESY_API_KEY"
curl https://voice-api.edesy.in/v1/masking/billing -H "Authorization: Bearer $EDESY_API_KEY"Two-way sessions with reference, expiry_minutes (up to 30 days), max_calls and metadata. Create is idempotent on reference.
POST /v1/masking/calls rings Party A, then bridges Party B on a masked caller ID, with an optional max_duration_sec.
Per number: internal sessions, your routing webhook (masking.route), or extension codes.
Paginated call logs with status and date filters, call status by call_sid, recordings via the API.
Rs 1.50/min in 60-second pulses, 1-minute minimum, plus number rental (Rs 499/month mobile, Rs 449/month landline). Prices exclude 18% GST. New accounts get a Rs 20 welcome credit; no card needed to sign up.
Get started on the self-serve portal. Rs 1.50 per minute plus number rental. New accounts get a Rs 20 welcome credit; no card needed to sign up.