# xAI TTS v1 — Atlas Cloud API

> xAI TTS v1 is a high-fidelity text-to-speech model that converts text into natural, expressive speech with sub-second latency, supporting 20 languages and 80+ voices with fine-grained delivery control.

This is the machine-readable API reference for **xAI TTS v1** on Atlas Cloud,
a unified API platform for 400+ AI models across text, image, video, audio and 3D.

- **Model ID**: `xai/tts-v1`
- **Built by**: xAI
- **Modality**: Audio
- **Model page**: https://www.atlascloud.ai/models/xai/tts-v1
- **API key**: https://www.atlascloud.ai/console/api-keys
- **Docs**: https://www.atlascloud.ai/docs

## Pricing on Atlas Cloud

- $0.015 per 1K characters
- Pay-as-you-go. No minimum spend, no subscription required.

> **These are the authoritative Atlas Cloud rates for this model.** Any price that
> appears in the vendor description further down refers to a different platform or
> a different model variant and does not apply here.

## Use this model from an AI agent

Atlas Cloud ships three first-party integration surfaces. All three authenticate
with the same API key via the `ATLASCLOUD_API_KEY` environment variable.

### MCP server

The official MCP server (`atlascloud-mcp`) exposes this model to any
MCP-compatible host — Claude Code, OpenAI Codex, Cursor, Gemini CLI, Goose,
Claude Desktop. One-line install:

```bash
# Claude Code
claude mcp add atlascloud -- npx -y atlascloud-mcp

# OpenAI Codex CLI
codex mcp add atlascloud -- npx -y atlascloud-mcp

# Gemini CLI
gemini mcp add atlascloud -- npx -y atlascloud-mcp

export ATLASCLOUD_API_KEY="your-api-key"
```

Then ask in plain English; the agent calls `atlas_generate_audio` with `model: "xai/tts-v1"`.
The server fetches each model's schema and validates parameters before submitting,
so invalid requests fail fast without spending credits.

MCP docs: https://www.atlascloud.ai/docs/mcp-server

### Agent Skills

`atlas-cloud-skills` is a portable skill package (API reference, code templates in
Python / Node.js / cURL, model IDs with pricing) for Claude Code, Cursor, Codex and
12+ other agents:

```bash
npx skills add AtlasCloudAI/atlas-cloud-skills
export ATLASCLOUD_API_KEY="your-api-key"
```

Skills docs: https://www.atlascloud.ai/docs/skills

### CLI

The `atlas` binary runs Atlas Cloud from a terminal or CI script. Async media jobs
are polled and downloaded automatically (use `--no-download` when a script only
needs the output URLs):

```bash
# Install (Homebrew, npm, or shell installer)
brew install AtlasCloudAI/tap/atlascloud
# npm install -g atlascloud-cli
# curl -fsSL https://raw.githubusercontent.com/AtlasCloudAI/cli/main/install.sh | sh

atlas auth login
atlas models get xai/tts-v1 --json
```

CLI docs: https://www.atlascloud.ai/docs/cli

## HTTP API reference

- **Submit endpoint (POST)**: `https://api.atlascloud.ai/api/v1/model/generateAudio` — start an async generation; returns a `prediction_id`
- **Poll endpoint (GET)**: `https://api.atlascloud.ai/api/v1/model/prediction/{prediction_id}` — poll this until the prediction finishes
- **Model ID**: `xai/tts-v1`


## API Information

This model can be used via our HTTP API or more conveniently via our client libraries.
See the input and output schema below, as well as the usage examples.


### Input Schema

The API accepts the following input parameters:

- **`model`** (`string`, _required_):
  model name
  - Default: `"xai/tts-v1"`

- **`text`** (`string`, _required_):
  The text to convert to speech. Maximum 15,000 characters. Supports inline instant tags (e.g. [pause]) and wrapping style tags (e.g. <whisper>text</whisper>).

- **`language`** (`string`, _required_):
  BCP-47 language code or 'auto' for automatic language detection. Case-insensitive.
  - Default: `"auto"`
  - Options: "auto", "en", "zh", "ar-EG", "ar-SA", "ar-AE", "bn", "fr", "de", "hi", "id", "it", "ja", "ko", "pt-BR", "pt-PT", "ru", "es-MX", "es-ES", "tr", "vi"

