UploadStaticClip
Upload a static voice clip (your own recording, sent as is) for a STATIC voice step, as a multipart file part whose own Content-Type is the audio’s MIME type. The clip may be at most 50 seconds long and 25 MiB large. Returns the clipId to use in the sequence step, the measured duration and a best-effort transcript. Never clones a voice. The optional name part is not stored yet; identify a clip by its clipId.
Quality findings (no detected speech, clipping) come back as warnings with a null clipId and s3Key, and nothing is stored; re-submit the same audio with ignoreSoftWarnings=true to store it. transcriptStatus and transcriptFailureReason say why a transcript is absent; the clip is stored either way.
Errors
- 400
VOICE_AUDIO_MISSING,VOICE_AUDIO_TOO_LARGE,VOICE_AUDIO_UNSUPPORTEDorVOICE_AUDIO_DURATION_OUT_OF_RANGE: change the file. - 403
NO_ACTIVE_SUBSCRIPTIONorVOICE_NOTES_NOT_ENABLED. - 503
VOICE_AUDIO_PROCESSING_UNAVAILABLE: the audio could not be processed on our side. Transient, so retry the same file in a few minutes.
Headers
API key header using this scheme. Example: “X-API-KEY: {API_KEY}”
Query parameters
Request
The clip, at most 50 seconds and 25 MiB. The part’s own Content-Type must be the audio’s MIME type.
Response
The stored clip’s id, for staticClipId in a sequence step. Null on a warning response.
DONE, NO_SPEECH or FAILED for a stored clip; NONE on a warning response.
Soft findings: NO_SPEECH or LOW_QUALITY.
Storage key. Null on a warning response; never needed by API callers.
Set only when transcriptStatus is FAILED: PROVIDER_ERROR, NOT_CONFIGURED, OUT_OF_CREDITS, TEMPORARILY_UNAVAILABLE or AUDIO_REJECTED.
