API Overview

Call Forwarding REST API - base URL, authentication with a Bearer API key, response and error format, and the list of endpoints for rules, hold audio, call logs, recordings, stats and analytics.

2 min read

The Call Forwarding API lets you do from code everything the forwarding.edesy.in portal does: create and change forwarding rules, upload hold audio, turn forwarding off, list forwarded calls, fetch recordings and read usage stats. It is a JSON REST API at https://voice-api.edesy.in/v1, authenticated with a Bearer API key from your workspace.

Base URL and authentication#

https://voice-api.edesy.in/v1

Create an API key under API Keys in the portal. The key is shown once, so copy it somewhere safe. Send it on every request:

Authorization: Bearer sk_your_api_key

A key belongs to the workspace it was created in and can only set up forwarding on that workspace's numbers.

Response format#

Successful responses wrap the result in data, with meta:

{ "data": { "id": "3f2b8c1e-7d4a-4e59-9b21-6a0c5d8e1f47", "status": "active" }, "meta": { "timestamp": "2026-10-16T09:30:00Z" } }

Errors return an HTTP status and an error object:

{ "error": { "code": "not_found", "message": "Forwarding rule not found" } }

Endpoints#

Method Path What it does
POST /forwarding/rules Turn on forwarding for a number
GET /forwarding/rules List your rules
GET /forwarding/rules/:id Get one rule
PATCH /forwarding/rules/:id Change a rule
POST /forwarding/rules/:id/disable Turn off forwarding
DELETE /forwarding/rules/:id Delete a rule
POST /forwarding/rules/:id/hold-audio Upload hold audio
DELETE /forwarding/rules/:id/hold-audio Remove hold audio
GET /forwarding/call-logs List forwarded calls
GET /forwarding/calls/:call_sid/recording Get a recording link
GET /forwarding/stats Usage totals
GET /forwarding/analytics Daily and per-number breakdown

To find the numbers in your workspace, use GET/v1/phone-numbers.

Common errors#

Status Code Meaning
400 validation_error A field is missing or out of range. The message names the field
400 targets_required No number to forward to
401 UNAUTHORIZED API key missing, mistyped or revoked
404 number_not_found The number is not in the workspace your key belongs to
404 not_found No rule with this id in your workspace
409 rule_exists Another account still has forwarding on this number. Contact support
413 file_too_large Hold audio over 8 MB
502 inbound_activation_failed The rule was saved but not switched on yet. Send the same request again
502 inbound_repoint_failed Forwarding is off, but handing the number back did not finish. Retry
Was this page helpful?