Audio

List Voices

Every preset voice with the models that speak it, then your designed and cloned voices, newest first.

Preset entries use the voice name as id (for example Cherry) and list the models that speak it: every preset on spicy-voice-1, a subset on spicy-voice-1-expressive. Your own voices have a vc_... id and are spoken by spicy-voice-1-custom. Sandbox keys see the presets only.

GET/v1/voicesTry it
List Voices
cURL
curl --request GET \
  --url https://api.spicyapi.com/v1/voices \
  --header 'Authorization: Bearer $SPICYAPI_KEY'
200
JSON
{
  "object": "list",
  "data": [
    { "id": "Cherry", "object": "voice", "kind": "preset", "name": "Cherry", "models": ["spicy-voice-1", "spicy-voice-1-expressive"] },
    { "id": "Jennifer", "object": "voice", "kind": "preset", "name": "Jennifer", "models": ["spicy-voice-1"] },
    {
      "id": "vc_4e1b7c9a2d5f8e0b3c",
      "object": "voice",
      "kind": "cloned",
      "name": "My voice",
      "models": ["spicy-voice-1-custom"],
      "description": null,
      "source_audio_id": "au_3c9f1e7a2b4d6f80a1c2",
      "preview_url": null,
      "consent_attested_at": 1758553200,
      "created": 1758553200
    }
  ]
}

Authorizations

Authorizationstringheaderrequired

Bearer authentication header of the form Bearer <token>, where <token> is your SpicyAPI key (sk-spicy-…). Create one in the dashboard under API Keys.

Query parameters

limitinteger

How many of your own voices to return, 1 to 200. Defaults to 200.

afterstring

The vc_... id of the last voice on the previous page. Presets come on the first page only.

Response

200 · application/json

Successful Response

dataVoice · object[]required

Preset voices, then yours.

has_morebooleanrequired

True when more of your voices follow: pass the last id as after.

Was this page helpful?