Developers

Build with the AI Voice Agent API

Create agents, attach tools, place calls and read transcripts from your own backend. Get told when a call ends through signed webhooks, or connect without code through Zapier and n8n.

The short answer

Edesy AI Voice Agent has a public REST API under /api/v1 with a machine-readable OpenAPI spec. Server keys (vp_live_ or vp_test_) carry per-resource scopes and a default limit of 120 requests a minute. You can manage agents, functions, knowledge bases and phone numbers, place and read calls, read campaigns, trigger workflows and subscribe to signed webhooks.

API facts

What you need before your first request

ItemValue
Base URLhttps://voice-agent.edesy.in/api/v1
OpenAPI specGET https://voice-agent.edesy.in/api/v1/openapi.json (no auth needed)
AuthenticationAuthorization: Bearer <key> or X-API-Key: <key>
Key typesvp_live_ (production), vp_test_ (non-production). Server-side only; never ship a key to a browser
Scopesagents, functions, calls, phone_numbers, knowledge_base, workflows; each :read or :write. Write does not imply read
Rate limit120 requests per minute per key by default, with X-RateLimit-* headers and Retry-After on 429
RotationNew key issued first; the old key keeps working for a 24-hour grace period. Revocation is immediate
TenancyEach key is bound to one workspace. Another workspace's IDs return 404
Errors{ success: false, error, code }. Branch on code, which is stable
Paginationlimit (default 50, max 100) and offset; responses include total

API resources

Everything the dashboard does for agent setup and calling

Agents

GET, POST /agents and GET, PATCH, DELETE /agents/{id}. Set the prompt, greeting, language, LLM, voice, telephony, transfer and variables. A PATCH is live on the next call.

Functions (tools)

GET, POST /functions and GET, PATCH, DELETE /functions/{id}. HTTP tools the agent calls mid-conversation, with {{placeholders}} and response mapping.

Calls

POST /calls places an outbound call. GET /calls lists them, GET /calls/{id} returns the summary, disposition, extraction and recording, and GET /calls/{id}/transcript returns the turns.

Campaigns (read)

GET /campaigns, GET /campaigns/{id} and GET /campaigns/{id}/calls to track campaign progress and results from your system.

Knowledge bases

GET, POST /knowledge-base and GET, PATCH, DELETE /knowledge-base/{id} to manage the knowledge bases your agents search.

Phone numbers

GET, POST /phone-numbers and GET, PATCH, DELETE /phone-numbers/{id}. Import numbers you already own (BYOP) and assign them to agents.

Workflow trigger

POST /workflows/{id}/trigger starts a workflow from your system, for example when a lead is created in your CRM.

Browser voice sessions

POST /interview-session creates a browser WebRTC session and sends the agent into it, for voice calls inside your own web app.

Place a call

POST /api/v1/calls needs agentId and phoneNumber. variables fill the agent's {{variables}}, metadata is echoed back on the call record, and callbackUrl is notified once when the call ends. The response returns as soon as the call is dispatched.

curl -X POST https://voice-agent.edesy.in/api/v1/calls \
  -H "Authorization: Bearer $EDESY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "agentId": 1042,
    "phoneNumber": "+9198XXXXXXXX",
    "variables": { "customer_name": "Test Customer", "order_id": "ORD-1001" },
    "metadata": { "crm_lead_id": "L-001" },
    "callbackUrl": "https://example.com/hooks/call-ended"
  }'

# Response
{ "success": true, "data": { "conversationId": "c3f1...", "callSid": "CA9f...", "status": "initiated" } }

# Later: read the outcome
curl https://voice-agent.edesy.in/api/v1/calls/c3f1... \
  -H "Authorization: Bearer $EDESY_API_KEY"

Webhook subscription events

Signed, retried deliveries you set up under Settings, Webhooks

call.ended

The call has ended, with the transcript and call metadata.

call.analyzed

Sent once when all post-call analysis is complete: summary, extraction and transcript. The best single event for most integrations.

call.failed

The call did not connect: busy, no answer or rejected.

call.extracted

Post-call data extraction has finished, with the fields you defined on the agent.

call.recording_ready

The recording has been uploaded. recording_url is a signed link tied to that call.

Signing and retries

Each delivery is signed with HMAC-SHA256 over "{timestamp}.{raw body}" using your whsec_ secret. Up to 5 attempts with backoff; HTTP 410 disables the subscription. Test, resend and rotate the secret from the dashboard.

Verify a webhook signature

The signature header has the form t=<timestamp>,v1=<hex>. Recompute the HMAC over the timestamp, a dot and the raw request body, and compare in constant time. Check the header name and payload shape in the webhook docs.

// Node.js
const crypto = require('crypto');

function verify(rawBody, header, secret) {
  const parts = Object.fromEntries(header.split(',').map(p => p.split('=')));
  const expected = crypto
    .createHmac('sha256', secret)
    .update(`${parts.t}.${rawBody}`)
    .digest('hex');
  return crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(parts.v1));
}

No-code connectors and SDKs

Connect without writing a backend, or use a typed client

Zapier app

Triggers: call finished, call not connected, recording ready, data extracted and form submission. Action: start call. Search: find call.

n8n node

A community node for n8n with five ready-made workflow templates, so you can start calls and react to call results inside n8n.

SDKs

Python, Go, Node and React SDKs are available. Ask us for access. You can also generate a typed client from the OpenAPI spec.

HTTP functions and credential vault

Let the agent call your APIs during a call. Store API keys as credentials and reference them by name. Function templates cover Shopify, Stripe, Zendesk, HubSpot, Twilio SMS and SendGrid.

