Skip to content

MiniMax File Management ​

This API is the shared file upload and management interface for MiniMax voice (voice cloning), video (MiniMax-H3, etc.), and multimodal understanding capabilities. After uploading material, you can obtain a file_id and reference it as mm_file://{file_id} in subsequent requests.

Upload File ​

Endpoint ​

http
POST /v1/files/upload

Request Headers ​

ParameterTypeRequiredDefaultDescription
Content-TypestringYesmultipart/form-dataData exchange format
AuthorizationstringYes-Authentication info, format is Bearer <API_KEY>

Request Body (multipart/form-data) ​

ParameterTypeRequiredDescription
purposestringYesFile usage purpose. See the table below for enumerated values and supported formats
filebinaryYesFile content

purpose enumerated values:

ValueDescriptionSupported FormatsOther Restrictions
voice_cloneOriginal file for instant voice cloningmp3, m4a, wavDuration ≥10 seconds and ≤5 minutes, ≤20 MB
prompt_audioPrompt audio for voice cloningmp3, m4a, wavDuration <8 seconds, ≤20 MB
t2a_async_inputInput for asynchronous long-text speech synthesistext, zip-
video_understandingVideo multimodal understanding, referenced as mm_file://{file_id} in conversation requestsMP4, AVI, MOV, MKVRetained for up to 7 days
video_generation_inputInput material for video generation (first-frame image / reference image / reference video / reference audio), referenced as mm_file://{file_id} in the url field of the generation request's contentSee the table belowValid for 7 days (after expiry, generation returns file expired and requires re-upload); specifications are validated upon upload, and invalid ones return 400 without being retained; heic/heif dimensions are parsed server-side without client transcoding

video_generation_input format and size limits:

TypeExtensionsSingle File Limit
Imagejpg / jpeg / png / webp / heic / heif30 MB
Reference videomp4 / mov50 MB
Reference audiowav / mp315 MB

Request Example ​

bash
curl --request POST \
  --url https://neolink.com/api/minimax/v1/files/upload \
  --header 'Authorization: Bearer <API_KEY>' \
  --header 'Content-Type: multipart/form-data' \
  --form 'purpose=voice_clone' \
  --form 'file=@/path/to/audio.mp3'

Successful Response (HTTP 200) ​

json
{
  "file": {
    "file_id": 123456789,
    "bytes": 5896337,
    "created_at": 1700469398,
    "filename": "audio.mp3",
    "purpose": "voice_clone"
  },
  "base_resp": {
    "status_code": 0,
    "status_msg": "success"
  }
}
FieldTypeDescription
file.file_idint64Unique file identifier
file.bytesint64File size, in bytes
file.created_atint64File creation time, Unix timestamp (seconds)
file.filenamestringFile name
file.purposestringFile usage purpose
base_resp.status_codeintStatus code; see the error codes for specific definitions
base_resp.status_msgstringStatus details

Retrieve File ​

Endpoint ​

http
GET /v1/files/retrieve

Request Headers ​

ParameterTypeRequiredDefaultDescription
AuthorizationstringYes-Authentication info, format is Bearer <API_KEY>

Query Parameters ​

ParameterTypeRequiredDescription
file_idint64YesUnique file identifier

Request Example ​

bash
curl --request GET \
  --url 'https://neolink.com/api/minimax/v1/files/retrieve?file_id=123456789' \
  --header 'Authorization: Bearer <API_KEY>'

Successful Response (HTTP 200) ​

json
{
  "file": {
    "file_id": 123456789,
    "bytes": 5896337,
    "created_at": 1700469398,
    "filename": "output.mp4",
    "purpose": "video_generation",
    "download_url": "https://download-url.example.com/file.mp4"
  },
  "base_resp": {
    "status_code": 0,
    "status_msg": "success"
  }
}
FieldTypeDescription
file.file_idint64Unique file identifier
file.bytesint64File size, in bytes
file.created_atint64File creation time, Unix timestamp (seconds)
file.filenamestringFile name
file.purposestringFile usage purpose
file.download_urlstringFile download link
base_resp.status_codeintStatus code; see the error codes for specific definitions
base_resp.status_msgstringStatus details

List Files ​

Endpoint ​

http
GET /v1/files/list

Request Headers ​

ParameterTypeRequiredDefaultDescription
AuthorizationstringYes-Authentication info, format is Bearer <API_KEY>

Query Parameters ​

ParameterTypeRequiredDescription
purposeenum<string>YesThe category of files to list. Enumerated values: voice_clone, prompt_audio, t2a_async_input, video_generation_input

Request Example ​

bash
curl --request GET \
  --url 'https://neolink.com/api/minimax/v1/files/list?purpose=t2a_async_input' \
  --header 'Authorization: Bearer <API_KEY>'

Successful Response (HTTP 200) ​

json
{
  "files": [
    {
      "file_id": 123456789,
      "bytes": 5896337,
      "created_at": 1699964873,
      "filename": "297990555456011.tar",
      "purpose": "t2a_async_input"
    },
    {
      "file_id": 123456790,
      "bytes": 5896337,
      "created_at": 1700469398,
      "filename": "297990555456911.tar",
      "purpose": "t2a_async_input"
    }
  ],
  "base_resp": {
    "status_code": 0,
    "status_msg": "success"
  }
}
FieldTypeDescription
filesobject[]File list
files[].file_idint64Unique file identifier
files[].bytesint64File size, in bytes
files[].created_atint64File creation time, Unix timestamp (seconds)
files[].filenamestringFile name
files[].purposestringFile usage purpose
base_resp.status_codeintStatus code; see the error codes for specific definitions
base_resp.status_msgstringStatus details

Download File ​

Endpoint ​

http
GET /v1/files/retrieve_content

Request Headers ​

ParameterTypeRequiredDefaultDescription
AuthorizationstringYes-Authentication info, format is Bearer <API_KEY>

Query Parameters ​

ParameterTypeRequiredDescription
file_idint64YesThe ID of the file to download

Request Example ​

bash
curl --request GET \
  --url 'https://neolink.com/api/minimax/v1/files/retrieve_content?file_id=123456789' \
  --header 'Authorization: Bearer <API_KEY>' \
  --output downloaded_file.mp3

Successful Response (HTTP 200) ​

Returns the binary content of the file. Content-Type depends on the original file type.


Delete File ​

Endpoint ​

http
POST /v1/files/delete

Request Headers ​

ParameterTypeRequiredDefaultDescription
Content-TypestringYesapplication/jsonData exchange format
AuthorizationstringYes-Authentication info, format is Bearer <API_KEY>

Request Body ​

ParameterTypeRequiredDescription
file_idint64YesUnique file identifier
purposestringYesFile usage purpose. Enumerated values: voice_clone, prompt_audio, t2a_async, t2a_async_input, video_generation

Request Example ​

bash
curl --request POST \
  --url https://neolink.com/api/minimax/v1/files/delete \
  --header 'Authorization: Bearer <API_KEY>' \
  --header 'Content-Type: application/json' \
  --data '{
    "file_id": 123456789,
    "purpose": "voice_clone"
  }'

Successful Response (HTTP 200) ​

json
{
  "file_id": 123456789,
  "base_resp": {
    "status_code": 0,
    "status_msg": "success"
  }
}
FieldTypeDescription
file_idint64The deleted file ID
base_resp.status_codeintStatus code; see the error codes for specific definitions
base_resp.status_msgstringStatus details