Overview
The Audimee API lets you:- Browse Audimee’s built-in voice models and your own custom-trained voices
- Train new custom voice models from your own audio
- Submit audio files for AI voice conversion against either kind of model
Base URL
Authentication
All endpoints require a static API key issued by Audimee, passed as a bearer token:401 with one of:
Missing or invalid Authorization header— header absent or not prefixed withBearerInvalid authorization token— token not recognisedUser not found— token valid but the underlying user no longer exists
Error responses
Every error response — across every endpoint — uses the same shape:400 validation, 401 auth, 403 forbidden, 404 not found, 500 server error). The error string is the specific reason.
Voice model types
Responses from/voice-models are a discriminated union on type:
audimee— Built-in voices. Always available, no training. IDs are short numeric strings like"101". Includes display fields (description,previewUrl,gender,genres,pitchLow,pitchHigh).custom— Voices you trained viaPOST /voice-models. IDs are UUIDs. Become usable for conversions onceconfirmedDone: true. Carry training state (percentageDone,confirmedDone,failed,failedMessage).
?type=audimee or ?type=custom on GET /voice-models to narrow the response.
Custom voice model lifecycle
- Start training.
POST /voice-modelswithnameandtrainingAudioUrls. The response returns immediately with{ id, type: "custom" }. Training is queued on the AI backend. - Poll progress.
GET /voice-models/{id}returns the currentpercentageDone(0–100). Recommended cadence: every 10–30s — training typically takes minutes. - Detect terminal state. A model is terminal when one of:
confirmedDone: true, failed: false— ready for use in conversionsfailed: true— training failed;failedMessagecarries the reason
- Use it. Pass the custom model’s UUID as
voiceModelIdwhen callingPOST /conversions. - Delete it (optional).
DELETE /voice-models/{id}permanently deletes the model and its training artifacts — this is irreversible. The model must have started training on the AI backend (percentageDone > 0) before delete is allowed — if it hasn’t, the call returns400and you should retry later. If training is still in progress, the delete cancels it first.
Conversion lifecycle
- Start the conversion.
POST /conversionswithvoiceModelIdandinputFileUrl. Optional knobs:conversionStrength,pitchShift,sampleRateHz. Response:{ id }. - Poll progress.
GET /conversions/{id}returnspercentageDoneandconfirmedDone. Recommended cadence: every 5–15s — conversions are typically faster than training. - Detect terminal state.
confirmedDone: true(success) orfailed: true(failure). - Download the output. When
confirmedDoneistrue, theoutputFilePlayUrl(MP3, for streaming) andoutputFileDownloadUrl(WAV when available, MP3 otherwise) are usable signed URLs. The URLs are present in the response from the moment the conversion is created, but they don’t resolve to audio until the job is done — gate access onconfirmedDone, not on URL contents.
Plan limits
API client accounts may have plan-driven limits:- Maximum concurrent custom models — when reached,
POST /voice-modelsreturns400withCustom model limit reached (max N). - Maximum combined training audio duration per model — default 30 minutes. When exceeded,
POST /voice-modelsreturns400with the actual vs. allowed seconds.
trainingAudioUrls and inputFileUrl must be publicly reachable URLs — the server downloads them server-side. The host doesn’t need to be Audimee’s, but it does need to be available for the duration of the API call.