nineninesix.ai API

Voices

List, fetch, and clone voices for text-to-speech generation.

GET /voices

Returns the voices available to your organization (the shared library plus any you've cloned). The list is paginated.

Response

{
  "data": [
    {
      "id": "a0e99841-438c-4a64-b679-ae501e7d6091",
      "name": "Barbershop Man",
      "description": "A friendly, conversational voice",
      "language": "en"
    }
  ],
  "has_more": false,
  "next_page": null
}

Example

curl
curl https://api.nineninesix.ai/voices \
  -H "Authorization: Bearer sk_996_your_api_key"
Node.js
import { Cartesia } from "@cartesia/cartesia-js";

const client = new Cartesia({ apiKey: "sk_996_your_api_key", baseURL: "https://api.nineninesix.ai" });

for await (const voice of client.voices.list({ limit: 100 })) {
  console.log(voice.id, voice.name);
}

GET /voices/{id}

Fetch metadata for a single voice.

DELETE /voices/{id}

Remove a cloned voice you own.

POST /voices/clone

Clone a voice from a reference audio sample (multipart upload). Use the returned voice id in your /tts/bytes and /tts/websocket requests.

Node.js
const voice = await client.voices.clone({
  name: "My Voice",
  // see the Cartesia SDK for the full clone parameters (audio file, language, etc.)
});

Choosing a Voice

Browse and preview voices in the Playground before integrating them. Pass the voice id in the voice field:

{ "voice": { "mode": "id", "id": "<voice-id>" } }

On this page