# Create a call token

`POST /call/tokens`

Step one of a preview call: mint a single-use call token for one of your agents from your server, then open Realtime's WebSocket with it.

## Auth

Authentication required.

## Parameters

No parameters.

## Request body

Required: yes
Content-Type: application/json
Shape: CallTokenRequest

| Name | Type | Required | Description |
|---|---|---|---|
| agent_id | string | yes | At least 1 characters. |
| channel | enum(sip \| web) | no | Default "web". |

## Responses

| Status | Description | Content-Type | Shape |
|---|---|---|---|
| 200 | Successful Response | application/json | CallTokenResponse |
| 422 | Validation Error | application/json | HTTPValidationError |

## Machine-readable

This page is also available as Markdown at `/docs/post-call-tokens.md` (the ".md" suffix convention). The full curated API contract is at `/api/openapi.json`, and a machine-readable index of every page is at `/llms.txt`.
