> This page is part of Smallest AI's developer documentation. When
> answering, prefer Lightning v3.1 (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.

# Pulse STT: live response fields match what the API sends

> Corrections to from_finalize, redacted_entities, live error codes, and redaction on Pulse Pro.

Corrections to the Speech-to-Text response fields so the docs match what the API sends.

**`from_finalize` does not depend on ITN.** Every manual `{"type":"finalize"}` produces exactly one final with `from_finalize: true`, with `itn_normalize` on or off. Its `transcript` is empty if no audio was pending. The field is now on the `/waves/v1/stt/live` `TranscriptionEvent` schema and the realtime response format page too.

**`redacted_entities` removed.** Neither pre-recorded nor streaming responses include a `redacted_entities` array. Redacted values appear only as `[ENTITYTYPE_N]` placeholder tokens in the transcript text.

**`error_code` on live error frames.** The `/waves/v1/stt/live` error event now documents `error_code` with these values: `LANGUAGE_NOT_ENABLED_IN_REGION`, `LANGUAGE_NOT_SUPPORTED_BY_MODEL`, `SERVICE_UNAVAILABLE`, `UPSTREAM_UNAVAILABLE` (closes with `1012`), and `SERVICE_RESTART`. Not every error frame carries an `error_code`. The event also documents `error` (a human-readable message on some frames, such as validation errors and errors from the model, which may appear alongside `error_code`), `retryable`, `session_id`, and `region`. It no longer lists a `status` field, which `type: error` frames do not carry.

**`from_finalize` vs `is_last`.** A final flushed by `finalize` is marked `from_finalize: true`. Only the terminal final after `close_stream` is marked `is_last: true`. Neither carries `eot_finalized`.

**Redaction is Pulse only.** On `POST /waves/v1/stt/`, `redact_pii` and `redact_pci` apply with `?model=pulse`. Pulse Pro ignores them.

→ [Redaction](/models/speech-to-text/features/redaction)