The MVSEP API provides programmatic access to create a separation, return the results, get site information and control user capabilities.
To use this API, you need an API key. You are not logged in, please login to get your API token.
Note that Premium users can request up to 10 concurrent jobs, while non-Premium users can only request 1 concurrent job.
To create separation you need to make a POST call to the following url:
https://mvsep.com/api/separation/create
Field | Type | Description |
---|---|---|
api_token | String | Your API key |
audiofile | Binary | Audiofile to be processed |
sep_type | Integer | (optional) Separation Type, defaults to 11 (Demucs3 Model B (vocals, drums, bass, other)) |
add_opt1 | String | (optional) Separation Type first additional field |
add_opt2 | String | (optional) Separation Type second additional field |
add_opt3 | String | (optional) Separation Type third additional field |
output_format | Integer | (optional) output format, defaults to 0 (mp3 (320kbps)) |
is_demo | Boolean | (optional) should the separation be published to demo page, defaults to false |
Name | Value |
---|---|
Ensemble (vocals, instrum) | 26 |
Ensemble (vocals, instrum, bass, drums, other) | 28 |
Ensemble All-In (vocals, bass, drums, piano, guitar, lead/back vocals, other) | 30 |
Demucs4 HT (vocals, drums, bass, other) | 20 |
BS Roformer (vocals, instrumental) | 40 |
MelBand Roformer (vocals, instrumental) | 48 |
MDX23C (vocals, instrumental) | 25 |
SCNet (vocals, instrumental) | 46 |
MDX B (vocals, instrumental) | 23 |
Ultimate Vocal Remover HQ (vocals, music) | 9 |
Demucs4 Vocals 2023 (vocals, instrum) | 27 |
MDX-B Karaoke (lead/back vocals) | 12 |
MelBand Karaoke by viperx and aufr33 (lead/back vocals) | 49 |
MVSep Piano (piano, other) | 29 |
MVSep Guitar (guitar, other) | 31 |
MVSep Bass (bass, other) | 41 |
MVSep Drums (drums, other) | 44 |
MVSep Strings (strings, other) | 52 |
MVSep Wind (wind, other) | 54 |
Vit Large 23 (vocals, instrum) | 33 |
Reverb Removal (noreverb) | 22 |
MVSep Crowd removal (crowd, other) | 34 |
MVSep Demucs4HT DNR (dialog, sfx, music) | 24 |
BandIt Plus (speech, music, effects) | 36 |
BandIt v2 (speech, music, effects) | 45 |
MVSep DnR v3 (speech, music, sfx) | 56 |
DrumSep (kick, snare, cymbals, toms) | 37 |
DeNoise by aufr33 | 47 |
Whisper (extract text from audio) | 39 |
Medley Vox (Multi-singer separation) | 53 |
MVSep Multichannel BS (vocals, instrumental) | 43 |
Demucs3 Model B (vocals, drums, bass, other) | 11 |
MDX A/B (vocals, drums, bass, other) | 7 |
UVRv5 Demucs (vocals, music) | 17 |
MVSep DNR (music, sfx, speech) | 18 |
MVSep Vocal Model (vocals, music) | 19 |
Demucs2 (vocals, drums, bass, other) | 13 |
Danna Sep (vocals, drums, bass, other) | 15 |
Byte Dance (vocals, drums, bass, other) | 16 |
MVSep MelBand Roformer (vocals, instrum) | 35 |
spleeter | 0 |
UnMix | 3 |
Zero Shot (Query Based) (Low quality) | 14 |
Demucs3 Model A (vocals, drums, bass, other) | 10 |
LarsNet (kick, snare, cymbals, toms, hihat) | 38 |
MVSep MultiSpeaker (MDX23C) | 42 |
Apollo Enhancers (by JusperLee and Lew) | 51 |
Aspiration (by Sucial) | 50 |
Phantom Centre extraction (by wesleyr36) | 55 |
Key | Algorithm | Name | Options |
---|---|---|---|
add_opt1 | Ultimate Vocal Remover HQ (vocals, music) | Model Type |
|
add_opt2 | Ultimate Vocal Remover HQ (vocals, music) | Agressiveness |
|
add_opt1 | UVRv5 Demucs (vocals, music) | Model Type |
|
add_opt1 | MDX A/B (vocals, drums, bass, other) | Vocal model type |
|
add_opt1 | Zero Shot (Query Based) (Low quality) | Model Type |
|
add_opt1 | Demucs4 HT (vocals, drums, bass, other) | Model type |
|
add_opt1 | MDX B (vocals, instrumental) | Vocal model type |
|
add_opt1 | MVSep Demucs4HT DNR (dialog, sfx, music) | Model type |
|
add_opt1 | MDX23C (vocals, instrumental) | Vocal model type |
|
add_opt1 | MVSep Piano (piano, other) | Piano model type |
|
add_opt1 | MVSep Guitar (guitar, other) | Guitar model type |
|
add_opt1 | MDX-B Karaoke (lead/back vocals) | Karaoke model type |
|
add_opt1 | Vit Large 23 (vocals, instrum) | Model type |
|
add_opt1 | MVSep Crowd removal (crowd, other) | Model type |
|
add_opt1 | DrumSep (kick, snare, cymbals, toms) | Model Type |
|
add_opt1 | LarsNet (kick, snare, cymbals, toms, hihat) | Model type |
|
add_opt2 | Ensemble (vocals, instrum) | Model Type |
|
add_opt2 | Ensemble (vocals, instrum, bass, drums, other) | Model Type |
|
add_opt2 | Ensemble All-In (vocals, bass, drums, piano, guitar, lead/back vocals, other) | Model Type |
|
add_opt1 | Whisper (extract text from audio) | Model type |
|
add_opt1 | Ensemble (vocals, instrum) | Output files |
|
add_opt1 | Ensemble (vocals, instrum, bass, drums, other) | Output files |
|
add_opt1 | Ensemble All-In (vocals, bass, drums, piano, guitar, lead/back vocals, other) | Output files |
|
add_opt1 | BS Roformer (vocals, instrumental) | Vocal model type |
|
add_opt1 | MVSep Bass (bass, other) | Bass model type |
|
add_opt2 | MVSep Bass (bass, other) | Output files |
|
add_opt1 | MVSep MultiSpeaker (MDX23C) | Model Type |
|
add_opt1 | MVSep Multichannel BS (vocals, instrumental) | Model Type |
|
add_opt1 | MVSep Drums (drums, other) | Drums model type |
|
add_opt2 | MVSep Drums (drums, other) | How to extract |
|
add_opt1 | BandIt v2 (speech, music, effects) | Model Type |
|
add_opt2 | DrumSep (kick, snare, cymbals, toms) | Preprocess |
|
add_opt1 | Reverb Removal (noreverb) | Model Type |
|
add_opt2 | Reverb Removal (noreverb) | Preprocess |
|
add_opt1 | DeNoise by aufr33 | Model type |
|
add_opt1 | MelBand Roformer (vocals, instrumental) | Vocal model type |
|
add_opt1 | SCNet (vocals, instrumental) | Vocal model type |
|
add_opt1 | MelBand Karaoke by viperx and aufr33 (lead/back vocals) | Karaoke model type |
|
add_opt1 | Aspiration (by Sucial) | Model type |
|
add_opt1 | Medley Vox (Multi-singer separation) | Model type |
|
add_opt3 | MVSep Drums (drums, other) | Output files |
|
add_opt1 | MVSep Wind (wind, other) | Wind model type |
|
add_opt2 | MVSep Wind (wind, other) | How to extract |
|
add_opt3 | MVSep Wind (wind, other) | Output files |
|
add_opt1 | MVSep DnR v3 (speech, music, sfx) | Model type |
|
add_opt2 | MVSep DnR v3 (speech, music, sfx) | How to extract |
|
add_opt3 | MVSep DnR v3 (speech, music, sfx) | Output files |
|
add_opt1 | Apollo Enhancers (by JusperLee and Lew) | Model type |
|
add_opt1 | spleeter | Model type |
|
add_opt1 | UnMix | Model type |
|
Name | Value |
---|---|
mp3 (320 kbps) | 0 |
wav (uncompressed) | 1 |
flac (lossless) | 2 |
m4a (lossy) | 3 |
curl --location --request POST 'https://mvsep.com/api/separation/create'
--form 'audiofile=@"/path/to/file.mp3"'
--form 'api_token="<Your API Token>"'
--form 'sep_type="9"'
--form 'add_opt1="0"'
--form 'add_opt2="1"'
--form 'output_format="1"'
--form 'is_demo="1"'
Key | Value |
---|---|
success |
|
data | Holds extra information depending on the success key |
data -> link | Shows link to "GET RESULT" URL of created job (only shown when success is true ) |
data -> hash | Shows created job hash (only shown when success is true ) |
data -> message | Shows the description of an error (only shown when success is false ) |
The MVSEP API uses the following error codes:
Error Code | Meaning |
---|---|
400 | Some parameters are missing or invalid. This error appears when you don't pass every mandatory parameters or pass invalid parameters. |
401 |
Unknown or invalid api_token . This error appears if you use an unknown API key
|
To get the separation result, you need to make a GET call to the following url:
https://mvsep.com/api/separation/get
Field | Type | Description |
---|---|---|
hash | String | Separation Hash |
mirror | Integer | (optional) Uses another mirror if set to 1, defaults to 0. Requires api_token and 1 credit if set to 1. |
api_token | string | (optional) API key of the user. Required if mirror parameter is set to 1. |
curl --location --request GET 'https://mvsep.com/api/separation/get?hash=20230327071601-0e3e5c6c85-13-dimensions.mp3'
Key | Value |
---|---|
success |
|
status |
|
data | Holds extra information depending on the status key |
data -> queue_count | Shows unprocessed jobs count in user's priority (only shown when status is waiting or distributing ) |
data -> current_order | Shows the order of user's job (only shown when status is waiting or distributing ) |
data -> message | Shows the description of status (shown on all statuses, shows error reason instead when status is failed ) |
data -> algorithm | Shows the used algorithm on job (only shown when status is done ) |
data -> algorithm_description | Shows the used algorithm details on job (only shown when status is done ) |
data -> output_format | Shows the output format of job (only shown when status is done ) |
data -> tags | Shows the audio meta tags (only shown when status is done ) |
data -> input_file | Shows the input audio download details (only shown when status is done ) |
data -> files | Shows the output audios download details (only shown when status is done ) |
data -> date | Shows the job processing date (only shown when status is done ) |
data -> finished_chunks | Shows the number of finished parts of a large job (only shown when status is distributing ) |
data -> all_chunks | Shows the number of all parts of a large job (only shown when status is distributing ) |
To get the detailed data about separation types, you need to make a GET call to the following url:
https://mvsep.com/api/app/algorithms
curl --location --request GET 'https://mvsep.com/api/app/algorithms'
Returns data as an array:
Key | Value |
---|---|
render_id | Separation type value (ID) |
name | The name of the separation type |
algorithm_group_id |
The group where separation type belongs:
|
orientation |
For whom does this separation type intended:
|
order_id | The order of the separation type |
price_coefficient |
Used to calculate how many credits do job take from premium user. Uses this formula : floor(<audiofile duration in seconds> * price_coefficient / 60)?:1
|
algorithm_fields | Contains information about additional fields of the separation type |
algorithm_fields -> name |
Shows which additional field of the separation type:
|
algorithm_fields -> text | Display name of the additional field of the separation type. |
algorithm_fields -> options | JSON Encoded key-value chains of additional field |
algorithm_fields -> default_key | Default value of the additional field. One of the keys of <code>algorithm_fields -> options</code> |
algorithm_descriptions | Contains information about descriptions of the separation type |
algorithm_descriptions -> short_description | Small description of the separation type that does not use HTML. |
algorithm_descriptions -> long_description | Detailed description of the separation type that uses HTML. |
algorithm_descriptions -> lang | Specified language code of the description. |
To get information about latest news about MVSEP, you need to make a GET call to the following url:
https://mvsep.com/api/app/news
Field | Type | Description |
---|---|---|
lang | String | (optional) 2-letter language code (en, ru) |
start | Integer | (optional) Starting point offset, defaults to 0 (i.e. start from latest) |
limit | Integer | (optional) Maximum amount of results returned, defaults to 10, maximum is 20. |
curl --location --request GET 'https://mvsep.com/api/app/news?lang=en&start=2&limit=1'
Returns data as an array:
Key | Value |
---|---|
title | Title of the news |
lang | Title of the news |
text | Full description of the news |
created_at | Date of the news |
To get information about demo separations, you need to make a GET call to the following url:
https://mvsep.com/api/app/demo
Field | Type | Description |
---|---|---|
start | Integer | (optional) Starting point offset, defaults to 0 (i.e. start from latest) |
limit | Integer | (optional) Maximum amount of results returned, defaults to 10, maximum is 20. |
curl --location --request GET 'https://mvsep.com/api/app/demo?start=0&limit=2'
Returns data as an array:
Key | Value |
---|---|
hash | Separation Hash |
date | Date of the separation |
input_audio | Input audio URL |
size | Input audio size |
algorithm | Contains basic information about used separation type (refer to the GET SEPARATION TYPES tab for information about returned parameters) |
To authenticate user and get user's API key, you need to make a POST call to the following url:
https://mvsep.com/api/app/login
Field | Type | Description |
---|---|---|
String | Email of the user | |
password | String | Password of the user |
curl --location --request POST 'https://mvsep.com/api/app/login' --form 'email="<Email of the user>"' --form 'password="<Password of the user>"'
Key | Value |
---|---|
success |
|
data | Contains information when credentials are valid |
data -> name | Name of the user |
data -> email | Email of the user |
data -> api_token | The API key of the user. Make sure to store it in secure storage and use for subsequent operations. |
data -> premium_minutes | Credits left for the user |
data -> premium_enabled |
Whether user allowed credits to be spent.
|
data -> long_filenames_enabled |
Whether user wants extra information in filenames:
|
The MVSEP API uses the following error codes:
Error Code | Meaning |
---|---|
400 | Incorrect credentials specified |
https://mvsep.com/api/app/register
Field | Type | Description |
---|---|---|
name | String | Name of the user |
String | Email of the user | |
password | String | Password of the user |
password_confirmation | String | Repeat the password of the user |
curl --location --request GET 'https://mvsep.com/api/app/register' --form 'name="user"'
--form 'email="asdf@example.com"'
--form 'password="ASDFQWEr123"'
--form 'password_confirmation="ASDFQWEr123"'
Key | Value |
---|---|
success |
|
message | Occurs when the form is valid |
The MVSEP API uses the following error codes:
Error Code | Meaning |
---|---|
400 | Form is invalid |
To get user information, you need to make a GET call to the following url:
https://mvsep.com/api/app/user
Field | Type | Description |
---|---|---|
api_token | String | API key of the user |
curl --location --request GET 'https://mvsep.com/api/app/user?api_token=<Your API Token>'
Key | Value |
---|---|
success |
|
data | Contains information when credentials are valid |
data -> name | Name of the user |
data -> email | Email of the user |
data -> api_token | The API key of the user. Make sure to store it in secure storage and use for subsequent operations. |
data -> premium_minutes | Credits left for the user |
data -> premium_enabled |
Whether user allowed credits to be spent.
|
data -> long_filenames_enabled |
Whether user wants extra information in filenames:
|
data -> current_queue | Shows ongoing separations for the user |
The MVSEP API uses the following error codes:
Error Code | Meaning |
---|---|
400 | Invalid API key |
To get basic information separation history of the user, you need to make a GET call to the following url:
https://mvsep.com/api/app/separation_history
Field | Type | Description |
---|---|---|
api_token | String | API key of the user |
start | Integer | (optional) Starting point offset, defaults to 0 (i.e. start from latest) |
limit | Integer | (optional) Maximum amount of results returned, defaults to 10, maximum is 20. |
curl --location --request GET 'https://mvsep.com/api/app/separation_history?api_token=<Your API Token>&start=1&limit=2'
Key | Value |
---|---|
success |
|
data | Contains basic information array about previous separations |
data -> hash | Separation Hash |
data -> job_exists | Contains basic information array about previous separations |
data -> credits | How many credits were used for the job, null if separation does not exist |
data -> time_left | Approximate time left until job is deleted |
data -> algorithm | Contains basic information about used separation type (refer to the GET SEPARATION TYPES tab for information about returned parameters) |
The MVSEP API uses the following error codes:
Error Code | Meaning |
---|---|
400 | Invalid API key |
To enable premium usage for the user, you need to make a POST call to the following url:
https://mvsep.com/api/app/enable_premium
Field | Type | Description |
---|---|---|
api_token | String | API key of the user |
curl --location --request POST 'https://mvsep.com/api/app/enable_premium' --form 'api_token="<Your API Token>"'
Key | Value |
---|---|
success |
|
message | Informs about the status of the operation |
The MVSEP API uses the following error codes:
Error Code | Meaning |
---|---|
400 | Invalid API key |
To disable premium usage for the user, you need to make a POST call to the following url:
https://mvsep.com/api/app/disable_premium
Field | Type | Description |
---|---|---|
api_token | String | API key of the user |
curl --location --request POST 'https://mvsep.com/api/app/disable_premium' --form 'api_token="<Your API Token>"'
Key | Value |
---|---|
success |
|
message | Informs about the status of the operation |
The MVSEP API uses the following error codes:
Error Code | Meaning |
---|---|
400 | Invalid API key |
To enable long filenames for the user, you need to make a POST call to the following url:
https://mvsep.com/api/app/enable_long_filenames
Field | Type | Description |
---|---|---|
api_token | String | API key of the user |
curl --location --request POST 'https://mvsep.com/api/app/enable_long_filenames' --form 'api_token="<Your API Token>"'
Key | Value |
---|---|
success |
|
message | Informs about the status of the operation |
The MVSEP API uses the following error codes:
Error Code | Meaning |
---|---|
400 | Invalid API key |
To disable long filenames for the user, you need to make a POST call to the following url:
https://mvsep.com/api/app/disable_long_filenames
Field | Type | Description |
---|---|---|
api_token | String | API key of the user |
curl --location --request POST 'https://mvsep.com/api/app/disable_long_filenames' --form 'api_token="<Your API Token>"'
Key | Value |
---|---|
success |
|
message | Informs about the status of the operation |
The MVSEP API uses the following error codes:
Error Code | Meaning |
---|---|
400 | Invalid API key |
turbo@mvsep.com