- **`voice_id`** (`string`, _optional_):
  Voice identifier. Multilingual voices (ara, eve, leo, rex, sal) support all languages; other voices are optimized for their native language and will cascade-update the language field.
  - Default: `"eve"`
  - Options: "ara", "eve", "leo", "rex", "sal", "jpi39icg", "d18jlf6v", "33g9t0jl", "26w6ihxi", "dr8gqysu", "wy0m9l5w", "om17cury", "x7avnu1k", "bcs7l2c3", "hqxr4yub", "h27ltdnz", "89q2pnko", "73xd5dum", "0p0rt7o1", "hbxkrnwm", "69smp8rm", "yis75yfp", "ekhwx401", "jupvcf34", "0hhfxxqq", "0ih5oi34", "gwnexu6y", "97zmdc6s", "fc7de6afcf6c", "7a9ee820b342", "0895a5b8ce5c", "f8cf5c2c78d4", "96819d0bd28d", "79f3a8b96d43", "78a495fdbb39", "e22152e06fd8", "490ea3be50b1", "1f046a033914", "dfe7b9e7d217", "c3a2c594479e", "83c6f4fea98e", "34fd4dce1ba3", "d634b6da3d3b", "670a0c3ac005", "182a91893636", "d0cb9ff07d95", "b1a7441b97a1", "bf9fe5b5f981", "b5ae17439907", "a0401c9101f8", "23be42535a45", "abfbdf26f115", "6da5baee46d0", "3d030bc92a87", "a13662ba951c", "58d27475085e", "247783ebdd51", "244e27b39200", "97fabd54445f", "37329fd8895a", "2badb5f46b1e", "1b12d5daee6b", "908c4626660f", "4ff93971bfdc", "70013edeb8e8", "35c8d7f60dc8", "23468361b4ef", "458705c07139", "41321eb41295", "40f31906b23d", "3a7889066fa2"

- **`codec`** (`string`, _optional_):
  Audio codec for the output.
  - Default: `"mp3"`
  - Options: "mp3", "wav", "pcm", "mulaw", "alaw"

- **`sample_rate`** (`integer`, _optional_):
  Sample rate in Hz. Supported values: 8000, 16000, 22050, 24000, 44100, 48000.
  - Default: `24000`
  - Options: 8000, 16000, 22050, 24000, 44100, 48000

- **`bit_rate`** (`integer`, _optional_):
  Bit rate in bps. Applies to MP3 codec only. Supported values: 32000, 64000, 96000, 128000, 192000.
  - Default: `128000`
  - Options: 32000, 64000, 96000, 128000, 192000

- **`speed`** (`number`, _optional_):
  Speech speed multiplier. 1.0 is normal speed. Values below 1.0 slow down speech, values above 1.0 speed it up. Range: 0.7 to 1.5.
  - Default: `1`
  - Min: 0.7
  - Max: 1.5

- **`text_normalization`** (`boolean`, _optional_):
  Enable text normalization before synthesis. When enabled, the model normalizes written-form text (e.g. numbers, abbreviations, symbols) into spoken-form before generating audio.
  - Default: `false`

- **`optimize_streaming_latency`** (`integer`, _optional_):
  Latency optimization level for streaming synthesis. 0 (default): No optimization — best audio quality. 1: Reduced first-chunk size for lower time-to-first-audio, with minor quality tradeoff at chunk boundaries. 2: Further reduced first-chunk size for lowest time-to-first-audio, with more noticeable quality tradeoff at chunk boundaries.
  - Default: `0`
  - Options: 0, 1, 2



**Required Parameters Example**:

```json
{
  "model": "xai/tts-v1",
  "text": "",
  "language": "auto"
}
```


**Full Example**:

```json
{
  "model": "xai/tts-v1",
  "text": "",
  "language": "auto",
  "voice_id": "eve",
  "codec": "mp3",
  "sample_rate": 24000,
  "bit_rate": 128000,
  "speed": 1,
  "text_normalization": false,
  "optimize_streaming_latency": 0
}
```


### Output Schema

The API returns the following output format:


- **`code`** (`integer`, _optional_):
  HTTP status code of the response.

- **`message`** (`string`, _optional_):
  Human-readable message; non-empty on failure.

