---
title: "Create Speech"
method: POST
path: "/v1/audio/speech"
tags: ["audio"]
---

# Create Speech

`POST /v1/audio/speech`

OpenAI-compatible audio speech (TTS) endpoint.

Authentication modes:
- Master key + user field: Use specified user (must exist)
- API key + user field: Use specified user (must exist)
- API key without user field: Use the shared "default" user

## Request body

- AudioSpeechRequest — OpenAI-compatible audio speech (TTS) request. The speech fields are derived from any-llm's ``AudioSpeechParams`` (see ``_schema_derive``) so the schema cannot silently drop a param any-llm forwards. ``user`` is gateway-only (billing / auth scoping); it is not an any-llm param and is stripped before the request is forwarded.
  - `input` string, required
  - `instructions` string, nullable
  - `model` string, required
  - `response_format` string, nullable
  - `speed` number, nullable
  - `user` string, nullable
  - `voice` string, required

## Response `200`

Audio bytes in the requested format

- unknown

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/mozilla-ai/apis/otari.md) · [All operations](https://skmtc.net/mozilla-ai/apis/otari/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/mozilla-ai/otari/revisions/2ebadef75cc8/schema)
