Skip to main content
Operations are enabled individually by server configuration. Disabled operations return 503 without a task. Music credit deduction is currently disabled.

Recording Voice: four steps

    1. Submit suno_voice_upload with voice_url and vocal_start_s/vocal_end_s. Wait for ready:true.
    1. POST /api/v1/voices/verification_phrase with voice_upload_task_id and language. This selects the phrase language; voice verification happens in step 3. Call again to regenerate a phrase.
    1. Record yourself reading phrase_text, upload the recording and submit suno_voice_create with the same upload task ID, phrase_id and upload_url. Query the common task endpoint for voice_id.
    1. GET /api/v1/voices/{voice_id} checks current availability. Provider errors return 503, not a fabricated available:false.
Languages: en, zh, es, fr, pt, de, ja, ko, hi, ru; default en. The upload session lasts 24 hours after successful preparation; phrase mappings share that deadline. expires_at:null means the provider phrase TTL is unknown, not unlimited validity. If only the phrase expires, obtain a new phrase; after the upload session expires, upload a new sample and restart.

Use the verified Voice

Pass the returned voice_id as persona_id when generating music, with persona_model=voice_persona. Names and descriptions supplied during upload are not automatically inherited: set the final values in suno_voice_create.

Create from a song

Style Persona: submit suno_persona_create with persona_model=style_persona and audio_id. Voice Persona: first suno_persona_prepare; then select 10–30 seconds on its prepared vocal timeline and submit suno_persona_create with persona_model=voice_persona and prepared_audio_id. Optional waveform data may be null when the supplier rejects waveform extraction; the prepared vocal audio remains usable. Uploads and their cover/extend derivatives cannot create song Personas.