- **`data`** (`object`, _optional_):
  - Properties:
    - **`id`** (`string`, _optional_):
      Unique identifier for the prediction.

    - **`model`** (`string`, _optional_):
      Model ID used for the prediction.

    - **`outputs`** (`array[string]`, _optional_):
      Array of URLs to the generated content. Null when status is not completed.

    - **`urls`** (`object`, _optional_):
      Object containing related API endpoints.
      - Properties:
        - **`get`** (`string`, _optional_):
          URL to poll for the prediction result.


    - **`status`** (`string`, _optional_):
      Status of the task: created, processing, completed, timeout, or failed.

    - **`created_at`** (`string`, _optional_):
      ISO timestamp of when the request was created (e.g., "2023-04-01T12:34:56.789Z").

    - **`error`** (`string`, _optional_):
      Error message if the task failed, empty string otherwise.

    - **`error_code`** (`integer`, _optional_):
      Error code if the task failed.

    - **`executionTime`** (`number`, _optional_):
      Total execution time in milliseconds.

    - **`timings`** (`object`, _optional_):
      Detailed timing breakdown.
      - Properties:
        - **`inference`** (`number`, _optional_):
          Inference time in milliseconds.





**Example Response**:

```json
{
  "code": 0,
  "message": "",
  "data": {
    "id": "",
    "model": "",
    "outputs": [
      ""
    ],
    "urls": {
      "get": ""
    },
    "status": "",
    "created_at": "",
    "error": "",
    "error_code": 0,
    "executionTime": 0,
    "timings": {
      "inference": 0
    }
  }
}
```


## Usage Examples

### cURL

```bash
# Step 1: Start generation (async)
curl -X POST "https://api.atlascloud.ai/api/v1/model/generateAudio" \
  -H "Authorization: Bearer $ATLASCLOUD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "xai/tts-v1",
  "text": "",
  "language": "auto",
  "voice_id": "eve",
  "codec": "mp3",
  "sample_rate": 24000,
  "bit_rate": 128000,
  "speed": 1,
  "text_normalization": false,
  "optimize_streaming_latency": 0
}'

# Response will contain: {"code": 200, "data": {"id": "prediction_id", "status": "processing"}}

# Step 2: Poll for result (replace {prediction_id} with the id returned above)
curl -X GET "https://api.atlascloud.ai/api/v1/model/prediction/{prediction_id}" \
  -H "Authorization: Bearer $ATLASCLOUD_API_KEY"

# Keep polling until status is "completed", "succeeded" or "failed"
# When completed, outputs will contain the generated content URL(s)
```

## Additional Resources

### Documentation

- [Model Playground](https://www.atlascloud.ai/models/xai/tts-v1)

## About this model

_Vendor-supplied description. Any pricing or endpoint mentioned below refers to_
_other platforms — use the Atlas Cloud values above._

### xAI TTS v1 — Text to Speech

**Developer:** xAI  
**Model ID:** `xai/tts-v1`  
**Release Date:** April 2026

#### Overview

xAI TTS v1 is a high-fidelity text-to-speech model developed by xAI, the company behind Grok. It converts text into natural, expressive speech with sub-second latency, supporting 20 languages and a rich voice library of 80+ voices. The model features fine-grained delivery control through inline speech tags, multiple audio output formats for both streaming and telephony use cases, and a voice cloning capability that can produce a production-ready custom voice from roughly a minute of reference audio.

xAI TTS v1 is designed for real-world production workloads — customer service bots, content narration, accessibility tools, and real-time voice agents — offering competitive per-character pricing with enterprise-grade compliance.

#### Key Capabilities

- **Expressive delivery control** — 14 instant speech tags and 13 wrapping style tags for pauses, laughter, whispers, pitch shifts, speed changes, and more.
- **80+ voices across 20 languages** — Five universal multilingual voices plus language-optimized voices for Chinese, Russian, Italian, French, Spanish, Hindi, Japanese, Korean, Portuguese, German, Dutch, Polish, Turkish, Arabic, Vietnamese, Thai, Danish, Swedish, Finnish, and English.
- **Flexible audio output** — MP3, WAV, PCM, μ-law, and A-law codecs with sample rates from 8 kHz (telephony) to 48 kHz (studio).
- **Voice cloning** — Record up to 120 seconds of reference audio; a custom `voice_id` is ready in under 2 minutes at no additional cost.
- **Streaming and batch modes** — Both a standard REST endpoint and a WebSocket streaming endpoint for real-time audio delivery.
- **Automatic language detection** — Set `language: "auto"` to let the model identify the input language.
- **Privacy-first** — Audio is never stored or used for model training.

#### Use Cases

_(Description truncated. Full text on the model page.)_

---

Atlas Cloud — one API for 400+ AI models. Model page: https://www.atlascloud.ai/models/xai/tts-v1 · Docs: https://www.atlascloud.ai/docs
