Skip to main content
POST
cURL
Only allowed while the voice is in state PVC_VOICE_STATE_DRAFT or PVC_VOICE_STATE_FAILED. Call this endpoint as many times as you need — samples accumulate on the voice until you train it.
Uploads are all-or-nothing. If any file in a request is rejected (unsupported format, too large, etc.), none of the files in that request are saved — including the valid ones. Split a batch and retry with just the accepted files.
Format is detected from the file’s byte content, not its declared MIME type or extension — renaming a file to .wav does not make it a WAV file.

Accepted audio

Rejected: A-law WAV, 12-bit WAV, .m4a, zero-byte files, truncated WAV files, and WEBM files missing Duration metadata.

Limits

Uploading beyond these limits returns HTTP error code 400 (per-request/per-file/per-voice limits) or 429 (too many concurrent uploads). For recording and preparation tips, see Voice Cloning best practices.

Authorizations

Authorization
string
header
required

Your API key. Read permissions are required for GET endpoints. Write permissions are required for POST, PATCH, and DELETE endpoints.

For Basic authentication, please populate Basic $INWORLD_API_KEY. You can create a key in one command with the Inworld CLI: inworld workspace add-key.

Path Parameters

voiceId
string
required

Voice ID of the draft PVC voice to add samples to.

Body

multipart/form-data

Multipart form for UploadPvcVoiceSamples.

files[]
file[]
required

Audio files to upload, up to 10 per request. Repeat the files[] form field once per file (e.g. files[]=@"sample-01.wav", files[]=@"sample-02.wav") — it is not a single field containing a list. Accepted formats: WAV, WEBM, MP3 — the actual byte content is sniffed to determine format, not the declared MIME type or file extension. Each file is capped at 1 GB; the voice's combined sample storage is capped at 5 GB and 50 samples total.

remove_background_noise
boolean

Whether to run an audio isolation model over the uploaded samples to remove background noise before training. Can degrade quality on already-clean recordings. Defaults to false.

Response

A successful response.

Response message for UploadPvcVoiceSamples.

samples
object[]

The samples accepted by this request, in the order they were uploaded.