Your first API call in four steps

  1. Step 1 of 4: Create a key

    In the dashboard, open Settings, API Keys and create a key with the scopes you need. It is shown once, so store it in your secrets manager.

  2. Step 2 of 4: Create or pick an agent

    POST /api/v1/agents, or build the agent in the dashboard from a template and note its ID.

  3. Step 3 of 4: Place a call

    POST /api/v1/calls with agentId and phoneNumber. Send E.164 numbers for international destinations.

  4. Step 4 of 4: Read the result

    Subscribe to call.analyzed, or poll GET /api/v1/calls/{id}. Summary, disposition and extraction are null until post-call analysis finishes.

Developer FAQ

Common integration questions

Simple, Transparent Pricing

From ₹4/min on plans and credit packs, ₹6/min pay as you go. Bring your own AI keys for a platform fee from ₹1/min. New accounts get ₹50 free credit. Prices exclude 18% GST.

Pay As You Go
₹6/ minute + telephony
Start immediately, pay per minute
  • No monthly commitment
  • Standard AI providers included
  • Twilio, Exotel, Plivo, Vobiz or SIP trunk
  • Call analytics dashboard
  • 75+ languages, 14 Indian
  • ₹50 free credit on sign-up
Get Started
Most Popular
Pro
₹1,499/ month
For growing businesses
  • ₹5/min platform rate
  • 300 minutes included
  • Unlimited agents
  • API access
  • Webhook integrations
  • Up to 5 phone numbers
Get Started
Max
₹4,999/ month
For high-volume operations
  • ₹4.50/min platform rate
  • 1,100 minutes included
  • Everything in Pro
  • 20% off premium add-ons
  • Up to 15 phone numbers
Ultra
₹14,999/ month
Maximum value for enterprises
  • ₹4/min platform rate, the lowest
  • 3,500 minutes included
  • Everything in Max
  • 30% off premium add-ons
  • Up to 50 phone numbers
  • SLA available
Bring Your Own Keys
₹1/ minute + your AI & telephonyplatform fee, all your own keys
Use your own STT, LLM & TTS keys
  • ₹1/min with all your own keys, ₹1.20 with some
  • Bring your own OpenAI, Gemini, Deepgram, ElevenLabs, Sarvam or Cartesia keys
  • Pay AI providers directly at your own rates
  • Up to 10 Google AI Studio keys in a pool
  • Best for high volume
See BYOK Pricing

Tell us about your calls

Share your use case and volume. We reply within one working day with a setup plan and pricing.

Start building with the AI Voice Agent API

Create a key, place your first call and subscribe to call.analyzed. ₹50 free credit on sign-up, no card needed.

Hear AI Voice Assistant in Action

Real demo calls showcasing low latency and natural conversations in multiple Indian languages

Hindi + English
Lead Qualification

B2B Lead Qualification - Flipkart Gift

AI voice agent qualifying B2B leads for corporate gifting. Ultra-low latency with 1-2 second response time. Bilingual conversation in Hindi and English.

1-2 second response latencyBilingual Hindi + English

Audio player powered by Google Drive

Open in Drive
Malayalam
Education

Institute Admission - Malayalam

AI voice agent handling admission inquiries and appointment booking for educational institutes in Malayalam language.

Malayalam language supportEducation sector use case

Audio player powered by Google Drive

Open in Drive
Tamil
Education

Institute Admission - Tamil

AI voice agent handling admission inquiries and appointment booking for educational institutes in Tamil language.

Tamil language supportEducation sector use case

Audio player powered by Google Drive

Open in Drive
Assamese
Lead Qualification

Solar Company Lead Qualification - Assamese

AI voice agent qualifying leads for solar installation company in Assamese language. Natural conversation flow with product inquiry handling.

Assamese language supportSolar/renewable energy sector

Audio player powered by Google Drive

Open in Drive
Bengali
Appointment Booking

Hospital Appointment Booking - Bengali

AI voice bot helping patients book hospital appointments in Bengali. Natural conversation with availability checking and confirmation.

Bengali language supportHospital appointment booking

Audio player powered by Google Drive

Open in Drive
Hindi
Appointment Booking

Hospital Appointment Booking - Hindi

AI voice bot helping patients book hospital appointments in Hindi. Handles doctor selection, time slot booking, and confirmation.

Hindi language supportHospital appointment booking

Audio player powered by Google Drive

Open in Drive
Telugu
Appointment Booking

Hospital Appointment Booking - Telugu

AI voice bot helping patients book hospital appointments in Telugu. Natural conversation flow for healthcare scheduling.

Telugu language supportHospital appointment booking

Audio player powered by Google Drive

Open in Drive

Simple, Transparent Pricing

From ₹4/min on plans and credit packs, ₹6/min pay as you go. ₹50 free credit on sign-up.

Pay As You Go
₹6/ minute + telephony
Start immediately, pay per minute
  • No monthly commitment
  • Standard AI providers included
  • Twilio, Exotel, Plivo, Vobiz or SIP trunk
  • Call analytics dashboard
  • 75+ languages, 14 Indian
  • ₹50 free credit on sign-up
Get Started
Most Popular
Pro
₹1,499/ month
For growing businesses
  • ₹5/min platform rate
  • 300 minutes included
  • Unlimited agents
  • API access
  • Webhook integrations
  • Up to 5 phone numbers
Get Started
Max
₹4,999/ month
For high-volume operations
  • ₹4.50/min platform rate
  • 1,100 minutes included
  • Everything in Pro
  • 20% off premium add-ons
  • Up to 15 phone numbers
Ultra
₹14,999/ month
Maximum value for enterprises
  • ₹4/min platform rate, the lowest
  • 3,500 minutes included
  • Everything in Max
  • 30% off premium add-ons
  • Up to 50 phone numbers
  • SLA available