{"openapi":"3.1.0","info":{"title":"VoiceChangerAPI","version":"0.1.0"},"paths":{"/health/live":{"get":{"tags":["health"],"summary":"Live","operationId":"live_health_live_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/voice-cloning/tts":{"post":{"tags":["voice-cloning"],"summary":"Text-to-speech (clone or designed voice)","description":"Multipart TTS: **voice cloning** with `audio_ref` (upload) or `custom_voice_id` (saved reference), or **designed speech** with no reference when `instruct` is set (comma-separated style tags). Optional `speed`, `duration`, `instruct` (also alongside a clone), and `generation_config` (JSON) map to the engine; omit for defaults.","operationId":"text_to_speech_voice_clone_v1_voice_cloning_tts_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_text_to_speech_voice_clone_v1_voice_cloning_tts_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/jobs/{job_id}":{"get":{"tags":["jobs"],"summary":"Get Job","operationId":"get_job_v1_jobs__job_id__get","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/jobs/{job_id}/result":{"get":{"tags":["jobs"],"summary":"Get Job Result","operationId":"get_job_result_v1_jobs__job_id__result_get","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/dubbing/uploads":{"post":{"tags":["dubbing"],"summary":"Create Dubbing Upload","operationId":"create_dubbing_upload_v1_dubbing_uploads_post","parameters":[{"name":"content_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional Content-Type for the PUT upload","title":"Content Type"},"description":"Optional Content-Type for the PUT upload"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/dubbing/jobs/{job_id}/start":{"post":{"tags":["dubbing"],"summary":"Start Dubbing Job","operationId":"start_dubbing_job_v1_dubbing_jobs__job_id__start_post","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Job Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/DubbingStartBody"},{"type":"null"}],"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/stt/uploads":{"post":{"tags":["speech-to-text"],"summary":"Create Batch Stt Upload","operationId":"create_batch_stt_upload_v1_stt_uploads_post","parameters":[{"name":"content_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Content-Type you will send on the PUT upload","title":"Content Type"},"description":"Content-Type you will send on the PUT upload"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/stt/jobs/{job_id}/start":{"post":{"tags":["speech-to-text"],"summary":"Start Batch Stt Job","operationId":"start_batch_stt_job_v1_stt_jobs__job_id__start_post","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Job Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/BatchSttStartBody"},{"type":"null"}],"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/stt/jobs/{job_id}/transcript":{"get":{"tags":["speech-to-text"],"summary":"Get Batch Stt Transcript Json","description":"Return parsed transcript JSON when the job is completed (convenience for dashboard clients).","operationId":"get_batch_stt_transcript_json_v1_stt_jobs__job_id__transcript_get","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/custom-voices":{"get":{"tags":["custom-voices"],"summary":"List Custom Voices","operationId":"list_custom_voices_v1_custom_voices_get","parameters":[{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by name (case-insensitive substring)","title":"Q"},"description":"Filter by name (case-insensitive substring)"},{"name":"voice_scope","in":"query","required":false,"schema":{"type":"string","description":"'personal' = only your non-system voices (manage page). 'all' = system voices (shared) plus your personal voices (TTS picker).","default":"personal","title":"Voice Scope"},"description":"'personal' = only your non-system voices (manage page). 'all' = system voices (shared) plus your personal voices (TTS picker)."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["custom-voices"],"summary":"Create Custom Voice","operationId":"create_custom_voice_v1_custom_voices_post","requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_custom_voice_v1_custom_voices_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/custom-voices/{voice_id}/preview":{"post":{"tags":["custom-voices"],"summary":"Generate Custom Voice Preview","description":"Regenerate stored list-preview audio for an existing custom voice (uses credits like create-time preview).","operationId":"generate_custom_voice_preview_v1_custom_voices__voice_id__preview_post","parameters":[{"name":"voice_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Voice Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/custom-voices/{voice_id}":{"patch":{"tags":["custom-voices"],"summary":"Update Custom Voice","operationId":"update_custom_voice_v1_custom_voices__voice_id__patch","parameters":[{"name":"voice_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Voice Id"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_update_custom_voice_v1_custom_voices__voice_id__patch"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["custom-voices"],"summary":"Delete Custom Voice","operationId":"delete_custom_voice_v1_custom_voices__voice_id__delete","parameters":[{"name":"voice_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Voice Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/me":{"get":{"tags":["me"],"summary":"Read Me","operationId":"read_me_v1_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/usage/jobs":{"get":{"tags":["usage"],"summary":"List Usage Jobs","description":"Paginated job history for the authenticated user only.\nUses indexed ``user_id`` + ``created_at`` ordering; keep ``per_page`` small.","operationId":"list_usage_jobs_v1_usage_jobs_get","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"1-based page index","default":1,"title":"Page"},"description":"1-based page index"},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"description":"Rows per page (capped for performance)","default":15,"title":"Per Page"},"description":"Rows per page (capped for performance)"},{"name":"job_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Exact job type, or omit / 'all' for any","title":"Job Type"},"description":"Exact job type, or omit / 'all' for any"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Exact job status, or omit / 'all' for any","title":"Status"},"description":"Exact job status, or omit / 'all' for any"},{"name":"created_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"UTC date inclusive lower bound on created_at","title":"Created After"},"description":"UTC date inclusive lower bound on created_at"},{"name":"created_before","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"UTC date inclusive upper bound on created_at","title":"Created Before"},"description":"UTC date inclusive upper bound on created_at"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Usage Jobs V1 Usage Jobs Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/usage":{"get":{"tags":["usage"],"summary":"Read Usage","operationId":"read_usage_v1_usage_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Read Usage V1 Usage Get"}}}}}}},"/v1/admin/system-voices":{"get":{"tags":["admin-system-voices"],"summary":"List System Voices Admin","operationId":"list_system_voices_admin_v1_admin_system_voices_get","parameters":[{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by name","title":"Q"},"description":"Filter by name"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["admin-system-voices"],"summary":"Create System Voice","operationId":"create_system_voice_v1_admin_system_voices_post","requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_system_voice_v1_admin_system_voices_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/system-voices/{voice_id}/preview":{"post":{"tags":["admin-system-voices"],"summary":"Regenerate System Voice Preview","operationId":"regenerate_system_voice_preview_v1_admin_system_voices__voice_id__preview_post","parameters":[{"name":"voice_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Voice Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/system-voices/{voice_id}":{"patch":{"tags":["admin-system-voices"],"summary":"Update System Voice","operationId":"update_system_voice_v1_admin_system_voices__voice_id__patch","parameters":[{"name":"voice_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Voice Id"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_update_system_voice_v1_admin_system_voices__voice_id__patch"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["admin-system-voices"],"summary":"Delete System Voice","operationId":"delete_system_voice_v1_admin_system_voices__voice_id__delete","parameters":[{"name":"voice_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Voice Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/dashboard":{"get":{"tags":["admin"],"summary":"Admin Dashboard","operationId":"admin_dashboard_admin_dashboard_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/admin/api/queue-summary":{"get":{"tags":["admin"],"summary":"Admin Queue Summary Json","operationId":"admin_queue_summary_json_admin_api_queue_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Admin Queue Summary Json Admin Api Queue Summary Get"}}}}}}},"/admin/":{"get":{"tags":["admin"],"summary":"Admin Index","operationId":"admin_index_admin__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}}},"components":{"schemas":{"BatchSttStartBody":{"properties":{"language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Language","description":"Optional language hint (BCP-47-style or name, e.g. en, auto). Omit or use auto for server-side detection; transcript JSON `language` is then the detected code."},"model":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Model","description":"Optional model tier label"}},"type":"object","title":"BatchSttStartBody"},"Body_create_custom_voice_v1_custom_voices_post":{"properties":{"name":{"type":"string","title":"Name"},"ref_audio":{"type":"string","contentMediaType":"application/octet-stream","title":"Ref Audio"},"image":{"anyOf":[{"type":"string","contentMediaType":"application/octet-stream"},{"type":"null"}],"title":"Image"},"generate_preview":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Generate Preview"}},"type":"object","required":["name","ref_audio"],"title":"Body_create_custom_voice_v1_custom_voices_post"},"Body_create_system_voice_v1_admin_system_voices_post":{"properties":{"name":{"type":"string","title":"Name"},"ref_audio":{"type":"string","contentMediaType":"application/octet-stream","title":"Ref Audio"},"image":{"anyOf":[{"type":"string","contentMediaType":"application/octet-stream"},{"type":"null"}],"title":"Image"},"requires_premium":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Requires Premium"},"generate_preview":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Generate Preview"}},"type":"object","required":["name","ref_audio"],"title":"Body_create_system_voice_v1_admin_system_voices_post"},"Body_text_to_speech_voice_clone_v1_voice_cloning_tts_post":{"properties":{"text":{"type":"string","title":"Text","description":"Script to synthesize."},"language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Language","description":"Language hint (e.g. en) or auto; omit for automatic detection where supported."},"async_mode":{"type":"string","title":"Async Mode","description":"If true, returns job_id immediately; poll GET /v1/jobs/{job_id}.","default":"false"},"speed":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Speed","description":"Optional speaking-rate factor; 0.25–4.0. Values above 1.0 are faster; below 1.0 slower. Omit for model default."},"duration":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Duration","description":"Optional target audio length in seconds (greater than 0, at most 600). When set, the engine fits output to this duration. Omit for automatic length."},"instruct":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Instruct","description":"Speaking-style instruct (comma-separated traits, e.g. gender/pitch/whisper/accent). Required for reference-free **designed** speech; optional alongside a clone. Invalid tags fail at inference."},"generation_config":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Generation Config","description":"Optional JSON object with decoding fields: num_step, guidance_scale, t_shift, layer_penalty_factor, position_temperature, class_temperature, denoise, preprocess_prompt, postprocess_output, audio_chunk_duration, audio_chunk_threshold."},"custom_voice_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Custom Voice Id","description":"Saved voice UUID for cloning. Omit with no `audio_ref` when using `instruct` alone."},"audio_ref":{"anyOf":[{"type":"string","contentMediaType":"application/octet-stream"},{"type":"null"}],"title":"Audio Ref","description":"Reference audio for cloning. Omit with no `custom_voice_id` when using `instruct` alone."}},"type":"object","required":["text"],"title":"Body_text_to_speech_voice_clone_v1_voice_cloning_tts_post"},"Body_update_custom_voice_v1_custom_voices__voice_id__patch":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"ref_audio":{"anyOf":[{"type":"string","contentMediaType":"application/octet-stream"},{"type":"null"}],"title":"Ref Audio"},"image":{"anyOf":[{"type":"string","contentMediaType":"application/octet-stream"},{"type":"null"}],"title":"Image"}},"type":"object","title":"Body_update_custom_voice_v1_custom_voices__voice_id__patch"},"Body_update_system_voice_v1_admin_system_voices__voice_id__patch":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"ref_audio":{"anyOf":[{"type":"string","contentMediaType":"application/octet-stream"},{"type":"null"}],"title":"Ref Audio"},"image":{"anyOf":[{"type":"string","contentMediaType":"application/octet-stream"},{"type":"null"}],"title":"Image"},"requires_premium":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Requires Premium"}},"type":"object","title":"Body_update_system_voice_v1_admin_system_voices__voice_id__patch"},"DubbingStartBody":{"properties":{"source_language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Language","description":"Optional source language tag"},"target_language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Language","description":"Optional target language tag"},"notes":{"anyOf":[{"type":"string","maxLength":4000},{"type":"null"}],"title":"Notes"}},"type":"object","title":"DubbingStartBody"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}},"servers":[{"url":"https://api.voicechanger.co","description":"VoiceChangerAPI (try requests here)"}]}