API reference / Account
Account
The Account endpoints of the Voiceland AI API, with parameters, schemas and curl examples.
Last updated:
POST /v1/sessions/local#
Mint a local session. Mints a short-lived session token + broker WebSocket URLs for driving an agent locally (used by the SDK's local mode).
Request body
application/json Schema: SessionLocalRequest
| Field | Type | Required | Description |
|---|---|---|---|
agent |
string | Yes | Agent to open a local session for. |
scopes |
array of string |
Responses
| Code | Description |
|---|---|
200 |
Success. |
401 |
Missing or invalid API key. |
4XX |
Request error (validation, not-found, etc.). |
5XX |
Server or upstream error. |
Example request
curl -X POST "https://api.voiceland.ai/v1/sessions/local" \
-H "Authorization: Bearer VL_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"agent": "front-desk"
}'
A successful response returns a SessionLocalResponse.
Example response
{
"api_version": "2026-04-26",
"token": "…"
}
GET /v1/tenant#
Get your tenant profile. Your tenant slug, default API version, inbound SIP trunk, and (when configured) the outbound trunk state.
Responses
| Code | Description |
|---|---|
200 |
Success. |
401 |
Missing or invalid API key. |
4XX |
Request error (validation, not-found, etc.). |
5XX |
Server or upstream error. |
Example request
curl "https://api.voiceland.ai/v1/tenant" \
-H "Authorization: Bearer VL_API_KEY"
A successful response returns a Response.
Example response
{
"default_api_version": "2026-04-26",
"slug": "acme"
}
GET /v1/voices#
List voices. The catalog of available voices you can set on an agent (use voice_id in voice.voice_id). Each voice carries its languages, gender (male, female or neutral), age band and a short description. The list is ordered the way the console shows it: Greek voices first, male and then female, followed by every other voice by language. The order is presentation only: an agent created without a voice gets its language's default voice, whatever its position.
Responses
| Code | Description |
|---|---|
200 |
Success. |
401 |
Missing or invalid API key. |
4XX |
Request error (validation, not-found, etc.). |
5XX |
Server or upstream error. |
Example request
curl "https://api.voiceland.ai/v1/voices" \
-H "Authorization: Bearer VL_API_KEY"
Example response
{
"items": [
{
"age_band": "middle",
"description": "Native Greek male, narrational, assertive and warm, broadcast grade. Default for Greek agents.",
"display_name": "Theos",
"gender": "male",
"languages": [
"el"
],
"model": "eleven_turbo_v2_5",
"provider": "elevenlabs",
"voice_id": "n0vzWypeCK1NlWPVwhOc"
},
{
"age_band": "young",
"description": "Young native Greek female, soft, calm and narrational.",
"display_name": "Eleni",
"gender": "female",
"languages": [
"el"
],
"model": "eleven_turbo_v2_5",
"provider": "elevenlabs",
"voice_id": "aTP4J5SJLQl74WTSRXKW"
},
{
"age_band": "middle",
"description": "Bright, firm American tenor that cuts through. Good first pick for English assistants.",
"display_name": "Adam",
"gender": "male",
"languages": [
"en"
],
"model": "eleven_multilingual_v2",
"provider": "elevenlabs",
"voice_id": "pNInz6obpgDQGcFmaJgB"
}
]
}
Schemas#
Error#
Error envelope returned for non-2xx responses.
| Field | Type | Required | Description |
|---|---|---|---|
error |
object | Yes |
OutboundView#
| Field | Type | Required | Description |
|---|---|---|---|
host |
string | ||
port |
integer | ||
ready |
boolean | Yes | |
transport |
string |
Response#
| Field | Type | Required | Description |
|---|---|---|---|
default_api_version |
string | Yes | |
outbound |
OutboundView |
||
sip_trunk |
string | Yes | Your inbound SIP trunk URI. |
slug |
string | Yes | Your tenant slug. |
SessionLocalRequest#
| Field | Type | Required | Description |
|---|---|---|---|
agent |
string | Yes | Agent to open a local session for. |
scopes |
array of string |
SessionLocalResponse#
| Field | Type | Required | Description |
|---|---|---|---|
api_version |
string | Yes | |
broker_ws_urls |
map of string | Yes | |
expires_at |
string | Yes | |
token |
string | Yes |