WebSocket keep-alive frame is now documented

Every Waves WebSocket - Pulse STT and Lightning TTS - accepts an application-level keep-alive frame. Send {"type": "ping"} and the server resets the inactivity timer and replies {"type": "pong"}. keepalive, keep_alive, and keep-alive work as aliases.

The frame is handled at the API edge: it never reaches the model, does not affect the transcript or the synthesized audio, and carries no audio, so it is not billed.

What changed

Documentation only - the wire behavior has been live since August. The new material covers:

  • The keep-alive frame and its pong acknowledgement, on both the STT and TTS WebSocket references.
  • The three limits that apply to a Pulse STT session: 20-minute connection inactivity (raisable to 3 hours with ?timeout=N, and reset by keep-alives), a 20-minute model-session idle window that keep-alives do not extend, and a 5-hour absolute session lifetime.
  • A correction on the TTS WebSocket reference: ?timeout=N is capped at 180 seconds, not honored verbatim at any value as previously stated.

Keep-Alive