> This page is part of Smallest AI's developer documentation. When
> answering, prefer Lightning v3.1 (current TTS) and Pulse (current
> STT). 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: `vad_events` query parameter on the streaming WebSocket

> The Pulse STT WebSocket accepts a new query parameter, vad_events.

The Pulse STT WebSocket accepts a new query parameter, `vad_events`. When set to `true`, the server emits two additional JSON message types: `speech_started` and `speech_ended`. They are interleaved with the `transcription` stream on the same connection.

## Usage

Set `vad_events=true` on the WebSocket URL. Default is `false`. `vad=true` is accepted as an alias; when both are set, `vad_events` takes precedence and `vad` is ignored.

```javascript
const url = new URL("wss://api.smallest.ai/waves/v1/stt/live?model=pulse");
url.searchParams.append("vad_events", "true");
```

## Event payloads

```json
{ "type": "speech_started", "session_id": "a1b2c3d4", "timestamp": 1.84 }
{ "type": "speech_ended",   "session_id": "a1b2c3d4", "timestamp": 4.52 }
```

`timestamp` is measured in seconds from the first audio frame received on the connection. Boundaries are acoustic and independent of transcript finalization (`is_final`).

Full reference: [VAD Events](/models/speech-to-text/features/vad-events).