openapi: 3.1.0 info: title: LALAL.AI API version: 1.1.0 description: ' This is the LALAL.AI API. To authenticate, provide your license key in the `X-License-Key` header of each request. Typical usage example: 1) Upload a file using the ''/upload/'' endpoint to get a ''source_id''. 2) Start a splitting task using the ''/split/'' endpoint with the obtained ''source_id'' and desired presets. 3) Check the status of your task using the ''/check/'' endpoint with the returned ''task_id''. 4) Once the task is complete, download the processed files using urls from the ''/check/'' response. 5) (If needed), you can delete the source file and all its resulting tracks from our servers, using the ''/delete/'' endpoint with the ''source_id''. Notes: You can use the same source_id for concurrent splitting tasks. You can check multiple task IDs in a single ''/check/'' request by providing a list of ''task_ids''. ' paths: /api/v1/upload/: post: operationId: upload_upload summary: Upload a file to the server. parameters: - name: Content-Disposition in: header required: true schema: type: string description: '''attachment; filename='' - a name for the file (see RFC 6266).' example: attachment; filename=song.mp3 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/UploadResponse' '400': description: Bad Request content: application/json: schema: anyOf: - $ref: '#/components/schemas/ApiV1ErrorResponse' - $ref: '#/components/schemas/CommonErrorResponse' title: Response '422': description: Unprocessable Entity content: application/json: schema: $ref: '#/components/schemas/CommonErrorResponse' description: "\n The uploaded file in other endpoints is called a \"source file\".\n You can use the source file\ \ ID from the response to create split tasks.\n The file will be deleted when the expiration time from the response\ \ is reached.\n Upload limit is 10GB per request.\n " tags: - Common security: - ApiKeyHeaderAuth: [] requestBody: content: application/octet-stream: schema: type: string format: binary description: File binary data required: true description: Upload binary data in the request body. Pass the file name in the 'Content-Disposition' header. /api/v1/check/: post: operationId: check_check summary: Check the status of a task by id parameters: [] responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/CheckV1Response' '400': description: Bad Request content: application/json: schema: anyOf: - $ref: '#/components/schemas/ApiV1ErrorResponse' - $ref: '#/components/schemas/CommonErrorResponse' title: Response '422': description: Unprocessable Entity content: application/json: schema: $ref: '#/components/schemas/CommonErrorResponse' '429': description: Too Many Requests content: application/json: schema: $ref: '#/components/schemas/CommonErrorResponse' description: "\n This endpoint allows you to check the status of a specific task by its ID.\n Checking is only\ \ possible within 24h after task creation, otherwise an error will be returned.\n The current rate limit for this\ \ endpoint is 30 requests per minute. This limit may be increased in the future.\n " tags: - Common requestBody: content: application/json: schema: $ref: '#/components/schemas/CheckV1Request' required: true security: - ApiKeyHeaderAuth: [] /api/v1/cancel/: post: operationId: cancel_cancel summary: Cancel tasks by id parameters: [] responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/CancelResponse' '400': description: Bad Request content: application/json: schema: anyOf: - $ref: '#/components/schemas/ApiV1ErrorResponse' - $ref: '#/components/schemas/CommonErrorResponse' title: Response '422': description: Unprocessable Entity content: application/json: schema: $ref: '#/components/schemas/CommonErrorResponse' tags: - Common requestBody: content: application/json: schema: $ref: '#/components/schemas/CancelRequest' required: true security: - ApiKeyHeaderAuth: [] /api/v1/cancel/all/: post: operationId: cancel_cancel_all summary: Cancel all user tasks in progress state parameters: [] responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/CancelResponse' '400': description: Bad Request content: application/json: schema: anyOf: - $ref: '#/components/schemas/ApiV1ErrorResponse' - $ref: '#/components/schemas/CommonErrorResponse' title: Response tags: - Common security: - ApiKeyHeaderAuth: [] /api/v1/delete/: post: operationId: delete_delete summary: Delete source file and resulting tracks from storage. parameters: [] responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/SuccessResponse' '400': description: Bad Request content: application/json: schema: anyOf: - $ref: '#/components/schemas/ApiV1ErrorResponse' - $ref: '#/components/schemas/CommonErrorResponse' title: Response '422': description: Unprocessable Entity content: application/json: schema: $ref: '#/components/schemas/CommonErrorResponse' description: "\n WARNING: All running tasks related to the source file will be cancelled. Do not call delete on source\ \ files with processing tasks.\n This only deletes the media files, not the database records.\n The files are\ \ removed from storage immediately, but download links will remain valid for one hour after deletion due to CDN caching.\n\ \ The /check/ endpoint will still return a valid check result for 24 hours, but the download links will lead to\ \ a 404 error after deletion.\n " tags: - Common requestBody: content: application/json: schema: $ref: '#/components/schemas/DeleteParameters' required: true security: - ApiKeyHeaderAuth: [] /api/v1/limits/minutes_left/: post: operationId: limits_get_minutes_left summary: Get number of processing minutes available to consume. parameters: [] responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/LimitsResponse' '400': description: Bad Request content: application/json: schema: anyOf: - $ref: '#/components/schemas/ApiV1ErrorResponse' - $ref: '#/components/schemas/CommonErrorResponse' title: Response '422': description: Unprocessable Entity content: application/json: schema: $ref: '#/components/schemas/CommonErrorResponse' tags: - Common security: - ApiKeyHeaderAuth: [] /api/v1/split/stem_separator/: post: operationId: split_split_enhanced summary: Split a file into stems using the stem separator presets parameters: [] responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Task' '400': description: Bad Request content: application/json: schema: anyOf: - $ref: '#/components/schemas/ApiV1ErrorResponse' - $ref: '#/components/schemas/CommonErrorResponse' title: Response description: "\n Result of /check/ includes 2 tracks:\n - stem:{\"type\":\"stem\", \"label\":\"\",\ \ \"url\":\"...\"}\n - without stem:{\"type\":\"back\", \"label\":\"no_\", \"url\":\"...\"}\n\n LEAD_BACK\ \ VOCALS:\n For 'vocals' stem you can use parameter multivocal=\"lead_back\" and receive both lead and backing\ \ vocals as separate stems.\n Result of /check/ includes 4 tracks. Backing vocals track is optional and could be\ \ suppressed if not found in the audio:\n lead vocals:{\"type\":\"stem\", \"label\":\"vocals@0\", \"url\":\"...\"\ }\n backing vocals:{\"type\":\"stem\", \"label\":\"vocals@1\", \"url\":\"...\"}\n instrumental:{\"type\":\"\ back\", \"label\":\"no_vocals\", \"url\":\"...\"}\n instrumental + backing vocals:{\"type\":\"back\", \"label\"\ :\"mix_no_lead\", \"url\":\"...\"}\n " tags: - Stem Separation requestBody: content: application/json: schema: $ref: '#/components/schemas/StemSeparatorSplitParameters' required: true security: - ApiKeyHeaderAuth: [] /api/v1/split/demuser/: post: operationId: split_split_demuser summary: Clean voice from background music parameters: [] responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Task' '400': description: Bad Request content: application/json: schema: anyOf: - $ref: '#/components/schemas/ApiV1ErrorResponse' - $ref: '#/components/schemas/CommonErrorResponse' title: Response description: "\n Typical usage case - is voice with background music.\n Demuser will separate voice (stem) and\ \ music (back).\n Result of /check/ includes 2 tracks:\n - stem:{\"type\":\"stem\", \"label\":\"music\", \"\ url\":\"...\"}\n - back:{\"type\":\"back\", \"label\":\"no_music\", \"url\":\"...\"}\n " tags: - Stem Separation requestBody: content: application/json: schema: $ref: '#/components/schemas/DemuserSplitParameters' required: true security: - ApiKeyHeaderAuth: [] /api/v1/split/voice_clean/: post: operationId: split_split_voice_clean summary: Clean voice from background noise parameters: [] responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Task' '400': description: Bad Request content: application/json: schema: anyOf: - $ref: '#/components/schemas/ApiV1ErrorResponse' - $ref: '#/components/schemas/CommonErrorResponse' title: Response '422': description: Unprocessable Entity content: application/json: schema: $ref: '#/components/schemas/CommonErrorResponse' description: "\n Typical usage case - is voice with background noise.\n Voice clean will separate clean voice\ \ (stem) and noise (back).\n Result of /check/ includes 2 tracks:\n - stem:{\"type\":\"stem\", \"label\":\"\ voice\", \"url\":\"...\"}\n - back:{\"type\":\"back\", \"label\":\"no_voice\", \"url\":\"...\"}\n " tags: - Stem Separation requestBody: content: application/json: schema: $ref: '#/components/schemas/VoiceCleanSplitParameters' required: true security: - ApiKeyHeaderAuth: [] /api/v1/split/multistem/: post: operationId: split_split_multistem summary: Split a file into multiple stems in one request (multistem feature) parameters: [] responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Task' '400': description: Bad Request content: application/json: schema: anyOf: - $ref: '#/components/schemas/ApiV1ErrorResponse' - $ref: '#/components/schemas/CommonErrorResponse' title: Response '422': description: Unprocessable Entity content: application/json: schema: $ref: '#/components/schemas/CommonErrorResponse' description: "\n WARNING: The stems are internally extracted one by one, so the processing time is proportional to\ \ the number of stems selected.\n\n You will be charged an equal amount of minutes for each stem.\n For example,\ \ if you have an audio file with a duration of 1 minute,\n with stem_list=[\"vocals\", \"drum\"], you will be charged\ \ 2 minutes (1 minute for \"vocals\", 1 minute for \"drum\").\n At the /check/ endpoint you will receive \ \ tracks with 1 additional track which is the source without all selected stems.\n Example response tracks for\ \ stem_list=[\"vocals\", \"drum\"]:\n - stem:{\"type\":\"stem\", \"label\":\"vocals\", \"url\":\"...\"}\n -\ \ stem:{\"type\":\"stem\", \"label\":\"drum\", \"url\":\"...\"}\n - rest of source:{\"type\":\"back\", \"label\"\ :\"no_multistem\", \"url\":\"...\"}\n " tags: - Stem Separation requestBody: content: application/json: schema: $ref: '#/components/schemas/MultistemSplitParameters' required: true security: - ApiKeyHeaderAuth: [] /api/v1/split/batch/stem_separator/: post: operationId: batch_split_split_batch_enhanced summary: Split multiple files into stems using the stem separator presets parameters: [] responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/BatchTasksResponse' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/CommonErrorResponse' '422': description: Unprocessable Entity content: application/json: schema: $ref: '#/components/schemas/CommonErrorResponse' description: "\n Batch version of /split/stem_separator/. Accepts a list of split parameters and returns results\ \ for each item.\n Each item is processed independently - if one fails, others will still be processed.\n Results\ \ are returned in the same order as input items.\n\n Each result contains either:\n - success: {\"status\":\ \ \"success\", \"task_id\": \"...\", \"source_id\": \"...\"}\n - error: {\"status\": \"error\", \"error\": \"...\"\ , \"code\": \"...\", \"source_id\": \"...\"}\n " tags: - Batch Stem Separation requestBody: content: application/json: schema: $ref: '#/components/schemas/BatchStemSeparatorSplitParameters' required: true security: - ApiKeyHeaderAuth: [] /api/v1/split/batch/demuser/: post: operationId: batch_split_split_batch_demuser summary: Clean voice from background music for multiple files parameters: [] responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/BatchTasksResponse' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/CommonErrorResponse' '422': description: Unprocessable Entity content: application/json: schema: $ref: '#/components/schemas/CommonErrorResponse' description: "\n Batch version of /split/demuser/. Accepts a list of split parameters and returns results for each\ \ item.\n Each item is processed independently - if one fails, others will still be processed.\n Results are\ \ returned in the same order as input items.\n\n Each result contains either:\n - success: {\"status\": \"success\"\ , \"task_id\": \"...\", \"source_id\": \"...\"}\n - error: {\"status\": \"error\", \"error\": \"...\", \"code\"\ : \"...\", \"source_id\": \"...\"}\n " tags: - Batch Stem Separation requestBody: content: application/json: schema: $ref: '#/components/schemas/BatchDemuserSplitParameters' required: true security: - ApiKeyHeaderAuth: [] /api/v1/split/batch/voice_clean/: post: operationId: batch_split_split_batch_voice_clean summary: Clean voice from background noise for multiple files parameters: [] responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/BatchTasksResponse' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/CommonErrorResponse' '422': description: Unprocessable Entity content: application/json: schema: $ref: '#/components/schemas/CommonErrorResponse' description: "\n Batch version of /split/voice_clean/. Accepts a list of split parameters and returns results for\ \ each item.\n Each item is processed independently - if one fails, others will still be processed.\n Results\ \ are returned in the same order as input items.\n\n Each result contains either:\n - success: {\"status\":\ \ \"success\", \"task_id\": \"...\", \"source_id\": \"...\"}\n - error: {\"status\": \"error\", \"error\": \"...\"\ , \"code\": \"...\", \"source_id\": \"...\"}\n " tags: - Batch Stem Separation requestBody: content: application/json: schema: $ref: '#/components/schemas/BatchVoiceCleanSplitParameters' required: true security: - ApiKeyHeaderAuth: [] /api/v1/change_voice/: post: operationId: change_voice_change_voice summary: Changes voice in the audio file using voice pack parameters: [] responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/TaskResponse' '400': description: Bad Request content: application/json: schema: anyOf: - $ref: '#/components/schemas/ApiV1ErrorResponse' - $ref: '#/components/schemas/CommonErrorResponse' title: Response '422': description: Unprocessable Entity content: application/json: schema: $ref: '#/components/schemas/CommonErrorResponse' description: "\n For 'voice_pack_id' parameter use 'pack_id' from /voice_packs/list/ endpoint or one of legal packs:\ \ ['ALEX_KAYE', 'STASIA_FAYE', 'NICOLAAS_HAAS', 'NIK_ZEL', 'OLIA_CHEBO', 'YVAR_DE_GROOT', 'VETRANA']\n\n Result\ \ of /check/ includes 1 track with label 'converted_mix'.\n {\"label\":\"converted_mix\", \"type\":\"back\", \"\ url\":\"...\"}\n " tags: - Voice Change requestBody: content: application/json: schema: $ref: '#/components/schemas/VoiceChangeParameters' required: true security: - ApiKeyHeaderAuth: [] /api/v1/voice_packs/list/: post: operationId: voice_packs_list_packs summary: Lists voice packs available to the user parameters: [] responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/VoicePackListResponse' '400': description: Bad Request content: application/json: schema: anyOf: - $ref: '#/components/schemas/ApiV1ErrorResponse' - $ref: '#/components/schemas/CommonErrorResponse' title: Response '422': description: Unprocessable Entity content: application/json: schema: $ref: '#/components/schemas/CommonErrorResponse' description: Helps to find pack_id for /change_voice/ endpoint. tags: - Voice Change security: - ApiKeyHeaderAuth: [] components: schemas: UploadResponse: properties: id: description: ID of the uploaded file. example: e1fc1d8f-502e-4de0-bf3b-b30543d11c77 title: Id type: string name: description: Name of the uploaded file. example: my_audio.mp3 title: Name type: string size: description: Size of the uploaded file in bytes. example: 12345678 title: Size type: integer duration: description: Duration of the uploaded media file in seconds. example: 180 title: Duration type: integer expires: description: File expiration time in Unix epoch format with UTC timezone. example: '1761217415' title: Expires type: integer required: - id - name - size - duration - expires title: UploadResponse type: object ApiV1ErrorResponse: properties: detail: description: Error message. example: Idempotency key has already been used. title: Detail type: string code: description: Error code. example: idempotency_key_used title: Code type: string required: - detail - code title: ApiV1ErrorResponse type: object CommonErrorResponse: properties: detail: anyOf: - type: string - additionalProperties: true type: object - items: additionalProperties: true type: object type: array description: Error details example: detail: - loc: - body - split_input - source_id msg: Field required type: missing - loc: - body - split_input - presets msg: Field required type: missing title: Detail required: - detail title: CommonErrorResponse type: object CheckV1CancelledResult: properties: source_id: description: ID of the source file associated with the task examples: - ecb6c2c5-6263-48b9-80c9-f54248e30892 title: Source Id type: string presets: discriminator: mapping: split: discriminator: mapping: demuser: '#/components/schemas/DemuserSplitterPresetsV1' multistem: '#/components/schemas/MultistemSplitterPresetsV1' stem_separator: '#/components/schemas/StemSeparatorSplitterPresetsV1' voice_clean: '#/components/schemas/VoiceCleanPresetsV1' propertyName: label oneOf: - $ref: '#/components/schemas/DemuserSplitterPresetsV1' - $ref: '#/components/schemas/VoiceCleanPresetsV1' - $ref: '#/components/schemas/StemSeparatorSplitterPresetsV1' - $ref: '#/components/schemas/MultistemSplitterPresetsV1' voice_convert: '#/components/schemas/VoiceChangePresetsV1' propertyName: task_type oneOf: - $ref: '#/components/schemas/VoiceChangePresetsV1' - discriminator: mapping: demuser: '#/components/schemas/DemuserSplitterPresetsV1' multistem: '#/components/schemas/MultistemSplitterPresetsV1' stem_separator: '#/components/schemas/StemSeparatorSplitterPresetsV1' voice_clean: '#/components/schemas/VoiceCleanPresetsV1' propertyName: label oneOf: - $ref: '#/components/schemas/DemuserSplitterPresetsV1' - $ref: '#/components/schemas/VoiceCleanPresetsV1' - $ref: '#/components/schemas/StemSeparatorSplitterPresetsV1' - $ref: '#/components/schemas/MultistemSplitterPresetsV1' title: Presets status: const: cancelled default: cancelled title: Status type: string required: - source_id - presets title: CheckV1CancelledResult type: object CheckV1ErrorResult: properties: source_id: description: ID of the source file associated with the task examples: - ecb6c2c5-6263-48b9-80c9-f54248e30892 title: Source Id type: string presets: discriminator: mapping: split: discriminator: mapping: demuser: '#/components/schemas/DemuserSplitterPresetsV1' multistem: '#/components/schemas/MultistemSplitterPresetsV1' stem_separator: '#/components/schemas/StemSeparatorSplitterPresetsV1' voice_clean: '#/components/schemas/VoiceCleanPresetsV1' propertyName: label oneOf: - $ref: '#/components/schemas/DemuserSplitterPresetsV1' - $ref: '#/components/schemas/VoiceCleanPresetsV1' - $ref: '#/components/schemas/StemSeparatorSplitterPresetsV1' - $ref: '#/components/schemas/MultistemSplitterPresetsV1' voice_convert: '#/components/schemas/VoiceChangePresetsV1' propertyName: task_type oneOf: - $ref: '#/components/schemas/VoiceChangePresetsV1' - discriminator: mapping: demuser: '#/components/schemas/DemuserSplitterPresetsV1' multistem: '#/components/schemas/MultistemSplitterPresetsV1' stem_separator: '#/components/schemas/StemSeparatorSplitterPresetsV1' voice_clean: '#/components/schemas/VoiceCleanPresetsV1' propertyName: label oneOf: - $ref: '#/components/schemas/DemuserSplitterPresetsV1' - $ref: '#/components/schemas/VoiceCleanPresetsV1' - $ref: '#/components/schemas/StemSeparatorSplitterPresetsV1' - $ref: '#/components/schemas/MultistemSplitterPresetsV1' title: Presets status: const: error default: error title: Status type: string error: $ref: '#/components/schemas/TaskMetaError' required: - source_id - presets - error title: CheckV1ErrorResult type: object CheckV1ProgressResult: properties: source_id: description: ID of the source file associated with the task examples: - ecb6c2c5-6263-48b9-80c9-f54248e30892 title: Source Id type: string presets: discriminator: mapping: split: discriminator: mapping: demuser: '#/components/schemas/DemuserSplitterPresetsV1' multistem: '#/components/schemas/MultistemSplitterPresetsV1' stem_separator: '#/components/schemas/StemSeparatorSplitterPresetsV1' voice_clean: '#/components/schemas/VoiceCleanPresetsV1' propertyName: label oneOf: - $ref: '#/components/schemas/DemuserSplitterPresetsV1' - $ref: '#/components/schemas/VoiceCleanPresetsV1' - $ref: '#/components/schemas/StemSeparatorSplitterPresetsV1' - $ref: '#/components/schemas/MultistemSplitterPresetsV1' voice_convert: '#/components/schemas/VoiceChangePresetsV1' propertyName: task_type oneOf: - $ref: '#/components/schemas/VoiceChangePresetsV1' - discriminator: mapping: demuser: '#/components/schemas/DemuserSplitterPresetsV1' multistem: '#/components/schemas/MultistemSplitterPresetsV1' stem_separator: '#/components/schemas/StemSeparatorSplitterPresetsV1' voice_clean: '#/components/schemas/VoiceCleanPresetsV1' propertyName: label oneOf: - $ref: '#/components/schemas/DemuserSplitterPresetsV1' - $ref: '#/components/schemas/VoiceCleanPresetsV1' - $ref: '#/components/schemas/StemSeparatorSplitterPresetsV1' - $ref: '#/components/schemas/MultistemSplitterPresetsV1' title: Presets status: const: progress default: progress title: Status type: string progress: description: Progress percentage of the task, integer number. Zero progress means task is in queue. examples: - 42 maximum: 100 minimum: 0 title: Progress type: integer required: - source_id - presets - progress title: CheckV1ProgressResult type: object CheckV1Response: properties: result: additionalProperties: discriminator: mapping: cancelled: '#/components/schemas/CheckV1CancelledResult' error: '#/components/schemas/CheckV1ErrorResult' progress: '#/components/schemas/CheckV1ProgressResult' server_error: '#/components/schemas/ErrorResult' success: '#/components/schemas/CheckV1SuccessResult' propertyName: status oneOf: - $ref: '#/components/schemas/CheckV1ProgressResult' - $ref: '#/components/schemas/CheckV1ErrorResult' - $ref: '#/components/schemas/CheckV1CancelledResult' - $ref: '#/components/schemas/CheckV1SuccessResult' - $ref: '#/components/schemas/ErrorResult' description: Mapping of task IDs to their respective status and details. example: 2fe8f214-1771-4900-9e7e-570f823bd359: presets: dereverb_enabled: false encoder_format: null enhanced_processing_enabled: false label: enhanced multivocal: null splitter: perseus stem: vocals task_type: split result: duration: 16 tracks: - label: vocals type: stem url: http://d.lalal.ai/2fe8f214-1771-4900-9e7e-570f823bd359/abcd1234/vocals - label: no_vocals type: back url: http://d.lalal.ai/2fe8f214-1771-4900-9e7e-570f823bd359/abcd1234/no_vocals source_id: ecb6c2c5-6263-48b9-80c9-f54248e30892 status: success 8cad7e3d-a5a3-4e79-9463-59cd4da16977: error: '[''The file has not been uploaded properly or has already been deleted. Please upload it again.'']' status: server_error cb443802-e5be-44c2-bdd8-cb1d343c7d25: presets: dereverb_enabled: false encoder_format: null enhanced_processing_enabled: false label: enhanced multivocal: null splitter: perseus stem: vocals task_type: split progress: 42 source_id: 9dec9880-12ad-4a7e-89af-c50c9380ec14 status: progress f4978ff5-8e0b-4fdc-913a-e350eeb16d31: error: code: inference_error detail: Unable to detect voice/vocals in the uploaded files id: presets: dereverb_enabled: false encoder_format: null enhanced_processing_enabled: false label: enhanced multivocal: null splitter: perseus stem: vocals task_type: split source_id: 7ab9e030-c472-4281-8b08-108c3bd019bf status: error title: Result type: object required: - result title: CheckV1Response type: object CheckV1SuccessResult: properties: source_id: description: ID of the source file associated with the task examples: - ecb6c2c5-6263-48b9-80c9-f54248e30892 title: Source Id type: string presets: discriminator: mapping: split: discriminator: mapping: demuser: '#/components/schemas/DemuserSplitterPresetsV1' multistem: '#/components/schemas/MultistemSplitterPresetsV1' stem_separator: '#/components/schemas/StemSeparatorSplitterPresetsV1' voice_clean: '#/components/schemas/VoiceCleanPresetsV1' propertyName: label oneOf: - $ref: '#/components/schemas/DemuserSplitterPresetsV1' - $ref: '#/components/schemas/VoiceCleanPresetsV1' - $ref: '#/components/schemas/StemSeparatorSplitterPresetsV1' - $ref: '#/components/schemas/MultistemSplitterPresetsV1' voice_convert: '#/components/schemas/VoiceChangePresetsV1' propertyName: task_type oneOf: - $ref: '#/components/schemas/VoiceChangePresetsV1' - discriminator: mapping: demuser: '#/components/schemas/DemuserSplitterPresetsV1' multistem: '#/components/schemas/MultistemSplitterPresetsV1' stem_separator: '#/components/schemas/StemSeparatorSplitterPresetsV1' voice_clean: '#/components/schemas/VoiceCleanPresetsV1' propertyName: label oneOf: - $ref: '#/components/schemas/DemuserSplitterPresetsV1' - $ref: '#/components/schemas/VoiceCleanPresetsV1' - $ref: '#/components/schemas/StemSeparatorSplitterPresetsV1' - $ref: '#/components/schemas/MultistemSplitterPresetsV1' title: Presets status: const: success default: success title: Status type: string result: $ref: '#/components/schemas/SplitTracksResult' required: - source_id - presets - result title: CheckV1SuccessResult type: object DemuserSplitterPresetsV1: properties: splitter: allOf: - $ref: '#/components/schemas/SplitterType' default: auto description: Splitter model to use. 'auto' selects the latest available model for the selected stems. dereverb_enabled: default: false description: ' Enabling dereverb removes echo from the audio for clarity, which may slightly alter the voice. Disabling dereverb preserves the natural echo of the recording for authenticity. Only for {''vocals'', ''voice''} stems.' title: Dereverb Enabled type: boolean encoder_format: anyOf: - $ref: '#/components/schemas/EncoderFormat' - type: 'null' default: null description: Format for output audio. If None - convert to source file format. stem: const: music description: Stem to extract. Only 'music' stem is supported. example: music title: Stem type: string required: - stem title: DemuserSplitterPresetsV1 type: object EncoderFormat: enum: - mp3 - wav - flac - aac - ogg title: EncoderFormat type: string ErrorResult: properties: status: const: server_error default: server_error title: Status type: string error: description: Error message describing why the cancellation failed examples: - Permission denied - Task is not in progress state - Failed to extract information about task title: Error type: string required: - error title: ErrorResult type: object ExtractionLevel: enum: - deep_extraction - clear_cut title: ExtractionLevel type: string FilteringLevel: enum: - 0 - 1 - 2 title: FilteringLevel type: integer MultistemSplitterPresetsV1: properties: splitter: allOf: - $ref: '#/components/schemas/SplitterType' default: auto description: Splitter model to use. 'auto' selects the latest available model for the selected stems. dereverb_enabled: default: false description: ' Enabling dereverb removes echo from the audio for clarity, which may slightly alter the voice. Disabling dereverb preserves the natural echo of the recording for authenticity. Only for {''vocals'', ''voice''} stems.' title: Dereverb Enabled type: boolean encoder_format: anyOf: - $ref: '#/components/schemas/EncoderFormat' - type: 'null' default: null description: Format for output audio. If None - convert to source file format. stem_list: description: List of stems to extract. Any subset of supported stems is possible. example: - vocals - drum - piano - bass - electric_guitar - acoustic_guitar items: enum: - vocals - drum - piano - bass - electric_guitar - acoustic_guitar type: string maxItems: 6 minItems: 1 title: Stem List type: array extraction_level: allOf: - $ref: '#/components/schemas/ExtractionLevel' default: deep_extraction description: ' Clear Cut: minimizes cross-bleeding between stems, resulting in a cleaner output, but may suppress finer details. Deep Extraction: captures more intricate details but increases the risk of cross-bleeding, which may lead to some overlap between stems. Andromeda splitter is not affected by this parameter and has its own fixed extraction behavior. ' required: - stem_list title: MultistemSplitterPresetsV1 type: object SplitTrack: properties: type: $ref: '#/components/schemas/SplitTrackType' label: title: Label type: string url: title: Url type: string playlist_file: anyOf: - type: string - type: 'null' title: Playlist File name: anyOf: - type: string - type: 'null' title: Name size: anyOf: - type: integer - type: 'null' title: Size waveform: anyOf: - type: string - type: 'null' title: Waveform required: - type - label - url title: SplitTrack type: object SplitTrackType: enum: - stem - back title: SplitTrackType type: string SplitTracksResult: properties: tracks: items: $ref: '#/components/schemas/SplitTrack' title: Tracks type: array duration: title: Duration type: integer required: - tracks - duration title: SplitTracksResult type: object SplitterType: enum: - andromeda - perseus - orion - phoenix - lyra - lynx title: SplitterType type: string StemSeparatorSplitterPresetsV1: properties: splitter: allOf: - $ref: '#/components/schemas/SplitterType' default: auto description: Splitter model to use. 'auto' selects the latest available model for the selected stems. dereverb_enabled: default: false description: ' Enabling dereverb removes echo from the audio for clarity, which may slightly alter the voice. Disabling dereverb preserves the natural echo of the recording for authenticity. Only for {''vocals'', ''voice''} stems.' title: Dereverb Enabled type: boolean encoder_format: anyOf: - $ref: '#/components/schemas/EncoderFormat' - type: 'null' default: null description: Format for output audio. If None - convert to source file format. stem: description: Stem to extract. ['synthesizer', 'strings', 'wind'] are available only phoenix splitter. enum: - vocals - drum - piano - bass - electric_guitar - acoustic_guitar - synthesizer - strings - wind example: vocals title: Stem type: string multivocal: anyOf: - const: lead_back type: string - type: 'null' default: null description: Use parameter 'lead_back' and receive both lead and backing vocals as separate stems vocals@0 and vocals@1 title: Multivocal extraction_level: allOf: - $ref: '#/components/schemas/ExtractionLevel' default: deep_extraction description: ' Clear Cut: minimizes cross-bleeding between stems, resulting in a cleaner output, but may suppress finer details. Deep Extraction: captures more intricate details but increases the risk of cross-bleeding, which may lead to some overlap between stems. Andromeda splitter is not affected by this parameter and has its own fixed extraction behavior. ' required: - stem title: StemSeparatorSplitterPresetsV1 type: object TaskMetaError: properties: detail: title: Detail type: string code: anyOf: - type: string - type: 'null' title: Code id: anyOf: - type: string - type: 'null' title: Id required: - detail title: TaskMetaError type: object TonalityReference: enum: - source_file - voice_pack title: TonalityReference type: string VoiceChangePresetsV1: properties: voice_pack_id: description: ' ID of the voice pack to be used for voice conversion. Could be one of the legal packs, provided by us. Could be a custom voice pack from voice cloner, trained by the user(see /voice_packs/list/). ' examples: - - ALEX_KAYE - STASIA_FAYE - NICOLAAS_HAAS - NIK_ZEL - OLIA_CHEBO - YVAR_DE_GROOT - VETRANA title: Voice Pack Id type: string accent: default: 1.0 description: ' Float value, changing intensity in range from 0.0 to 1.0 0.0 preserves the source file accent and 1.0 applies the voice pack accent. ' example: 0.33 maximum: 1.0 minimum: 0.0 title: Accent type: number tonality_reference: allOf: - $ref: '#/components/schemas/TonalityReference' default: source_file description: Tonality reference for voice conversion. dereverb_enabled: default: false description: ' Enabling dereverb removes echo from the audio for clarity, which may slightly alter the voice. Disabling dereverb preserves the natural echo of the recording for authenticity. ' title: Dereverb Enabled type: boolean encoder_format: anyOf: - $ref: '#/components/schemas/EncoderFormat' - type: 'null' default: null description: Format for output audio. If None - convert to source file format. required: - voice_pack_id title: VoiceChangePresetsV1 type: object VoiceCleanPresetsV1: properties: splitter: allOf: - $ref: '#/components/schemas/SplitterType' default: auto description: Splitter model to use. 'auto' selects the latest available model for the selected stems. dereverb_enabled: default: false description: ' Enabling dereverb removes echo from the audio for clarity, which may slightly alter the voice. Disabling dereverb preserves the natural echo of the recording for authenticity. Only for {''vocals'', ''voice''} stems.' title: Dereverb Enabled type: boolean encoder_format: anyOf: - $ref: '#/components/schemas/EncoderFormat' - type: 'null' default: null description: Format for output audio. If None - convert to source file format. stem: const: voice description: Stem to extract. Only 'voice' stem is supported. example: voice title: Stem type: string noise_cancelling_level: allOf: - $ref: '#/components/schemas/FilteringLevel' default: 0 description: Level of noise cancelling to apply. required: - stem title: VoiceCleanPresetsV1 type: object CheckV1Request: properties: task_ids: examples: - - 2fe8f214-1771-4900-9e7e-570f823bd359 - 8cad7e3d-a5a3-4e79-9463-59cd4da16977 - cb443802-e5be-44c2-bdd8-cb1d343c7d25 - f4978ff5-8e0b-4fdc-913a-e350eeb16d31 items: format: uuid4 type: string maxItems: 200 title: Task Ids type: array required: - task_ids title: CheckV1Request type: object CancelResponse: properties: result: additionalProperties: discriminator: mapping: server_error: '#/components/schemas/ErrorResult' success: '#/components/schemas/CancelSuccess' propertyName: status oneOf: - $ref: '#/components/schemas/CancelSuccess' - $ref: '#/components/schemas/ErrorResult' examples: - 550e8400-e29b-41d4-a716-446655440000: status: success 6ba7b810-9dad-11d1-80b4-00c04fd430c8: error: Task is not in progress state status: server_error title: Result type: object required: - result title: CancelResponse type: object CancelSuccess: properties: status: const: success default: success title: Status type: string title: CancelSuccess type: object CancelRequest: properties: task_ids: examples: - - 550e8400-e29b-41d4-a716-446655440000 - 6ba7b810-9dad-11d1-80b4-00c04fd430c8 items: format: uuid4 type: string title: Task Ids type: array required: - task_ids title: CancelRequest type: object SuccessResponse: properties: {} title: SuccessResponse type: object DeleteParameters: properties: source_id: description: ID of the source file. example: 550e8400-e29b-41d4-a716-446655440000 format: uuid4 title: Source Id type: string required: - source_id title: DeleteParameters type: object LimitsResponse: properties: minutes_left: description: Number of processing minutes available to consume. example: 1234.5 title: Minutes Left type: number required: - minutes_left title: LimitsResponse type: object Task: properties: task_id: description: ID of the created split task. example: e1fc1d8f-502e-4de0-bf3b-b30543d11c77 title: Task Id type: string required: - task_id title: Task type: object StemSeparatorSplitParameters: properties: source_id: description: ID of the source file to be processed. example: 2fe8f214-1771-4900-9e7e-570f823bd359 format: uuid4 title: Source Id type: string presets: $ref: '#/components/schemas/StemSeparatorSplitterPresetsV1' idempotency_key: anyOf: - format: uuid4 type: string - type: 'null' default: null description: ' Unique uuid4 key to ensure idempotent requests. Prevents duplicate task execution with the same parameters. Can be reused until the task starts. Once processing begins, reusing this key will return an error. ' title: Idempotency Key required: - source_id - presets title: StemSeparatorSplitParameters type: object DemuserSplitParameters: properties: source_id: description: ID of the source file to be processed. example: 2fe8f214-1771-4900-9e7e-570f823bd359 format: uuid4 title: Source Id type: string presets: $ref: '#/components/schemas/DemuserSplitterPresetsV1' idempotency_key: anyOf: - format: uuid4 type: string - type: 'null' default: null description: ' Unique uuid4 key to ensure idempotent requests. Prevents duplicate task execution with the same parameters. Can be reused until the task starts. Once processing begins, reusing this key will return an error. ' title: Idempotency Key required: - source_id - presets title: DemuserSplitParameters type: object VoiceCleanSplitParameters: properties: source_id: description: ID of the source file to be processed. example: 2fe8f214-1771-4900-9e7e-570f823bd359 format: uuid4 title: Source Id type: string presets: $ref: '#/components/schemas/VoiceCleanPresetsV1' idempotency_key: anyOf: - format: uuid4 type: string - type: 'null' default: null description: ' Unique uuid4 key to ensure idempotent requests. Prevents duplicate task execution with the same parameters. Can be reused until the task starts. Once processing begins, reusing this key will return an error. ' title: Idempotency Key required: - source_id - presets title: VoiceCleanSplitParameters type: object MultistemSplitParameters: properties: source_id: description: ID of the source file to be processed. example: 2fe8f214-1771-4900-9e7e-570f823bd359 format: uuid4 title: Source Id type: string presets: $ref: '#/components/schemas/MultistemSplitterPresetsV1' idempotency_key: anyOf: - format: uuid4 type: string - type: 'null' default: null description: ' Unique uuid4 key to ensure idempotent requests. Prevents duplicate task execution with the same parameters. Can be reused until the task starts. Once processing begins, reusing this key will return an error. ' title: Idempotency Key required: - source_id - presets title: MultistemSplitParameters type: object BatchTasksResponse: properties: results: description: List of task start results in the same order as input parameters. items: discriminator: mapping: error: '#/components/schemas/FailedTaskStart' success: '#/components/schemas/SuccessfulTaskStart' propertyName: status oneOf: - $ref: '#/components/schemas/SuccessfulTaskStart' - $ref: '#/components/schemas/FailedTaskStart' title: Results type: array required: - results title: BatchTasksResponse type: object FailedTaskStart: properties: status: const: error default: error title: Status type: string error: description: Error message describing why the task failed to start. example: Idempotency key has already been used. title: Error type: string code: anyOf: - $ref: '#/components/schemas/TaskStartErrorCodes' - $ref: '#/components/schemas/LicenseErrorCodes' description: Error code. example: idempotency_key_used title: Code source_id: description: Source file ID. example: a1b2c3d4-5e6f-7g8h-9i0j-k1l2m3n4o5p6 title: Source Id type: string required: - error - code - source_id title: FailedTaskStart type: object LicenseErrorCodes: enum: - exceeded_duration - batch_not_avaliable - max_duration - exceeded_size title: LicenseErrorCodes type: string SuccessfulTaskStart: properties: status: const: success default: success title: Status type: string task_id: description: ID of the created split task. example: e1fc1d8f-502e-4de0-bf3b-b30543d11c77 title: Task Id type: string source_id: description: Source file ID. example: a1b2c3d4-5e6f-7g8h-9i0j-k1l2m3n4o5p6 title: Source Id type: string required: - task_id - source_id title: SuccessfulTaskStart type: object TaskStartErrorCodes: enum: - idempotency_key_used - internal_error title: TaskStartErrorCodes type: string BatchStemSeparatorSplitParameters: properties: items: description: List of split parameters to process. items: $ref: '#/components/schemas/StemSeparatorSplitParameters' maxItems: 100 minItems: 1 title: Items type: array required: - items title: BatchStemSeparatorSplitParameters type: object BatchDemuserSplitParameters: properties: items: description: List of split parameters to process. items: $ref: '#/components/schemas/DemuserSplitParameters' maxItems: 100 minItems: 1 title: Items type: array required: - items title: BatchDemuserSplitParameters type: object BatchVoiceCleanSplitParameters: properties: items: description: List of split parameters to process. items: $ref: '#/components/schemas/VoiceCleanSplitParameters' maxItems: 100 minItems: 1 title: Items type: array required: - items title: BatchVoiceCleanSplitParameters type: object TaskResponse: properties: task_id: description: ID of the created task. example: e1fc1d8f-502e-4de0-bf3b-b30543d11c77 title: Task Id type: string required: - task_id title: TaskResponse type: object VoiceChangeParameters: properties: source_id: description: ID of the source file to be processed. example: 2fe8f214-1771-4900-9e7e-570f823bd359 format: uuid4 title: Source Id type: string presets: $ref: '#/components/schemas/VoiceChangePresetsV1' description: Presets for converting the source file. idempotency_key: anyOf: - format: uuid4 type: string - type: 'null' default: null description: ' Unique uuid4 key to ensure idempotent requests. Prevents duplicate task execution with the same parameters. Can be reused until the task starts. Once processing begins, reusing this key will return an error. ' title: Idempotency Key required: - source_id - presets title: VoiceChangeParameters type: object VoicePackInfo: properties: name: description: Name of the voice pack. example: Professional Narrator Voice Pack title: Name type: string pack_id: description: ID of the voice pack. example: f5dc9452-9374-4418-9288-02825bbd0016 title: Pack Id type: string created: description: Creation timestamp of the voice pack. example: 1672531199 title: Created type: integer required: - name - pack_id - created title: VoicePackInfo type: object VoicePackListResponse: properties: packs: description: List of voice packs available to the user. items: $ref: '#/components/schemas/VoicePackInfo' title: Packs type: array required: - packs title: VoicePackListResponse type: object securitySchemes: ApiKeyHeaderAuth: type: apiKey in: header name: X-License-Key servers: - url: https://www.lalal.ai description: LALAL.AI API v1 production endpoint