# API Reference Overview

> Overview of the Edesy SIP-trunk and telephony REST API — base URL, authentication, and the full endpoint table for numbers, calls, and BYOC trunks.

Source: https://edesy.in/docs/sip-trunk-for-ai-voice-agents/api-reference

Programmatic access to Indian DID provisioning, number wiring, outbound calls, and bring-your-own-carrier trunks on the Edesy Voice Platform.

```
Base URL: https://voice-api.edesy.in/v1
```

All requests are made over HTTPS and authenticated with a Bearer token — see [Authentication](https://edesy.in/docs/sip-trunk-for-ai-voice-agents/getting-started/authentication). Successful responses wrap the payload in a `data` object; errors wrap it in an `error` object (see [Error Codes](https://edesy.in/docs/sip-trunk-for-ai-voice-agents/api-reference/errors)).

## Phone numbers — provision and wire

DID ownership and on-demand wiring for inbound and outbound over the VoiceLink carrier. Full reference: [Phone Numbers](https://edesy.in/docs/sip-trunk-for-ai-voice-agents/api-reference/phone-numbers).

| Method | Path | Description |
|--------|------|-------------|
| `POST` | `/dids/purchase-live` | Purchase an Indian DID (ownership only) |
| `GET` | `/phone-numbers` | List your numbers (returns each `phone_number_id`) |
| `GET` | `/phone-numbers/:id/telephony` | Inspect a number's live wiring state |
| `POST` | `/phone-numbers/:id/carrier` | Register on VoiceLink — enables outbound |
| `DELETE` | `/phone-numbers/:id/carrier` | Deregister the number |
| `PUT` | `/phone-numbers/:id/inbound` | Bind inbound to a voice agent or webhook |
| `DELETE` | `/phone-numbers/:id/inbound` | Unbind inbound (outbound stays intact) |

## Calls — outbound and streaming

Create outbound calls for a custom WebSocket agent, check status, and hang up. Full reference: [Calls](https://edesy.in/docs/sip-trunk-for-ai-voice-agents/api-reference/calls).

| Method | Path | Description |
|--------|------|-------------|
| `POST` | `/calls` | Originate a call over VoiceLink (caller-ID = your registered number) |
| `POST` | `/Accounts/{sid}/Calls` | Create an outbound call for a WebSocket streaming agent |
| `GET` | `/Accounts/{sid}/Calls/{callSid}` | Get call status |
| `DELETE` | `/Accounts/{sid}/Calls/{callSid}` | Hang up an active call |

## BYOC — bring your own carrier

Register your own SIP trunk, its gateways, and numbers. Full reference: [BYOC](https://edesy.in/docs/sip-trunk-for-ai-voice-agents/connect/byoc).

| Method | Path | Description |
|--------|------|-------------|
| `POST` `GET` | `/trunk-portal/carriers` | Create / list carriers |
| `GET` `PATCH` `DELETE` | `/trunk-portal/carriers/:carrier_sid` | Get / update / delete a carrier |
| `POST` `GET` | `/trunk-portal/carriers/:carrier_sid/gateways` | Create / list gateways |
| `DELETE` | `/trunk-portal/carriers/:carrier_sid/gateways/:gateway_sid` | Delete a gateway |
| `POST` `GET` | `/trunk-portal/numbers` | Register / list numbers |
| `PATCH` `DELETE` | `/trunk-portal/numbers/:number_sid` | Update / remove a number |
| `POST` `GET` | `/trunk-portal/applications` | Create / list applications |
| `GET` `PATCH` `DELETE` | `/trunk-portal/applications/:app_sid` | Get / update / delete an application |
| `GET` | `/trunk-portal/call-logs` | List call detail records |

## Conventions

- **Indian numbers** are shown with country code (e.g. `917969002802`) or E.164 (`+919876543210`) depending on the endpoint.
- **Timestamps** are RFC 3339 / ISO 8601 in UTC.
- **SIDs** are opaque UUID-style identifiers returned by create calls.
