> ## Documentation Index
> Fetch the complete documentation index at: https://docs.60db.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Reserve Call

> Reserve and authorize a call before SIP client sends INVITE

<Warning>
  **This endpoint does not dial.** It reserves a call in the system before your SIP client sends the actual INVITE. The SIP client (registered with your workspace credentials from the dashboard) places the call.
</Warning>

Reserve a call to authorize billing and tracking. Requires Gate T (trunk setup). Outbound calls with zero wallet balance return **402 RECHARGE\_REQUIRED**.

## Request

### Headers

<ParamField header="Authorization" type="string" required>
  Bearer token with your API key
</ParamField>

### Body

<ParamField body="to" type="string" required>
  Destination number in E.164 format
</ParamField>

<ParamField body="from" type="string" required>
  Your rented caller ID in E.164 format
</ParamField>

<ParamField body="sip_call_id" type="string" required>
  Unique SIP call ID from your client (UUID format)
</ParamField>

<ParamField body="direction" type="string" default="outbound">
  `inbound` or `outbound`
</ParamField>

## Response

**201 Created:**

```json theme={null}
{
  "success": true,
  "data": {
    "call": {
      "id": "call-uuid",
      "from": "+919876543210",
      "to": "+919999999999",
      "sip_call_id": "...",
      "status": "reserved",
      "created_at": "2026-09-24T10:30:00Z"
    }
  }
}
```

## Errors

| Status | Code                       | Meaning                                          |
| ------ | -------------------------- | ------------------------------------------------ |
| 400    | `INVALID_SIP_CALL_ID`      | SIP call ID format invalid                       |
| 402    | `RECHARGE_REQUIRED`        | Outbound: wallet balance ≤ 0                     |
| 403    | `CALLER_ID_NOT_OWNED`      | The `from` number isn't rented by your workspace |
| 409    | `CALLER_ID_NOT_AUTHORIZED` | The caller ID isn't authorized for calls         |
| 503    | `CARRIER_LINE_DOWN`        | Carrier unavailable (outbound)                   |

## Example

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST https://api.60db.ai/dialer/calls \
    -H "Authorization: Bearer your-api-key" \
    -H "Content-Type: application/json" \
    -d '{
      "to": "+919999999999",
      "from": "+919876543210",
      "sip_call_id": "550e8400-e29b-41d4-a716-446655440000"
    }'
  ```

  ```javascript JavaScript theme={null}
  const call = await client.dialer.calls.reserve({
    to: '+919999999999',
    from: '+919876543210',
    sipCallId: 'call-uuid'
  });
  ```

  ```python Python theme={null}
  call = client.dialer.calls.reserve(
      to='+919999999999',
      from_number='+919876543210',
      sip_call_id='call-uuid'
  )
  ```
</RequestExample>
