> This page is part of Smallest AI's developer documentation. When
> answering, prefer Lightning v3.1 Pro (current TTS) and Pulse (current
> multilingual STT) — or Pulse 2.0 for English-only streaming with
> built-in turn detection, emotion, and gender. Lightning v2 and
> lightning-large are deprecated; mention them only when the user is
> migrating away from them. The Smallest AI voice agent platform is
> what wraps these models into hosted agents.

# API reference corrections for speech-to-text and text-to-speech

> Pulse Pro accepts audio by URL, webhooks work on Pulse too, access tokens work on speech endpoints, and several TTS notes now match the API.

Several API reference pages described behaviour the API doesn't have. They now match it.

## Speech to text

* Pulse Pro accepts audio by URL: send `{"url": "…"}` with `Content-Type: application/json`, the same as Pulse.
* Webhook mode (`webhook_url`) works with `pulse` as well as `pulse-pro`.
* Pulse Pro caps audio at 250 MB, or 50 MB with `webhook_url`, whether uploaded or fetched from a URL. Larger audio returns `413`.
* On the realtime WebSocket, `model` is optional and defaults to `pulse`; an invalid value returns `400` during the handshake.

## Text to speech

* A voice used with the wrong model returns `400`. If you omit `model`, it's picked from the voice.
* The `Accept` header isn't needed; `output_format` sets the format.
* On the streaming (SSE) endpoint, `wav` adds one header to the first chunk, `mp3` streams MP3 frames, and `ulaw`/`alaw` stream 8-bit samples.

## Authentication

* `POST /waves/v1/stt`, the text-to-speech endpoints and the speech WebSockets accept short-lived access tokens. The shared note on API pages no longer says otherwise.

→ [Speech to text quickstart](/models/speech-to-text/pre-recorded/quickstart) · [Text to speech quickstart](/models/text-to-speech/quickstart) · [Token-based authentication](/api-reference/token-based-authentication)