### LALAL.AI API

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'.

### Endpoints
#### `/api/v1/upload/`
- **POST**: Upload a file to the server.
  - **Parameters**: 
    - `Content-Disposition`: 'attachment; filename=' - a name for the file (see RFC 6266).
  - **Responses**: 
    - `200`: OK
    - `400`: Bad Request
    - `422`: Unprocessable Entity
  - **Description**: The uploaded file is called a "source file".

#### `/api/v1/check/`
- **POST**: Check the status of a task by ID.
  - **Responses**:
    - `200`: OK
    - `400`: Bad Request
    - `422`: Unprocessable Entity
    - `429`: Too Many Requests
  - **Description**: This endpoint allows you to check the status of a task by its ID.

#### `/api/v1/cancel/`
- **POST**: Cancel tasks by ID.
  - **Responses**: 
    - `200`: OK
    - `400`: Bad Request
    - `422`: Unprocessable Entity

#### `/api/v1/delete/`
- **POST**: Delete source file and resulting tracks from storage.
  - **Responses**:
    - `200`: OK
    - `400`: Bad Request
    - `422`: Unprocessable Entity
  - **Description**: WARNING: All running tasks related to the source file will be cancelled.

#### `/api/v1/limits/minutes_left/`
- **POST**: Get number of processing minutes available to consume.
  - **Responses**:
    - `200`: OK
    - `400`: Bad Request
    - `422`: Unprocessable Entity

#### `/api/v1/split/stem_separator/`
- **POST**: Split a file into stems using the stem separator presets.
  - **Responses**:
    - `200`: OK
    - `400`: Bad Request

#### `/api/v1/split/demuser/`
- **POST**: Clean voice from background music.
  - **Responses**:
    - `200`: OK
    - `400`: Bad Request

#### `/api/v1/split/voice_clean/`
- **POST**: Clean voice from background noise.
  - **Responses**:
    - `200`: OK
    - `400`: Bad Request
    - `422`: Unprocessable Entity

### API Components
#### Schemas
- `UploadResponse`  
  - **ID**: string  
  - **Name**: string  
  - **Size**: integer  
  - **Duration**: integer  
  - **Expires**: integer

- `ApiV1ErrorResponse`  
  - **Detail**: string  
  - **Code**: string

- `CommonErrorResponse`  
  - **Detail**: object/string/array

- `CheckV1Response`  
  - **Result**: object
