> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nineninesix.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# SDKs

> Use the official Cartesia SDKs with Nineninesix by overriding the base URL.

Nineninesix is Cartesia-compatible. You don't need a custom SDK — point the official Cartesia SDK at `https://api.nineninesix.ai`.

## Node.js / TypeScript

Install the SDK:

```bash theme={null}
npm install @cartesia/cartesia-js
```

Then override the base URL:

```typescript theme={null}
import { Cartesia } from "@cartesia/cartesia-js";

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

const res = await client.tts.generate({
  model_id: "gepard-1.0",
  transcript: "Hello from Nineninesix!",
  voice: { mode: "id", id: "<voice-id>" },
  output_format: { container: "wav", encoding: "pcm_s16le", sample_rate: 22050 },
});

const buffer = Buffer.from(await res.arrayBuffer());
await fs.promises.writeFile("output.wav", buffer);
```

## Python

Install the SDK:

```bash theme={null}
pip install cartesia
```

Then override the base URL:

```python theme={null}
from cartesia import Cartesia

client = Cartesia(
    api_key="sk_996_your_api_key",
    base_url="https://api.nineninesix.ai",
)

audio = client.tts.bytes(
    model_id="gepard-1.0",
    transcript="Hello from Nineninesix!",
    voice={"mode": "id", "id": "<voice-id>"},
    output_format={"container": "wav", "encoding": "pcm_s16le", "sample_rate": 22050},
)

with open("output.wav", "wb") as f:
    f.write(audio)
```

## curl

No SDK needed:

```bash theme={null}
curl -N https://api.nineninesix.ai/tts/bytes \
  -H "Authorization: Bearer sk_996_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{"model_id":"gepard-1.0","transcript":"Hello!","voice":{"mode":"id","id":"<voice-id>"},"output_format":{"container": "wav", "encoding": "pcm_s16le", "sample_rate": 22050}}' \
  --output output.wav
```

## Environment Variables

Store your key and base URL in environment variables:

```bash theme={null}
NINENINESIX_API_KEY=sk_996_your_api_key
NINENINESIX_BASE_URL=https://api.nineninesix.ai
```

```typescript theme={null}
const client = new Cartesia({
  apiKey: process.env.NINENINESIX_API_KEY,
  baseURL: process.env.NINENINESIX_BASE_URL,
});
```

## Compatibility Note

The API follows the [Cartesia API](https://docs.cartesia.ai) surface (`/tts/bytes`, `/tts/websocket`, `/voices`). Any HTTP or WebSocket client that can send JSON and read a binary/stream response will work.
