API referencePhone

List the phone voices

Returns the phone voice catalog — the 22 Dairo Live voices you can pass as voice on POST /v1/phone/calls or inboundVoice on a number — as a { object: "list", kind: "phone", data } array.

Endpoint
GET https://api.dairo.app/v1/phone/voices

Returns the phone voice catalog — the 22 Dairo Live voices you can pass as voice on POST /v1/phone/calls or inboundVoice on a number — as a { object: "list", kind: "phone", data } array. Each row is { voiceId, name, description, language, gender, accent }: language is multilingual for the ten multilingual voices (marin — the default — cedar, alloy, ash, ballad, coral, echo, sage, shimmer, verse), otherwise en or pt, and accent names the regional accent. Filter with language (multilingual voices match every language), gender, and a free-text q; limit (1–100, default 50) and offset page the list. The same rows are served by GET /v1/telegram/voices?kind=phone.

Scope: phone:read. Send the API key as a bearer token; Scopes lists what each one reaches.

Request

cURL
curl "https://api.dairo.app/v1/phone/voices" \
  -H "Authorization: Bearer $DAIRO_API_KEY"

Query parameters

NameTypeRequiredDescription
qstringnoFree-text search over id, name, description, accent and gender.
languagestringnoKeep voices speaking this language (multilingual voices match every language).
genderstringnoFilter by gender.
limitintegernoMaximum number of items in the page. (minimum 1, maximum 100, default 50)
offsetintegerno(minimum 0, default 0)

Response

200 Success. Body: application/json, object.

FieldTypeRequiredDescription
object"list"no
kind"phone"no
countintegerno
limitintegerno
offsetintegerno
dataarray of PhoneVoiceno
200
{
  "object": "list",
  "kind": "phone",
  "count": 0,
  "limit": 0,
  "offset": 0,
  "data": [
    {
      "voiceId": "marin",
      "name": "Ada Lovelace",
      "description": null,
      "language": "multilingual",
      "gender": null,
      "accent": null
    }
  ]
}

Errors

Every error has the same body, {"error": {"type", "code", "message", "param"}}; branch on code. Errors lists every code.

StatusMeaning
400The request is malformed or a value is invalid (invalid_request, invalid_domain, idempotency_key_mismatch).
401The API key is missing or invalid.
403The key lacks the scope this endpoint needs (scope_missing) or may not do this (not_permitted).
404No such resource in this account (resource_not_found).
429Rate limit, plan limit, budget or spend cap reached (rate_limited, plan_limit_reached, budget_exceeded, spend_cap_reached).
500An unexpected error; retry with backoff, then contact support (internal_error).

On this page