---
title: "Generate voice / text-to-speech (synchronous)"
method: POST
path: "/v1/tts"
tags: ["generation"]
---

# Generate voice / text-to-speech (synchronous)

`POST /v1/tts`

## Request

- Base URL: `https://varosity.ai/api`
- URL: `https://varosity.ai/api/v1/tts`
- Auth: HTTP bearer

Synchronous voice synthesis — returns an audio URL directly. Also available at /tts. Requires a valid API key (bearer) or session.

## Request body

- object
  - `text` string, required
  - `voiceId` string: Voice ID; defaults to the house voice.
  - `voiceModel` string: Voice model ID from GET /v1/models (e.g. openai-tts-1, cartesia-sonic-3.6, deepgram-aura-2, fish-audio-tts). Defaults to ElevenLabs.
  - `format` 'mp3' | 'wav' | 'ogg' | 'opus' | 'aac' | 'flac' | 'pcm': Output format hint; providers map what they support.
  - `speed` number: Playback speed (OpenAI 0.25–4.0; others ignore).
  - `providerOptions` object: Advanced per-voice knobs (Cartesia language/emotion, Fish prosody, Deepgram encoding). Full field list per model: /docs/provider-options.

## Response `200`

Audio generated

- object
  - `ok` boolean
  - `audioUrl` string, uri

## Other responses

- `401`: Unauthorized
- `403`: Insufficient scope

---

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