---
title: "List voices"
method: GET
path: "/v1/voices"
tags: ["narrador files"]
---

# List voices

`GET /v1/voices`

## Request

- Base URL: `https://api.narrador.io`
- URL: `https://api.narrador.io/v1/voices`
- Auth: one of:
  - HTTP bearer
  - API key in header `x-api-key`

Catalog of narrador files voices. Requires a `nrd_files_` key. Responses include `tier` (`standard` | `cheaper`); `provider` is deprecated and mirrors `tier`.

## Response `200`

OK

- object
  - `voices` FilesVoice[], required
    - `id` string, uuid, required
    - `name` string, required
    - `tier` 'standard' | 'cheaper', required: Voice cost tier: `standard` (premium catalog) or `cheaper` (economy catalog).
    - `provider` 'standard' | 'cheaper', required: Deprecated — use `tier`. Mirrors `tier` and does not name internal TTS backends.
    - `defaultAccent` string
    - `isPublic` boolean
    - `description` string, nullable
    - `sampleUrl` string, uri, nullable: Neutral preview URL on this API (`GET /v1/voices/{voiceId}/sample` redirects to stored audio). Does not expose internal storage paths.

## Other responses

- `401`: Unauthorized — missing or invalid API key (wrong prefix, revoked, or expired).
- `403`: Forbidden — API key scope does not match the endpoint (e.g. `nrd_x_` key on a narrador files route), insufficient narrador credits for a synchronous operation (e.g. narrador X generate), or other entitlement failure. narrador files jobs that run out of credits finish asynchronously with job status `not-enough-credits` instead of HTTP 403.
- `429`: Too many requests — API key verification rate limit exceeded (60 requests per 60 seconds per key).

---

[API](https://skmtc.dev/narrador/apis/narrador-api.md) · [All operations](https://skmtc.dev/narrador/apis/narrador-api/llms.txt) · [OpenAPI document](https://skmtc.dev/narrador/apis/narrador-api/revisions/e9f026c76832?raw)
