=== URL: https://useapi.net/docs/start-here/setup-minimax === Document URL: https://useapi.net/docs/start-here/setup-minimax --- layout: default title: Setup MiniMax parent: Start Here nav_order: 350 --- # Setup MiniMax | Hailuo AI {: .no_toc } September 25, 2024 (November 24, 2025) ## Table of contents {: .no_toc .text-delta } 1. TOC {:toc} Approximately 5 minutes to complete setup steps. --- ## Setup hailuoai.video account You need a [hailuoai.video](https://hailuoai.video) account to to use MiniMax API. Sign-in with your Google account at [hailuoai.video](https://hailuoai.video). You can create as many accounts as you need. Our API uses automated load balancing and will select an account with available capacity. ### Step 1 • Navigate to hailuoai.video Open Chromium-compatible browser (e.g. [Google Chrome](https://www.google.com/chrome/), [Microsoft Edge](https://www.microsoft.com/en-us/edge) or [Opera](https://www.opera.com/)) and navigate to [https://hailuoai.video](https://hailuoai.video). Once the page is fully loaded, ensure that you're logged in with your Google account `1`. Open [Developer Tools](https://developer.chrome.com/docs/devtools) by right-clicking on the page and selecting "Inspect Element" `2`. Finally refresh page `3`. ![](../../assets/images/minimax_video_setup_1.png) ### Step 2 • Locate `url` Select Developer Tools » Network `1`: * On the left side many click on `Assets` submenu `2`. * Type `/cursor` in the filter box `3` and hit Enter. * Make sure that `All` or `Fetch/XHR` is selected `4`. * You should see a http call(s) entry as shown below `5`, click on that entry. * Select "Headers" tab `6`. * Locate General » Request URL `7` as shown below and copy its value. This is your `url`. [EXPAND](../../assets/images/minimax_video_setup_2.png){:target="_blank"} ![](../../assets/images/minimax_video_setup_2.png) As an example below the `url` is ``` https://hailuoai.video/v3/api/multimodal/video/my/cursor?type=next¤tID=0&limit=30&scene=mine&filterType=2&device_platform=web&app_id=3001&version_code=22202&biz_id=0&lang=en&uuid=8a2d8b5d-ac0d-4bb5-8028-3177fa64f861&device_id=301350748241866752&os_name=Windows&browser_name=opera&device_memory=8&cpu_core_num=12&browser_language=en-US&browser_platform=Win32&screen_width=1920&screen_height=1080&unix=1728704107000 ``` ### Step 3 • Locate `token` value Locate Request Headers » Token `7` as shown below and copy it's value. This is your `token`. [EXPAND](../../assets/images/minimax_video_setup_3.png){:target="_blank"} ![](../../assets/images/minimax_video_setup_3.png) As an example below the `token` is ``` eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MzIxNTk4MjksInVzZXIiOnsiaWQiOiIzMDEzNDg0MDk1ODE4MzgzMzYiLCJuYW1lIjoidXNlIGFwaSIsImF2YXRhciI6Imh0dHBzOi8vbGgzLmdvb2dsZXVzZXJjb250ZW50LmNvbS9hL0FDZzhvY0lLNEJaMmpfSlIxcTh3TkFKU2RlZzlwVHZlTDJTSVhFRjg4TkU4MV85VlowbFBRQT1zOTYtYyIsImRldmljZUlEIjoiIn19.1-zGnbUfENnVdjDGDBuaZ4Sf7rTelfqUKk5XNj7liE4 ``` If you are curious, you can use [jwt.io](https://jwt.io) to decode the token and see its content. ## Configure MiniMax API account Please use the [Verify](#verify-url-and-token-values) feature below to ensure all the retrieved values above are correct. Proceed to [POST /accounts](../api-minimax-v1/post-minimax-accounts-account) and configure the MiniMax API account to using `url` and `token` values retrieved above. ## Verify `url` and `token` values This only verifies that `url` and `token` values are correct. To complete setup, you **MUST** proceed to [POST /accounts](../api-minimax-v1/post-minimax-accounts-account) and complete the configuration of the MiniMax API account using the `url` and `token` values retrieved above.
=== URL: https://useapi.net/docs/api-minimax-v1 === Document URL: https://useapi.net/docs/api-minimax-v1 --- layout: default title: MiniMax API v1 nav_order: 3000 has_children: true permalink: /docs/api-minimax-v1 --- # MiniMax API v1 September 25, 2024 (January 2, 2026) This is [experimental](../../docs/legal) API for for the [MiniMax AI](https://minimaxi.com), a Chinese AI startup backed by Alibaba and Tencent. We provide full API support for following MiniMax/Hailuo AI models: * MiniMax [videos](api-minimax-v1/post-minimax-videos-create) supports multiple models: [Hailuo 01/02/2.3](https://hailuoai.video), [Veo 3.1](https://deepmind.google/models/veo/), and [Sora 2](https://openai.com/sora/). These models are notable for generating ultra-realistic video clips with precise prompt following. * MiniMax [images](api-minimax-v1/post-minimax-images-create) supports multiple models: [Nano Banana Pro](https://blog.google/technology/ai/nano-banana-pro/), [GPT Image 1.5](https://openai.com/index/introducing-4o-image-generation/), [Seedream 4.5](https://seed.bytedance.com/en/seedream4_5), and image-01. * MiniMax [agent](api-minimax-v1/post-minimax-agent) supports multiple AI models including video generation ([Hailuo 2.3](https://hailuoai.video/ai-video-landing/ai-video-generator-hailuo-2-3), [02](https://www.minimax.io/news/minimax-hailuo-02), [Veo 3.1](https://deepmind.google/models/veo/), [Sora 2](https://openai.com/sora/)), image generation ([Nano Banana 2/Pro](https://blog.google/technology/ai/nano-banana-pro/), [Seedream 4.5](https://seed.bytedance.com/en/seedream4_5), [F.1 Kontext](https://bfl.ai/models/flux-kontext), [Qwen](https://github.com/QwenLM/Qwen-Image), Kolors), and audio synthesis ([Speech 2.5](https://minimax-ai.chat/models/minimax-speech-25/), [Music 2.0](https://www.minimax.io/news/minimax-music-20)). It costs 1 to 4 credits to generate an image and 1 credit to generate a song. With the [$79.99/m](https://hailuoai.video/subscribe/modal) Master account (12,000 credits), you can generate ~12,000 songs or up to 12,000 images. Nano Banana 2/Pro costs 4 credits, so you can generate 3,000 images per month. Nano Banana 2/Pro deployment provided by MiniMax has less content moderation compared to Google Flow and is capable of editing photos of minors or famous people. [Setup MiniMax](../../docs/start-here/setup-minimax) [Postman collection](https://www.postman.com/useapinet/useapi-net/collection) (January 20, 2026) [Q&A: How is your experimental MiniMax API different from the official MiniMax API?](../../docs/questions-and-answers#how-is-your-experimental-minimax-api-different-from-the-official-minimax-api) Blogs: * [MiniMax Sora 2, Veo 3.1](../../blog/260102) * [MiniMax Agent: Nano Banana 2/Pro, Speech 2.5, Music 2.0 and more...](../../blog/251124) * [MiniMax 2.3](../../blog/251030) * [MiniMax 02 End Frame](../../blog/250830) * [Groundbreaking Video Agents](../../blog/250630) * [MiniMax Images](../../blog/250508) Articles: * [Fun with MiniMax API](../../docs/articles/minimax-bash) Developer Community: * Discord Server * Telegram Channel * r/minimax_api === URL: https://useapi.net/docs/api-minimax-v1/del-minimax-accounts-account === Document URL: https://useapi.net/docs/api-minimax-v1/del-minimax-accounts-account --- layout: default title: DEL accounts/account parent: MiniMax API v1 nav_order: 400 --- ## Delete MiniMax API account {: .no_toc } September 25, 2024 (March 17, 2025) ## Table of contents {: .no_toc .text-delta } 1. TOC {:toc} --- {: .delete } > **https://api.useapi.net/v1/minimax/accounts/`account`** The `account` value should correspond to an account configured previously via a [POST /accounts](post-minimax-accounts-account) request. ##### Request Headers ``` yaml Authorization: Bearer {API token} ``` - `API token` is **required**, see [Setup useapi.net](../start-here/setup-useapi) for details. ##### Responses {% tabs del_account_MiniMax_response %} {% tab del_account_MiniMax_response 204 %} 204 No Content {% endtab %} {% tab del_account_MiniMax_response 401 %} 401 Unauthorized ```json { "error": "Unauthorized", "code": 401 } ``` {% endtab %} {% tab del_account_MiniMax_response 404 %} 404 Not Found {% endtab %} {% endtabs %} ##### Model ```typescript { // TypeScript, all fields are optional error: string, errorDetails: string, code: number } ``` ##### Examples {% tabs del_account_MiniMax_example %} {% tab del_account_MiniMax_example Curl %} ``` bash curl -H "Accept: application/json" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer …" \ -X DELETE https://api.useapi.net/v1/minimax/accounts/ ``` {% endtab %} {% tab del_account_MiniMax_example JavaScript %} ``` javascript const account = "Previously configured account"; const apiUrl = `https://api.useapi.net/v1/minimax/accounts/${channnel}`; const token = "API token"; const data = { method: 'DELETE', headers: { 'Authorization': `Bearer ${token}`, 'Content-Type': 'application/json' } }; const response = await fetch(apiUrl, data); const result = await response.json(); console.log("response", {response, result}); ``` {% endtab %} {% tab del_account_MiniMax_example Python %} ``` python import requests account = "Previously configured account" apiUrl = f"https://api.useapi.net/v1/minimax/accounts/{account}" token = "API token" headers = { "Content-Type": "application/json", "Authorization" : f"Bearer {token}" } response = requests.delete(apiUrl, headers=headers) print(response, response.json()) ``` {% endtab %} {% endtabs %} === URL: https://useapi.net/docs/api-minimax-v1/del-minimax-audio-audio_id === Document URL: https://useapi.net/docs/api-minimax-v1/del-minimax-audio-audio_id --- layout: default title: DEL audio/audio_id nav_order: 2800 nav_exclude: true --- ## Delete text-to-speech audio clip {: .no_toc } December 27, 2024 (August 21, 2025) This version of MiniMax audio has been decommissioned. Consider switching to Mureka API ## Table of contents {: .no_toc .text-delta } 1. TOC {:toc} --- Please configure at least one [www.minimax.io/audio](https://www.minimax.io/audio) account for this endpoint, see [Setup MiniMax](../start-here/setup-minimax) for details. This endpoint will delete audio clip generated by * [POST audio/create-mp3](https://useapi.net/docs/api-minimax-v1/post-minimax-audio-create-mp3) * [POST audio/create-stream](https://useapi.net/docs/api-minimax-v1/post-minimax-audio-create-stream) This endpoint will return a response `200` if you're trying to delete a audio clip that does not exist or has already been deleted. It is safe to say it always succeeds. {: .delete } > **https://api.useapi.net/v1/minimax/audio/`audio_id`** ##### Request Headers ``` yaml Authorization: Bearer {API token} Content-Type: application/json ``` - `API token` is **required**, see [Setup useapi.net](../start-here/setup-useapi) for details. ##### Path parameter - `audio_id` is **required**. Specify the audio_id you want to delete. ##### Responses {% tabs del_MiniMax_audio_audio_id_response %} {% tab del_MiniMax_audio_audio_id_response 200 %} 200 OK {% endtab %} {% tab del_MiniMax_audio_audio_id_response 400 %} 400 Bad Request ```json { "error": "", "code": 400 } ``` {% endtab %} {% tab del_MiniMax_audio_audio_id_response 401 %} 401 Unauthorized ```json { "error": "Unauthorized", "code": 401 } ``` {% endtab %} {% endtabs %} ##### Examples {% tabs del_MiniMax_audio_audio_id_example %} {% tab del_MiniMax_audio_audio_id_example Curl %} ``` bash curl -X DELETE "https://api.useapi.net/v1/minimax/audio/" \ -H "Accept: application/json" \ -H "Authorization: Bearer …" ``` {% endtab %} {% tab del_MiniMax_audio_audio_id_example JavaScript %} ``` javascript const token = "API token"; const audio_id = "audio_id to delete"; const apiUrl = `https://api.useapi.net/v1/minimax/audio/${audio_id}`; const response = await fetch(apiUrl, { method: 'DELETE', headers: { "Authorization": `Bearer ${token}`, }, }); const result = await response.json(); console.log("response", {response, result}); ``` {% endtab %} {% tab del_MiniMax_audio_audio_id_example Python %} ``` python import requests token = "API token" audio_id = "audio_id to delete" apiUrl = f"https://api.useapi.net/v1/minimax/audio/{audio_id}" headers = { "Content-Type": "application/json", "Authorization" : f"Bearer {token}" } response = requests.delete(apiUrl, headers=headers) print(response, response.json()) ``` {% endtab %} {% endtabs %} === URL: https://useapi.net/docs/api-minimax-v1/del-minimax-files-fileID === Document URL: https://useapi.net/docs/api-minimax-v1/del-minimax-files-fileID --- layout: default title: DEL files/fileID parent: MiniMax API v1 nav_order: 3500 --- ## Delete file {: .no_toc } December 23, 2024 ## Table of contents {: .no_toc .text-delta } 1. TOC {:toc} --- Use this endpoint to delete file uploaded by * [POST files](https://useapi.net/docs/api-minimax-v1/post-minimax-files) This endpoint will return a response `200` if you're trying to delete a file that does not exist or has already been deleted. It is safe to say it always succeeds. {: .delete } > **https://api.useapi.net/v1/minimax/files/`fileID`** ##### Request Headers ``` yaml Authorization: Bearer {API token} Content-Type: application/json ``` - `API token` is **required**, see [Setup useapi.net](../start-here/setup-useapi) for details. ##### Path parameter - `fileID` is **required**. Specify the fileID you want to delete. ##### Responses {% tabs del_MiniMax_files_fileID_response %} {% tab del_MiniMax_files_fileID_response 200 %} 200 OK {% endtab %} {% tab del_MiniMax_files_fileID_response 400 %} 400 Bad Request ```json { "error": "", "code": 400 } ``` {% endtab %} {% tab del_MiniMax_files_fileID_response 401 %} 401 Unauthorized ```json { "error": "Unauthorized", "code": 401 } ``` {% endtab %} {% endtabs %} ##### Examples {% tabs del_MiniMax_files_fileID_example %} {% tab del_MiniMax_files_fileID_example Curl %} ``` bash curl -X DELETE "https://api.useapi.net/v1/minimax/files/fileID" \ -H "Accept: application/json" \ -H "Authorization: Bearer …" ``` {% endtab %} {% tab del_MiniMax_files_fileID_example JavaScript %} ``` javascript const token = "API token"; const fileID = "fileID to delete"; const apiUrl = `https://api.useapi.net/v1/minimax/files/${fileID}`; const response = await fetch(apiUrl, { method: 'DELETE', headers: { "Authorization": `Bearer ${token}`, }, }); const result = await response.json(); console.log("response", {response, result}); ``` {% endtab %} {% tab del_MiniMax_files_fileID_example Python %} ``` python import requests token = "API token" fileID = "fileID to delete" apiUrl = f"https://api.useapi.net/v1/minimax/files/{fileID}" headers = { "Content-Type": "application/json", "Authorization" : f"Bearer {token}" } response = requests.delete(apiUrl, headers=headers) print(response, response.json()) ``` {% endtab %} {% endtabs %} === URL: https://useapi.net/docs/api-minimax-v1/del-minimax-images-imageId === Document URL: https://useapi.net/docs/api-minimax-v1/del-minimax-images-imageId --- layout: default title: DEL images/imageId parent: MiniMax API v1 nav_order: 1400 --- ## Delete image {: .no_toc } March 17, 2025 ## Table of contents {: .no_toc .text-delta } 1. TOC {:toc} --- Use this endpoint to delete image generated by * [POST images/create](https://useapi.net/docs/api-minimax-v1/post-minimax-images-create) This endpoint will return a response `200` if you're trying to delete a image that does not exist or has already been deleted. It is safe to say it always succeeds. Images are soft-deleted. While the image will no longer appear in [GET images](https://useapi.net/docs/api-minimax-v1/get-minimax-images), you can still retrieve it via [GET images/`imageId`](https://useapi.net/docs/api-minimax-v1/get-minimax-images-imageId). {: .delete } > **https://api.useapi.net/v1/minimax/images/`imageId`** ##### Request Headers ``` yaml Authorization: Bearer {API token} Content-Type: application/json ``` - `API token` is **required**, see [Setup useapi.net](../start-here/setup-useapi) for details. ##### Path parameter - `imageId` is **required**. Specify the imageId you want to delete. ##### Responses {% tabs del_MiniMax_images_imageId_response %} {% tab del_MiniMax_images_imageId_response 200 %} 200 OK {% endtab %} {% tab del_MiniMax_images_imageId_response 400 %} 400 Bad Request ```json { "error": "", "code": 400 } ``` {% endtab %} {% tab del_MiniMax_images_imageId_response 401 %} 401 Unauthorized ```json { "error": "Unauthorized", "code": 401 } ``` {% endtab %} {% endtabs %} ##### Examples {% tabs del_MiniMax_images_imageId_example %} {% tab del_MiniMax_images_imageId_example Curl %} ``` bash curl -X DELETE "https://api.useapi.net/v1/minimax/images/" \ -H "Accept: application/json" \ -H "Authorization: Bearer …" ``` {% endtab %} {% tab del_MiniMax_images_imageId_example JavaScript %} ``` javascript const token = "API token"; const imageId = "imageId to delete"; const apiUrl = `https://api.useapi.net/v1/minimax/images/${imageId}`; const response = await fetch(apiUrl, { method: 'DELETE', headers: { "Authorization": `Bearer ${token}`, }, }); const result = await response.json(); console.log("response", {response, result}); ``` {% endtab %} {% tab del_MiniMax_images_imageId_example Python %} ``` python import requests token = "API token" imageId = "imageId to delete" apiUrl = f"https://api.useapi.net/v1/minimax/images/{imageId}" headers = { "Content-Type": "application/json", "Authorization" : f"Bearer {token}" } response = requests.delete(apiUrl, headers=headers) print(response, response.json()) ``` {% endtab %} {% endtabs %} === URL: https://useapi.net/docs/api-minimax-v1/del-minimax-llm === Document URL: https://useapi.net/docs/api-minimax-v1/del-minimax-llm --- layout: default title: DEL llm nav_order: 1800 nav_exclude: true --- ## Delete LLM chats and/or messages {: .no_toc } March 7, 2025 (November 24, 2025) This version of MiniMax LLM has been decommissioned and will be replaced with upcoming Google AI and Gemini support. ## Table of contents {: .no_toc .text-delta } 1. TOC {:toc} --- Equivalent of [chat.minimax.io](https://chat.minimax.io). Use your [chat.minimax.io](https://chat.minimax.io) account for this endpoint, see [Setup MiniMax](../start-here/setup-minimax) for details. {: .delete } > **https://api.useapi.net/v1/minimax/llm/?…** ##### Request Headers ``` yaml Authorization: Bearer {API token} ``` - `API token` is **required**, see [Setup useapi.net](../start-here/setup-useapi) for details. ##### Query Parameters - `account` is optional when only one LLM [chat.minimax.io](https://chat.minimax.io) [account](../api-minimax-v1/get-minimax-accounts) configured. However, if you have multiple accounts configured, this parameter becomes **required**. - `chatIDs` is optional, specify comma-separated list of chatID values that you want to delete. Set it to `all` to delete all chats for your account. - `msgIDs` is optional, specify a comma-separated list of msgID values that you want to delete. ##### Responses {% tabs get_llm_MiniMax_llm_response %} {% tab get_llm_MiniMax_llm_response 200 %} 200 OK {% endtab %} {% tab get_llm_MiniMax_llm_response 400 %} 400 Bad Request ```json { "error": "", "code": 400 } ``` {% endtab %} {% tab get_llm_MiniMax_llm_response 401 %} 401 Unauthorized ```json { "error": "Unauthorized", "code": 401 } ``` {% endtab %} {% endtabs %} ##### Examples {% tabs get_llm_MiniMax_llm_example %} {% tab get_llm_MiniMax_llm_example Curl %} ``` bash curl "https://api.useapi.net/v1/minimax/llm/?account=&msgID=" \ -H "Accept: application/json" \ -H "Authorization: Bearer …" ``` {% endtab %} {% tab get_llm_MiniMax_llm_example JavaScript %} ``` javascript const token = "API token"; const account = "Previously configured account"; const msgID = "Message msgID you want to delete"; const apiUrl = `https://api.useapi.net/v1/minimax/llm/?account=${account}&msgID=${msgID}`; const response = await fetch(apiUrl, { method: 'DELETE', headers: { "Authorization": `Bearer ${token}`, }, }); const result = await response.json(); console.log("response", {response, result}); ``` {% endtab %} {% tab get_llm_MiniMax_llm_example Python %} ``` python import requests token = "API token" account = "Previously configured account" msgID = "Message msgID you want to delete" apiUrl = f"https://api.useapi.net/v1/minimax/llm/?account={account}&msgID={msgID}" headers = { "Content-Type": "application/json", "Authorization" : f"Bearer {token}" } response = requests.delete(apiUrl, headers=headers) print(response, response.json()) ``` {% endtab %} {% endtabs %} === URL: https://useapi.net/docs/api-minimax-v1/del-minimax-scheduler-videoId === Document URL: https://useapi.net/docs/api-minimax-v1/del-minimax-scheduler-videoId --- layout: default title: DEL scheduler/id parent: MiniMax API v1 nav_order: 3800 --- ## Remove video or image generation from being tracked by the scheduler {: .no_toc } September 25, 2024 (March 17, 2025) ## Table of contents {: .no_toc .text-delta } 1. TOC {:toc} --- API tracks the running generations of images and videos. This is done to maintain a list of currently executed video generations and to send webhook messages via optionally provided `replyUrl` parameters. If you want to remove image or video generation from being tracked by the scheduler, use this endpoint. {: .delete } > **https://api.useapi.net/v1/minimax/scheduler/`id`** ##### Request Headers ``` yaml Authorization: Bearer {API token} ``` - `API token` is **required**, see [Setup useapi.net](../start-here/setup-useapi) for details. ##### Path parameter - `id` is **required**. Specify videoId or imageId you want to stop tracking. ##### Responses {% tabs delete_scheduler_MiniMax_scheduler_response %} {% tab delete_scheduler_MiniMax_scheduler_response 204 %} 204 No Content {% endtab %} {% tab delete_scheduler_MiniMax_scheduler_response 400 %} 400 Bad Request ```json { "error": "", "code": 400 } ``` {% endtab %} {% tab delete_scheduler_MiniMax_scheduler_response 401 %} 401 Unauthorized ```json { "error": "Unauthorized", "code": 401 } ``` {% endtab %} {% tab delete_scheduler_MiniMax_scheduler_response 404 %} 404 Not Found ```json { "error": "Unable to locate running " } ``` {% endtab %} {% endtabs %} ##### Model ```typescript { // TypeScript, all fields are optional error: string code: number } ``` ##### Examples {% tabs delete_scheduler_MiniMax_scheduler_example %} {% tab delete_scheduler_MiniMax_scheduler_example Curl %} ``` bash curl -H "Accept: application/json" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer …" \ -X DELETE "https://api.useapi.net/v1/minimax/scheduler/" ``` {% endtab %} {% tab delete_scheduler_MiniMax_scheduler_example JavaScript %} ``` javascript const videoId = "videoId to cancel"; const apiUrl = `https://api.useapi.net/v1/minimax/scheduler/${videoId}`; const token = "API token"; const data = { method: 'DELETE', headers: { 'Authorization': `Bearer ${token}`, 'Content-Type': 'application/json' } }; const response = await fetch(apiUrl, data); const result = await response.json(); console.log("response", {response, result}); ``` {% endtab %} {% tab delete_scheduler_MiniMax_scheduler_example Python %} ``` python import requests videoId = "videoId to cancel" apiUrl = f"https://api.useapi.net/v1/minimax/scheduler/{videoId}" token = "API token" headers = { "Content-Type": "application/json", "Authorization" : f"Bearer {token}" } response = requests.delete(apiUrl, headers=headers) print(response, response.json()) ``` {% endtab %} {% endtabs %} === URL: https://useapi.net/docs/api-minimax-v1/del-minimax-videos-videoId === Document URL: https://useapi.net/docs/api-minimax-v1/del-minimax-videos-videoId --- layout: default title: DEL videos/videoId parent: MiniMax API v1 nav_order: 1000 --- ## Delete video {: .no_toc } December 23, 2024 ## Table of contents {: .no_toc .text-delta } 1. TOC {:toc} --- Use this endpoint to delete video generated by * [videos/create](https://useapi.net/docs/api-minimax-v1/post-minimax-videos-create) This endpoint will return a response `200` if you're trying to delete a video that does not exist or has already been deleted. It is safe to say it always succeeds. {: .delete } > **https://api.useapi.net/v1/minimax/videos/`videoId`** ##### Request Headers ``` yaml Authorization: Bearer {API token} Content-Type: application/json ``` - `API token` is **required**, see [Setup useapi.net](../start-here/setup-useapi) for details. ##### Path parameter - `videoId` is **required**. Specify the videoId you want to delete. ##### Responses {% tabs del_MiniMax_videos_videoId_response %} {% tab del_MiniMax_videos_videoId_response 200 %} 200 OK {% endtab %} {% tab del_MiniMax_videos_videoId_response 400 %} 400 Bad Request ```json { "error": "", "code": 400 } ``` {% endtab %} {% tab del_MiniMax_videos_videoId_response 401 %} 401 Unauthorized ```json { "error": "Unauthorized", "code": 401 } ``` {% endtab %} {% endtabs %} ##### Examples {% tabs del_MiniMax_videos_videoId_example %} {% tab del_MiniMax_videos_videoId_example Curl %} ``` bash curl -X DELETE "https://api.useapi.net/v1/minimax/videos/videoId" \ -H "Accept: application/json" \ -H "Authorization: Bearer …" ``` {% endtab %} {% tab del_MiniMax_videos_videoId_example JavaScript %} ``` javascript const token = "API token"; const videoId = "videoId to delete"; const apiUrl = `https://api.useapi.net/v1/minimax/videos/${videoId}`; const response = await fetch(apiUrl, { method: 'DELETE', headers: { "Authorization": `Bearer ${token}`, }, }); const result = await response.json(); console.log("response", {response, result}); ``` {% endtab %} {% tab del_MiniMax_videos_videoId_example Python %} ``` python import requests token = "API token" videoId = "videoId to delete" apiUrl = f"https://api.useapi.net/v1/minimax/videos/{videoId}" headers = { "Content-Type": "application/json", "Authorization" : f"Bearer {token}" } response = requests.delete(apiUrl, headers=headers) print(response, response.json()) ``` {% endtab %} {% endtabs %} === URL: https://useapi.net/docs/api-minimax-v1/get-minimax-accounts-account === Document URL: https://useapi.net/docs/api-minimax-v1/get-minimax-accounts-account --- layout: default title: GET accounts/account parent: MiniMax API v1 nav_order: 200 --- ## Retrieve MiniMax API account configuration for `account` {: .no_toc } September 25, 2024 (March 17, 2025) ## Table of contents {: .no_toc .text-delta } 1. TOC {:toc} --- {: .get } > **https://api.useapi.net/v1/minimax/accounts/`account`** The `account` value should correspond to an account configured previously via a [POST /accounts](post-minimax-accounts-account) request. ##### Request Headers ``` yaml Authorization: Bearer {API token} Content-Type: application/json ``` - `API token` is **required**, see [Setup useapi.net](../start-here/setup-useapi) for details. ##### Responses {% tabs get_account_MiniMax_account_response %} {% tab get_account_MiniMax_account_response 200 %} 200 OK ```json { "account": "123456", "jwt": { "token": "abc…secured…xyz", "user": { "deviceID": "123456789", "id": "123456", "isAnonymous": true, "name": "", "avatar": "" }, "exp": 1734858598.864, "iat": 1732266598.864, "host": "hailuoai.video", "searchParams": "device_platform=web&app_id=3001&version_code=22201&uuid=b5df53d1-4c0d-4c77-8422-87e3f3b1a1d6&device_id=123456789&os_name=Windows&browser_name=chrome&device_memory=8&cpu_core_num=4&browser_language=en-US&browser_platform=Win32&screen_width=1920&screen_height=1080&unix=1732266598000", "iat_Issued": "2024-01-01T00:00:00.000Z", "exp_Expire": "2024-12-01T00:00:00.000Z" }, "maxJobs": 1, "supportVideo": true, "supportChat": true, "supportAudio": true } ``` {% endtab %} {% tab get_account_MiniMax_account_response 401 %} 401 Unauthorized ```json { "error": "Unauthorized", "code": 401 } ``` {% endtab %} {% tab get_account_MiniMax_account_response 404 %} 404 Not Found Configuration not found. To create configuration use [POST /accounts](https://useapi.net/docs/api-minimax-v1/post-minimax-accounts-account). {% endtab %} {% endtabs %} ##### Model ```typescript { // TypeScript, all fields are optional account: string jwt: { token: string user: { deviceID: string id: string isAnonymous: boolean name: string avatar: string }, exp: number iat: number host: string searchParams: string iat_Issued: string exp_Expire: string } maxJobs: number supportVideo: boolean supportChat: boolean supportAudio: boolean supportMusic: boolean } ``` ##### Examples {% tabs get_account_MiniMax_account_example %} {% tab get_account_MiniMax_account_example Curl %} ``` bash curl https://api.useapi.net/v1/minimax/accounts/ \ -H "Accept: application/json" \ -H "Authorization: Bearer …" ``` {% endtab %} {% tab get_account_MiniMax_account_example JavaScript %} ``` javascript const token = "API token"; const account = "Previously configured account"; const apiUrl = `https://api.useapi.net/v1/minimax/accounts/${account}`; const response = await fetch(apiUrl, { headers: { "Authorization": `Bearer ${token}`, }, }); const result = await response.json(); console.log("response", {response, result}); ``` {% endtab %} {% tab get_account_MiniMax_account_example Python %} ``` python import requests token = "API token" account = "Previously configured account" apiUrl = f"https://api.useapi.net/v1/minimax/accounts/{account}" headers = { "Content-Type": "application/json", "Authorization" : f"Bearer {token}" } response = requests.get(apiUrl, headers=headers) print(response, response.json()) ``` {% endtab %} {% endtabs %} === URL: https://useapi.net/docs/api-minimax-v1/get-minimax-accounts === Document URL: https://useapi.net/docs/api-minimax-v1/get-minimax-accounts --- layout: default title: GET accounts parent: MiniMax API v1 nav_order: 100 --- ## Retrieve MiniMax API accounts configuration {: .no_toc } September 25, 2024 (March 17, 2025) ## Table of contents {: .no_toc .text-delta } 1. TOC {:toc} --- For your convenience, you can specify your MiniMax configuration values under your MiniMax account. If you specify multiple MiniMax accounts, the API will automatically perform load balancing by randomly selecting an account with available capacity before making calls to MiniMax. This endpoint retrieves the complete list of configured API accounts for MiniMax. {: .get } > **https://api.useapi.net/v1/minimax/accounts** ##### Request Headers ``` yaml Authorization: Bearer {API token} Content-Type: application/json ``` - `API token` is **required**, see [Setup useapi.net](../start-here/setup-useapi) for details. ##### Responses {% tabs account_MiniMax_response %} {% tab account_MiniMax_response 200 %} 200 OK ```json { "123456": { "account": "123456", "jwt": { "token": "abc…secured…xyz", "user": { "deviceID": "123456789", "id": "123456", "isAnonymous": true, "name": "", "avatar": "" }, "exp": 1734858598.864, "iat": 1732266598.864, "host": "hailuoai.video", "searchParams": "device_platform=web&app_id=3001&version_code=22201&uuid=b5df53d1-4c0d-4c77-8422-87e3f3b1a1d6&device_id=123456789&os_name=Windows&browser_name=chrome&device_memory=8&cpu_core_num=4&browser_language=en-US&browser_platform=Win32&screen_width=1920&screen_height=1080&unix=1732266598000", "iat_Issued": "2024-01-01T00:00:00.000Z", "exp_Expire": "2024-12-01T00:00:00.000Z" }, "maxJobs": 1, "supportVideo": true, "supportChat": true, "supportAudio": true }, "78910": { "account": "78910", "jwt": { "token": "edf…secured…lmn", "user": { "deviceID": "987654321", "id": "78910", "isAnonymous": true, "name": "", "avatar": "" }, "host": "hailuoai.com", "exp": 1744858598.864, "iat": 1742266598.864, "searchParams": "device_platform=web&app_id=3001&version_code=22201&uuid=92f1a65c-3e9e-4a37-8bd7-8615a6cf60ee&device_id=987654321&os_name=Windows&browser_name=firefox&device_memory=16&cpu_core_num=8&browser_language=en-US&browser_platform=Win64&screen_width=2560&screen_height=1440&unix=1742266598000", "iat_Issued": "2025-01-01T00:00:00.000Z", "exp_Expire": "2025-12-01T00:00:00.000Z" }, "maxJobs": 1, "supportVideo": true, "supportChat": true, "supportAudio": true } } ``` {% endtab %} {% tab account_MiniMax_response 401 %} 401 Unauthorized ```json { "error": "Unauthorized", "code": 401 } ``` {% endtab %} {% tab account_MiniMax_response 404 %} 404 Not Found Configuration not found. To create configuration use [POST /accounts](https://useapi.net/docs/api-minimax-v1/post-minimax-accounts-account). {% endtab %} {% endtabs %} ##### Model ```typescript { // TypeScript, all fields are optional [account: string]: { account: string jwt: { token: string user: { deviceID: string id: string isAnonymous: boolean name: string avatar: string }, exp: number iat: number host: string searchParams: string iat_Issued: string exp_Expire: string } maxJobs: number supportVideo: boolean supportChat: boolean supportAudio: boolean supportMusic: boolean } } ``` ##### Examples {% tabs account_MiniMax_example %} {% tab account_MiniMax_example Curl %} ``` bash curl https://api.useapi.net/v1/minimax/accounts \ -H "Accept: application/json" \ -H "Authorization: Bearer …" ``` {% endtab %} {% tab account_MiniMax_example JavaScript %} ``` javascript const token = "API token"; const apiUrl = "https://api.useapi.net/v1/minimax/accounts"; const response = await fetch(apiUrl, { headers: { "Authorization": `Bearer ${token}`, }, }); const result = await response.json(); console.log("response", {response, result}); ``` {% endtab %} {% tab account_MiniMax_example Python %} ``` python import requests token = "API token" apiUrl = "https://api.useapi.net/v1/minimax/accounts" headers = { "Content-Type": "application/json", "Authorization" : f"Bearer {token}" } response = requests.get(apiUrl, headers=headers) print(response, response.json()) ``` {% endtab %} {% endtabs %} === URL: https://useapi.net/docs/api-minimax-v1/get-minimax-agent-jobId === Document URL: https://useapi.net/docs/api-minimax-v1/get-minimax-agent-jobId --- layout: default title: GET agent/jobId parent: MiniMax API v1 nav_order: 2100 --- ## Retrieve Agent Job Status and Results {: .no_toc } November 24, 2025 (November 26, 2025) ## Table of contents {: .no_toc .text-delta } 1. TOC {:toc} --- Retrieve the status and results of an agent job. Jobs are stored for 31 days after creation. Use this endpoint to check the progress of asynchronous agent jobs created with [POST agent](https://useapi.net/docs/api-minimax-v1/post-minimax-agent) using `async: true`. {: .get } > **https://api.useapi.net/v1/minimax/agent/`jobId`** ##### Request Headers ``` yaml Authorization: Bearer {API token} ``` - `API token` is **required**, see [Setup useapi.net](../start-here/setup-useapi) for details. ##### Path Parameters - `jobId` is **required**. The job ID to query. ##### Responses {% tabs get_agent_jobid_response %} {% tab get_agent_jobid_response 200 %} 200 OK Job found and returned successfully. **Started Job:** ```json { "jobId": "p123456789-u12345-a67890-bot:minimax", "status": "started", "created": "2025-11-23T12:34:56.789Z", "request": { "prompt": "Generate a video of a cat playing piano", "models": ["hailuo-2.3"], "async": true } } ``` **Completed Job:** ```json { "jobId": "p123456789-u12345-a67890-bot:minimax", "status": "completed", "created": "2025-11-23T12:34:56.789Z", "request": { "prompt": "Generate a video of a cat playing piano", "models": ["hailuo-2.3", "nano-banana-2"] }, "response": { "projectID": "123456789", "sectionID": "987654321", "chatID": "456789123", "msg_content": "I've generated a video of a cat playing piano and an image variation.", "timestamp": 1732366496789, "elapsedTime": "02:15", "attachments": [ { "attachmentID": "att_123456789", "type": 1, "status": 3, "file": { "fileName": "cat_piano_video.mp4", "fileUrl": "https://cdn.hailuoai.video/...mp4", "type": "video/mp4", "extra": { "width": "1280", "height": "720", "duration": "5.0", "fps": "24", "no_watermark_url": "https://cdn.hailuoai.video/.../no_watermark.mp4", "watermark_url": "https://cdn.hailuoai.video/.../watermark.mp4", "thumbnail_url": "https://cdn.hailuoai.video/.../thumb.jpg" } } }, { "attachmentID": "att_987654321", "type": 2, "status": 3, "file": { "fileName": "cat_piano_image.png", "fileUrl": "https://cdn.hailuoai.video/...png", "type": "image/png", "extra": { "model_name": "banana_2", "model_aspect_ratio": "16:9", "model_resolution": "1K" } } } ] } } ``` **Failed Job:** ```json { "jobId": "p123456789-u12345-a67890-bot:minimax", "status": "failed", "created": "2025-11-23T12:34:56.789Z", "request": { "prompt": "Generate a video", "models": ["hailuo-2.3"] }, "error": { "message": "Timeout waiting for assistant response", "status": 504 } } ``` {% endtab %} {% tab get_agent_jobid_response 400 %} 400 Bad Request Invalid job ID format or access denied. ```json { "error": "Error …", "code": 400 } ``` {% endtab %} {% tab get_agent_jobid_response 401 %} 401 Unauthorized Invalid API token. ```json { "error": "Unauthorized", "code": 401 } ``` {% endtab %} {% tab get_agent_jobid_response 404 %} 404 Not Found Job not found or expired after 31 days. ```json { "error": "Job not found or expired after 31 days", "code": 404 } ``` {% endtab %} {% endtabs %} ##### Model **Downloading Generated Files:** - `file.fileUrl` - Primary download URL (may have watermark) - `file.extra.no_watermark_url` - URL without watermark (when available) - `file.extra.watermark_url` - URL with watermark - `node.agentFile.noWatermarkUrl` - Alternative watermark-free URL - `node.agentFile.url` - Alternative file URL ```typescript { // Job metadata jobId: string // Unique job identifier status: 'started' | 'completed' | 'failed' // Job status created: string // ISO 8601 timestamp code?: number // HTTP status code (optional) // Original request request: { prompt: string // User's prompt file?: Array<{ // File metadata (actual files not included) name: string size: number type: string }> models: string[] // Model IDs used async?: boolean // Async mode flag replyUrl?: string // Callback URL replyRef?: string // User's reference ID } // Agent response (only present when status is 'completed') response?: { projectID: string // MiniMax project ID sectionID: string // MiniMax section ID chatID: string // MiniMax chat ID msg_content: string // Agent's response message timestamp: number // Response timestamp (milliseconds since epoch) elapsedTime: string // Elapsed time (mm:ss format) attachments?: Array<{ // Generated files attachmentID: string // Attachment identifier type: number // Attachment type (numeric) status: number // Attachment status (3 = completed) file: { fileName: string // File name fileUrl: string // CDN URL to download file extra?: { // Additional file metadata // Video-specific fields height?: string // Video height in pixels width?: string // Video width in pixels duration?: string // Duration in seconds fps?: string // Frames per second frames?: string // Total frame count no_watermark_url?: string // CDN URL without watermark watermark_url?: string // CDN URL with watermark thumbnail_url?: string // Thumbnail image URL url?: string // Alternative URL path?: string // File path task_id?: string // Generation task ID vendor?: string // Video generation vendor subtitle_path?: string // Subtitle file path // Image-specific fields (nano-banana-2 model) model_aspect_ratio?: string // e.g. "9:16", "16:9" model_name?: string // e.g. "banana_2" model_resolution?: string // e.g. "1K", "2K" // Audio/TTS-specific fields format?: string // e.g. "mp3" type?: string // e.g. "audio" model_speech_count?: string // Character count for TTS } posterUrl?: string // Poster/thumbnail URL type?: string // File MIME type referenceType?: number // Reference type } text?: string // Associated text content extra?: Record // Additional metadata node?: { // Node/timeline information nodeID: string // Unique node identifier xStart: number // X position start yStart: number // Y position start width: number // Node width height: number // Node height layer: number // Layer index nodeType: number // Node type identifier agentFile?: { // Generated file details id: string // File ID name: string // File name url: string // File URL coverInfo?: { // Cover image info coverURL: string // Cover image URL } noWatermarkUrl?: string // URL without watermark duration?: number // Duration in seconds relativePath?: string // Relative file path thumbnailUrl?: string // Thumbnail URL } status: number // Node status playWidth: number // Playback width playHeight: number // Playback height logoType: number // Logo type identifier } }> } // Error information (only present when status is 'failed') error?: string | { // Error can be a string or object message: string // Error description status: number // HTTP status code details?: any // Additional error details } } ``` ##### Examples {% tabs get_agent_jobid_example %} {% tab get_agent_jobid_example Curl %} ``` bash curl -H "Authorization: Bearer YOUR_API_TOKEN" \ "https://api.useapi.net/v1/minimax/agent/p123456789-u12345-a67890-bot:minimax" ``` {% endtab %} {% tab get_agent_jobid_example JavaScript %} ``` javascript const token = "YOUR_API_TOKEN"; const jobId = "p123456789-u12345-a67890-bot:minimax"; const apiUrl = `https://api.useapi.net/v1/minimax/agent/${jobId}`; const response = await fetch(apiUrl, { headers: { 'Authorization': `Bearer ${token}` } }); const job = await response.json(); console.log('Job status:', job.status); if (job.status === 'completed' && job.response?.attachments) { job.response.attachments.forEach(att => { console.log(`${att.file.fileName}: ${att.file.fileUrl}`); }); } else if (job.status === 'failed') { console.error('Job failed:', job.error); } ``` {% endtab %} {% tab get_agent_jobid_example Python %} ``` python import requests token = "YOUR_API_TOKEN" job_id = "p123456789-u12345-a67890-bot:minimax" api_url = f"https://api.useapi.net/v1/minimax/agent/{job_id}" response = requests.get( api_url, headers={'Authorization': f'Bearer {token}'} ) job = response.json() print(f"Job status: {job['status']}") if job['status'] == 'completed' and job.get('response', {}).get('attachments'): for att in job['response']['attachments']: print(f"{att['file']['fileName']}: {att['file']['fileUrl']}") elif job['status'] == 'failed': print(f"Job failed: {job['error']}") ``` {% endtab %} {% endtabs %} === URL: https://useapi.net/docs/api-minimax-v1/get-minimax-agent-jobs === Document URL: https://useapi.net/docs/api-minimax-v1/get-minimax-agent-jobs --- layout: default title: GET agent/jobs parent: MiniMax API v1 nav_order: 2200 --- ## List Running Agent Jobs {: .no_toc } November 24, 2025 ## Table of contents {: .no_toc .text-delta } 1. TOC {:toc} --- List all currently running agent jobs for your account. This endpoint returns jobs that are still being processed (status: `started`). Completed and failed jobs are not included in this list but can be retrieved using [GET agent/`jobId`](https://useapi.net/docs/api-minimax-v1/get-minimax-agent-jobId) if you have the job ID. {: .get } > **https://api.useapi.net/v1/minimax/agent/jobs** ##### Request Headers ``` yaml Authorization: Bearer {API token} ``` - `API token` is **required**, see [Setup useapi.net](../start-here/setup-useapi) for details. ##### Responses {% tabs get_agent_jobs_response %} {% tab get_agent_jobs_response 200 %} 200 OK List of running jobs returned successfully. Returns jobs grouped by account with execution statistics. ```json { "accounts": ["67890", "54321"], "summary": { "67890": { "executing": 2 }, "54321": { "executing": 1 } }, "executing": { "67890": [ { "jobId": "p123456789-u12345-a67890-bot:minimax", "elapsed": "02:15" }, { "jobId": "p987654321-u12345-a67890-bot:minimax", "elapsed": "01:30" } ], "54321": [ { "jobId": "p456789123-u12345-a54321-bot:minimax", "elapsed": "00:45" } ] } } ``` {% endtab %} {% tab get_agent_jobs_response 401 %} 401 Unauthorized Invalid API token. ```json { "error": "Unauthorized" } ``` {% endtab %} {% endtabs %} ##### Model ```typescript { accounts: string[] // List of account IDs with configured access summary: Record executing: Record> } ``` ##### Examples {% tabs get_agent_jobs_example %} {% tab get_agent_jobs_example Curl %} ``` bash curl -H "Authorization: Bearer YOUR_API_TOKEN" \ "https://api.useapi.net/v1/minimax/agent/jobs" ``` {% endtab %} {% tab get_agent_jobs_example JavaScript %} ``` javascript const token = "YOUR_API_TOKEN"; const apiUrl = "https://api.useapi.net/v1/minimax/agent/jobs"; const response = await fetch(apiUrl, { headers: { 'Authorization': `Bearer ${token}` } }); const result = await response.json(); console.log(`${result.accounts.length} account(s) configured`); for (const account of result.accounts) { const summary = result.summary[account]; if (summary) { console.log(`Account ${account}: ${summary.executing} job(s) executing`); } const jobs = result.executing[account] || []; jobs.forEach(job => { console.log(` ${job.jobId} (${job.elapsed})`); }); } ``` {% endtab %} {% tab get_agent_jobs_example Python %} ``` python import requests token = "YOUR_API_TOKEN" api_url = "https://api.useapi.net/v1/minimax/agent/jobs" response = requests.get( api_url, headers={'Authorization': f'Bearer {token}'} ) result = response.json() print(f"{len(result['accounts'])} account(s) configured") for account in result['accounts']: summary = result['summary'].get(account) if summary: print(f"Account {account}: {summary['executing']} job(s) executing") jobs = result['executing'].get(account, []) for job in jobs: print(f" {job['jobId']} ({job['elapsed']})") ``` {% endtab %} {% endtabs %} === URL: https://useapi.net/docs/api-minimax-v1/get-minimax-audio-config === Document URL: https://useapi.net/docs/api-minimax-v1/get-minimax-audio-config --- layout: default title: GET audio/config nav_order: 2700 nav_exclude: true --- ## Retrieve audio configuration parameters {: .no_toc } December 23, 2024 (August 21, 2025) This version of MiniMax audio has been decommissioned. Consider switching to Mureka API ## Table of contents {: .no_toc .text-delta } 1. TOC {:toc} --- Please configure at least one [www.minimax.io/audio](https://www.minimax.io/audio) account for this endpoint, see [Setup MiniMax](../start-here/setup-minimax) for details. {: .get } > **https://api.useapi.net/v1/minimax/audio/config/?…** ##### Request Headers ``` yaml Authorization: Bearer {API token} Content-Type: application/json ``` - `API token` is **required**, see [Setup useapi.net](../start-here/setup-useapi) for details. ##### Query Parameters - `account` is optional when only one [account](../api-minimax-v1/get-minimax-accounts) configured. However, if you have multiple accounts configured, this parameter becomes **required**. ##### Responses {% tabs get_MiniMax_audio_config_response %} {% tab get_MiniMax_audio_config_response 200 %} 200 OK ```json { "t2a_emotion": [ { "label": "Happy", "value": "happy" }, { "label": "...", "value": "..." } ], "voice_tag_accent": [ { "language": "English", "tag_name": "US (General)" }, { "language": "...", "tag_name": "..." } ], "voice_tag_age": [ { "tag_name": "Young Adult" }, { "tag_name": "..." } ], "voice_tag_gender": [ { "tag_name": "Male" }, { "tag_name": "..." } ], "voice_tag_language": [ { "tag_name": "English" }, { "tag_name": "..." } ] } ``` {% endtab %} {% tab get_MiniMax_audio_config_response 400 %} 400 Bad Request ```json { "error": "", "code": 400 } ``` {% endtab %} {% tab get_MiniMax_audio_config_response 401 %} 401 Unauthorized ```json { "error": "Unauthorized", "code": 401 } ``` {% endtab %} {% endtabs %} ##### Model ```typescript { // TypeScript, all fields are optional t2a_emotion: { label: string value: string }[] voice_tag_accent: { language: string tag_name: string }[] voice_tag_age: { tag_name: string }[] voice_tag_gender: { tag_name: string }[] voice_tag_language: { tag_name: string }[] } ``` ##### Examples {% tabs get_MiniMax_audio_config_example %} {% tab get_MiniMax_audio_config_example Curl %} ``` bash curl "https://api.useapi.net/v1/minimax/audio/config/?account=account" \ -H "Accept: application/json" \ -H "Authorization: Bearer …" ``` {% endtab %} {% tab get_MiniMax_audio_config_example JavaScript %} ``` javascript const token = "API token"; const account = "Previously configured account"; const apiUrl = `https://api.useapi.net/v1/minimax/audio/config/?account=${account}`; const response = await fetch(apiUrl, { headers: { "Authorization": `Bearer ${token}`, }, }); const result = await response.json(); console.log("response", {response, result}); ``` {% endtab %} {% tab get_MiniMax_audio_config_example Python %} ``` python import requests token = "API token" account = "Previously configured account" apiUrl = f"https://api.useapi.net/v1/minimax/audio/config/?account={account}" headers = { "Content-Type": "application/json", "Authorization" : f"Bearer {token}" } response = requests.get(apiUrl, headers=headers) print(response, response.json()) ``` {% endtab %} {% endtabs %} === URL: https://useapi.net/docs/api-minimax-v1/get-minimax-audio-voices === Document URL: https://useapi.net/docs/api-minimax-v1/get-minimax-audio-voices --- layout: default title: GET audio/voices nav_order: 2600 nav_exclude: true --- ## Retrieve the list of system and cloned audio voices {: .no_toc } December 23, 2024 (August 21, 2025) This version of MiniMax audio has been decommissioned. Consider switching to Mureka API ## Table of contents {: .no_toc .text-delta } 1. TOC {:toc} --- Please configure at least one [www.minimax.io/audio](https://www.minimax.io/audio) account for this endpoint, see [Setup MiniMax](../start-here/setup-minimax) for details. Over **300** pre-built voices provided supporting the following: * Languages: English, Chinese (Mandarin), Spanish, French, Russian, Portuguese, Indonesian, German, Japanese, Korean, Italian, Cantonese * Emotions: happy, sad, angry, fearful, disgusted, surprised, neutral * Accents: US (General), English, Indian * Ages: Young Adult, Adult, Middle-Aged, Senior * Genders: Male, Female {: .get } > **https://api.useapi.net/v1/minimax/audio/voices/?…** ##### Request Headers ``` yaml Authorization: Bearer {API token} Content-Type: application/json ``` - `API token` is **required**, see [Setup useapi.net](../start-here/setup-useapi) for details. ##### Query Parameters - `account` is optional when only one [account](../api-minimax-v1/get-minimax-accounts) configured. However, if you have multiple accounts configured, this parameter becomes **required**. - `tag_list` is optional. Specify a comma-separated list of tags using those returned by [GET audio/config](../api-minimax-v1/get-minimax-audio-config) to narrow down the returned results. Example: `Italian,Female,Adult,Calm` - `page` and `page_size` are optional. Use them to retrieve the next page of data when the returned `has_more` field is `true`. Default `page_size` is 500. - `is_system` is optional. Set to `false` if you want to retrieve a list of custom voices cloned via [POST audio/clone-voice](../api-minimax-v1/post-minimax-audio-clone-voice). The entire list of custom voices will be returned at once, the `page` and `page_size` parameters will not be used. Default is `true` (return system voices). ##### Responses {% tabs get_MiniMax_audio_voices_response %} {% tab get_MiniMax_audio_voices_response 200 %} 200 OK `GET` [https://api.useapi.net/v1/minimax/audio/voices/?tag_list=Italian,Female,Adult,Calm](https://api.useapi.net/v1/minimax/audio/voices/?tag_list=Italian,Female,Adult,Calm) ```json { "voice_list": [ { "voice_id": "209544421245048", "parent_voice_id": "0", "voice_name": "Diligent Leader", "tag_list": [ "Italian", "Female", "Adult", "Calm", "Standard" ], "file_id": "", "cover_url": "https://cdn.hailuoai.video/moss/staging/2024-11-21-14/moss-audio/voice_cover//1732171514479796864-207331589841022.png?x-oss-process=image/resize,p_50/format,webp", "create_time": 1732711650948, "update_time": 1732711650948, "collected": false, "voice_status": 2, "sample_audio": "https://cdn.hailuoai.video/moss/staging/2024-11-25-20/moss-audio/voice_sample_audio/1732537441602153587-official_sample_audio/4_it05.mp3", "uniq_id": "Italian_DiligentLeader", "group_id": "0" } ], "total": 1, "has_more": false } ``` {% endtab %} {% tab get_MiniMax_audio_voices_response 400 %} 400 Bad Request ```json { "error": "", "code": 400 } ``` {% endtab %} {% tab get_MiniMax_audio_voices_response 401 %} 401 Unauthorized ```json { "error": "Unauthorized", "code": 401 } ``` {% endtab %} {% endtabs %} ##### Model ```typescript { // TypeScript, all fields are optional voice_list: { voice_id: string parent_voice_id: string voice_name: string tag_list: string[] file_id: string cover_url: string create_time: number update_time: number collected: boolean voice_status: number sample_audio: string uniq_id: string group_id: string managed_by_api: boolean is_expired: boolean refresh_count: number cloned_id: string clone: { voice_name: string language_tag: string need_noise_reduction: boolean files: { file_id: string file_name: string }[] } }[] total: number has_more: boolean } ``` ##### Examples {% tabs get_MiniMax_audio_voices_example %} {% tab get_MiniMax_audio_voices_example Curl %} ``` bash curl "https://api.useapi.net/v1/minimax/audio/voices/?account=account" \ -H "Accept: application/json" \ -H "Authorization: Bearer …" ``` {% endtab %} {% tab get_MiniMax_audio_voices_example JavaScript %} ``` javascript const token = "API token"; const account = "Previously configured account"; const apiUrl = `https://api.useapi.net/v1/minimax/audio/voices/?account=${account}`; const response = await fetch(apiUrl, { headers: { "Authorization": `Bearer ${token}`, }, }); const result = await response.json(); console.log("response", {response, result}); ``` {% endtab %} {% tab get_MiniMax_audio_voices_example Python %} ``` python import requests token = "API token" account = "Previously configured account" apiUrl = f"https://api.useapi.net/v1/minimax/audio/voices/?account={account}" headers = { "Content-Type": "application/json", "Authorization" : f"Bearer {token}" } response = requests.get(apiUrl, headers=headers) print(response, response.json()) ``` {% endtab %} {% endtabs %} === URL: https://useapi.net/docs/api-minimax-v1/get-minimax-audio === Document URL: https://useapi.net/docs/api-minimax-v1/get-minimax-audio --- layout: default title: GET audio nav_order: 2400 nav_exclude: true --- ## Retrieve the list of text-to-speech audio clips you have generated {: .no_toc } December 23, 2024 (August 21, 2025) This version of MiniMax audio has been decommissioned. Consider switching to Mureka API ## Table of contents {: .no_toc .text-delta } 1. TOC {:toc} --- Please configure at least one [www.minimax.io/audio](https://www.minimax.io/audio) account for this endpoint, see [Setup MiniMax](../start-here/setup-minimax) for details. This endpoint will return audio clips generated by * [POST audio/create-mp3](https://useapi.net/docs/api-minimax-v1/get-minimax-audio-create-mp3) * [POST audio/create-stream](https://useapi.net/docs/api-minimax-v1/get-minimax-audio-create-stream) {: .get } > **https://api.useapi.net/v1/minimax/audio/?…** ##### Request Headers ``` yaml Authorization: Bearer {API token} Content-Type: application/json ``` - `API token` is **required**, see [Setup useapi.net](../start-here/setup-useapi) for details. ##### Query Parameters - `account` is optional when only one [account](../api-minimax-v1/get-minimax-accounts) configured. However, if you have multiple accounts configured, this parameter becomes **required**. - `page` and `page_size` are optional. Use them to retrieve the next page of data when the returned `has_more` field is `true`. Default `page_size` is 100. ##### Responses {% tabs get_MiniMax_audio_response %} {% tab get_MiniMax_audio_response 200 %} 200 OK ```json { "audio_list": [ { "audio_id": "user:user_id-minimax:account_id-audio:audio_id", "audio_review": 0, "user_id": 987654321, "audio_title": "