routes/voice/prompt.js:187-215): upstream style binding, preview audio, transcription text, audio duration, base speech rate;enhance and vocalFilter are unconditionally rewritten to the passed values (omitted is treated as false); it is not "keep existing if omitted".promptId exists: passing a non-existent style ID still returns 200, with no fields modified.modules/routeHelpers.js:254-280, modules/voiceFactory.js:257-270):VOICE_NOT_FOUND (the three cases are not distinguished)status = creating → 409 VOICE_CREATINGstatus = failed → 400 VOICE_CREATE_FAILEDfrom != upload (e.g. a market-purchased / community-imported voice) → 403 AUTH_FORBIDDENSYSTEM_INTERNAL_ERROR (retryable)Legacy alias: /api/tts/voice/{id}/prompt/{promptId}/reset— still supported for backward compatibility; use the primary path for new integrations.
{ 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.