POST /api/tts/simple-generate (stream mode) and similar endpoints,app.js:262 already excludes /api/tts/stream/* from the auth middleware),auth carrying a 32-character static token:auth:user:{token}, TTL 7 days; the same user reuses the same token while it is validAUTH_FORBIDDENAUTH_UNAUTHORIZED<audio> tag, a player, or a download tool,id is fetched from upstream only once on the server; multiple requests (including iOS Range continuation) share one cached sessionRange requests are supported (206 Partial Content); an out-of-range offset returns 416; HEAD probes return headers immediately without blockingETag is sent, used with If-Range to prevent concatenating corrupted audio across sessionsSTREAM_FETCH_FAILED, session exceeding max lifetime is STREAM_TIMEOUT,instruct_mode synthesis itself failing is TTS_GENERATE_FAILEDSTREAM_NOT_FOUND is returned{ status, code, message, requestId? }. code is always the parent code — sub codes only change message and never appear in the body. requestId is present only on reportable-tier errors, so use the X-Vocu-App-Request-Id response header when troubleshooting (it is written unconditionally on every response). See the "Errors" document for the full code reference.