> **Building with AI coding agents?** Install the authstack plugin with one command. This equips your agent with accurate Scalekit implementation patterns.
>
> **Recommended** (the `-y` flags skip prompts, so the command runs without an interactive terminal):
> ```bash
> npx -y @scalekit-inc/cli setup -y
> ```
>
> Global:
> ```bash
> npm install -g @scalekit-inc/cli
> scalekit setup -y
> ```
>
> Supports Claude Code, Cursor, GitHub Copilot, Codex + skills for other Agent Skills-compatible agents in `~/.agents/skills`.
> Skills: integrate-agentkit, implement-saaskit, add-mcp-oauth, implement-sso, implement-scim.
> [Full setup guide](https://docs.scalekit.com/dev-kit/build-with-ai/)

---

# Connect AI agents to MiniMax

The MiniMax connector lets your AI agent act in each user's MiniMax account. Each user connects their own MiniMax access token once, and Scalekit sends it with every call, so your agent never handles credentials. It comes with 19 tools.

**Authentication:** Bearer Token
**Categories:** AI, Media
**Tools:** 19: 7 read, 10 write, 2 destructive
**Users sign in with:** Access token
**Built by:** Scalekit connector
**Try it:** [Playground in the Scalekit dashboard](https://app.scalekit.com/ws/signup?sk_intent=playground&provider=MINIMAX)

## Setup

1. ### Install the SDK

   **Node.js**

   ```bash
   npm install @scalekit-sdk/node dotenv
   ```

   **Python**

   ```bash
   pip install scalekit-sdk-python python-dotenv
   ```

2. ### Set your credentials

   Add your Scalekit credentials to your `.env` file. Find values in **[app.scalekit.com](https://app.scalekit.com)** > **Developers** > **API Credentials**.

   ```sh title=".env"
   SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
   SCALEKIT_CLIENT_ID=<your-client-id>
   SCALEKIT_CLIENT_SECRET=<your-client-secret>
   ```

3. ### Create the MiniMax connection

   In **AgentKit > Connections**, create a MiniMax connection. The name you give it is the `connection_name` your code passes. See [Configure connections](/agentkit/connections/).

4. ### Authorize a user and make your first call

   **Node.js** (`quickstart.mts`)

   ```typescript
   import { ScalekitClient } from '@scalekit-sdk/node'
   import 'dotenv/config'
   import { createInterface } from 'node:readline/promises'

   const scalekit = new ScalekitClient(
     process.env.SCALEKIT_ENVIRONMENT_URL,
     process.env.SCALEKIT_CLIENT_ID,
     process.env.SCALEKIT_CLIENT_SECRET,
   )
   const actions = scalekit.actions

   const connector = 'minimax'
   const identifier = 'user_123'

   // Generate an authorization link for the user
   const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
   console.log('Authorize MiniMax:', link)
   const rl = createInterface({ input: process.stdin, output: process.stdout })
   await rl.question('Press Enter after authorizing...')
   rl.close()

   // Make your first call
   const result = await actions.executeTool({
     connector,
     identifier,
     toolName: 'minimax_list_h3_video_tasks',
     toolInput: {},
   })
   console.log(result)
   ```

   ```bash
   npx tsx quickstart.mts
   ```

   **Python** (`quickstart.py`)

   ```python
   import os
   from scalekit import ScalekitClient
   from dotenv import load_dotenv
   load_dotenv()

   scalekit_client = ScalekitClient(
       env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),
       client_id=os.getenv("SCALEKIT_CLIENT_ID"),
       client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),
   )
   actions = scalekit_client.actions

   connection_name = "minimax"
   identifier = "user_123"

   # Generate an authorization link for the user
   link_response = actions.get_authorization_link(
       connection_name=connection_name,
       identifier=identifier,
   )
   print("Authorize MiniMax:", link_response.link)
   input("Press Enter after authorizing...")

   # Make your first call
   result = actions.execute_tool(
       tool_input={},
       tool_name="minimax_list_h3_video_tasks",
       connection_name=connection_name,
       identifier=identifier,
   )
   print(result)
   ```

   ```bash
   python quickstart.py
   ```

   Each user opens the link once and enters their MiniMax credentials there. See [Authorize a user](/agentkit/tools/authorize/) for the full flow and statuses.

## Tools

Pass the exact name to `execute_tool`, with an input like each tool's example. To ask for a tool that's missing, use the [request form](https://scalekitsupport.portal.usepylon.com/forms/request-a-connector-tool).

**Node.js**

```typescript
const result = await actions.executeTool({
  toolName: 'minimax_get_h3_video_task',
  toolInput: {
    task_id: '<task_id>',
  },
  connector: 'minimax',
  identifier: 'user_123',
})
```

**Python**

```python
result = actions.execute_tool(
    tool_name="minimax_get_h3_video_task",
    tool_input={
        "task_id": "<task_id>",
    },
    connection_name="minimax",
    identifier="user_123",
)
```

`result.data` is the app's response as JSON, and `result.execution_id` (`executionId` in Node.js) is the ID of the call.

### `minimax_get_h3_video_task`

Get H3 Video Task · Read-only

Get the status and result of a MiniMax H3 video task from the last 7 days.
Returns task with status (queued, running, succeeded, failed or cancelled), error, resolution, duration, ratio, usage and, on success, content.url: a time-limited download URL for the video.
Use this to poll a task from minimax_create_h3_video_task; query again for a fresh URL after it expires. Use minimax_list_h3_video_tasks to find task IDs, and minimax_get_video_task for Hailuo tasks.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `task_id` (`string`, required): Task ID returned by minimax_create_h3_video_task or minimax_list_h3_video_tasks. Example: 424010985738629

Example input: `{"task_id":"<task_id>"}`

### `minimax_get_speech_task`

Get Long Speech Task · Read-only

Get the status of a long text-to-speech task.
Returns status (Processing, Success, Failed or Expired) and file_id. MiniMax reports most errors inside a 200 response: check base_resp.status_code (0 is success; 1004 bad API key, 1008 insufficient balance, 2013 invalid parameters).
Use this to poll tasks from minimax_create_speech_task.
On Success, pass file_id to minimax_retrieve_file for the download URL.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `task_id` (`string`, required): Task ID returned by minimax_create_speech_task. Example: 95157322514444

Example input: `{"task_id":"<task_id>"}`

### `minimax_get_video_task`

Get Hailuo Video Task · Read-only

Get the status of a Hailuo video generation task.
Returns status (Preparing, Queueing, Processing, Success or Fail) and, on Success, the file_id and video width and height. MiniMax reports most errors inside a 200 response: check base_resp.status_code (0 is success; 1004 bad API key, 1008 insufficient balance, 2013 invalid parameters).
Use this to poll tasks from minimax_create_video_task. Use minimax_get_h3_video_task for MiniMax H3 tasks.
On Success, pass file_id to minimax_retrieve_file to get the download URL.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `task_id` (`string`, required): Task ID returned by minimax_create_video_task. Example: 106916112212032

Example input: `{"task_id":"<task_id>"}`

### `minimax_list_files`

List Files · Read-only

List files uploaded to the MiniMax account for one purpose.
Returns files with file_id, filename, bytes, created_at and purpose. MiniMax reports most errors inside a 200 response: check base_resp.status_code (0 is success; 1004 bad API key, 1008 insufficient balance, 2013 invalid parameters).
Use this to find the ID of an uploaded file, for example to reference it as mm_file://<file_id> in minimax_create_h3_video_task. Use minimax_retrieve_file for one file's download URL.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `purpose` (`string`, required): Which files to list: voice_clone (voice cloning source audio), prompt_audio (voice cloning sample audio), t2a_async_input (long-speech text files) or video_generation_input (video input media). One of: `voice_clone`, `prompt_audio`, `t2a_async_input`, `video_generation_input`.

Example input: `{"purpose":"voice_clone"}`

### `minimax_list_h3_video_tasks`

List H3 Video Tasks · Read-only

List MiniMax H3 video tasks from the last 7 days, newest first, with optional filters.
Returns items (each with id, model, status, error, content.url when succeeded, resolution, duration and task_type) and total.
Use this to find recent H3 tasks or check several at once. Use minimax_get_h3_video_task for one task by ID.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `model` (`string`, optional): Only tasks for this model. Example: MiniMax-H3
- `page_num` (`integer`, optional): Page number, starting at 1. Example: 1
- `page_size` (`integer`, optional): Number of tasks per page. Example: 20
- `status` (`string`, optional): Only tasks with this status. One of: `queued`, `running`, `succeeded`, `failed`, `cancelled`.
- `task_ids` (`array`, optional): Only these task IDs. Example: ["424010985738629"]
- `task_type` (`string`, optional): Only tasks of this type: generation (video generation), h3_context_ir or regeneration. One of: `generation`, `h3_context_ir`, `regeneration`.

Example input: `{}`

### `minimax_list_models`

List Models · Read-only

List the MiniMax language models available through the OpenAI-compatible API.
Returns data, an array of models with id, created and owned_by.
Use this to check valid model IDs for minimax_create_chat_completion.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `minimax_retrieve_file`

Retrieve File · Read-only

Get a file's metadata and a temporary download URL by file ID.
Returns file with file_id, filename, bytes, created_at, purpose and download_url. MiniMax reports most errors inside a 200 response: check base_resp.status_code (0 is success; 1004 bad API key, 1008 insufficient balance, 2013 invalid parameters).
Use this to download the result of a Hailuo video task (minimax_get_video_task) or a long speech task (minimax_get_speech_task). Use minimax_list_files to browse uploaded files.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `file_id` (`string`, required): ID of the file. Comes from the file_id field of minimax_get_video_task, minimax_get_speech_task or minimax_list_files. Example: 205258526306433

Example input: `{"file_id":"<file_id>"}`

### `minimax_create_chat_completion`

Create Chat Completion · Write

Send a conversation to a MiniMax M3 language model and get the assistant's reply (OpenAI-compatible Chat Completions, non-streaming).
Returns choices[0].message with content, reasoning_content (the model's thinking) and any tool_calls, plus finish_reason and token usage.
Use this for text generation, analysis, coding and function calling with MiniMax models. Use minimax_list_models to see the model IDs your key can call.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `messages` (`array`, required): Conversation so far, oldest first. Each message has a role (system, user, assistant or tool) and content. Content is a string, or an array of OpenAI-style content parts for images and video. A tool result needs tool_call_id set to the id of the assistant's tool call. Example: [{"role": "system", "content": "You are a concise assistant."}, {"role": "user", "content": "Summarise the plot of Hamlet in two sentences."}]
- `model` (`string`, required): MiniMax language model to use. MiniMax-M3.1-Flash always thinks and supports reasoning_effort; MiniMax-M3 thinks adaptively and can turn thinking off. One of: `MiniMax-M3.1-Flash`, `MiniMax-M3`.
- `max_completion_tokens` (`integer`, optional): Maximum number of tokens to generate, including thinking. MiniMax recommends 131072 and allows up to 524288 for M3 models. Example: 4096
- `reasoning_effort` (`string`, optional): Thinking depth for MiniMax-M3.1-Flash (server default max). Other models ignore it. One of: `low`, `medium`, `high`, `xhigh`, `max`.
- `reasoning_split` (`boolean`, optional): true returns thinking separately in reasoning_content; false keeps it inside content wrapped in <think> tags. MiniMax-M3.1-Flash does not accept false.
- `service_tier` (`string`, optional): Admission tier. standard (server default) or priority, which costs 1.5 times standard and is admitted first under load. One of: `standard`, `priority`.
- `thinking_type` (`string`, optional): Thinking mode. adaptive (server default) lets the model decide when to think. disabled skips thinking on MiniMax-M3; MiniMax-M3.1-Flash rejects disabled with HTTP 400. One of: `adaptive`, `disabled`.
- `tools` (`array`, optional): Function tools the model may call, in OpenAI format. Example: [{"type": "function", "function": {"name": "get_weather", "description": "Get the weather for a city", "parameters": {"type": "object", "properties": {"city": {"type": "string"}}, "required": ["city"]}}}]

Example input: `{"messages":[{"role":"system","content":"You are a concise assistant."},{"role":"user","content":"Summarise the plot of Hamlet in two sentences."}],"model":"MiniMax-M3.1-Flash"}`

### `minimax_create_h3_video_task`

Create H3 Video Task · Write

Start an asynchronous MiniMax H3 video generation task: text-to-video, image-to-video from a first and/or last frame, or reference-to-video from reference images, videos and audio.
Returns task_id. Errors come back as HTTP 4xx with an error object.
Use this for MiniMax-H3 (768P or 2K, 4 to 15 s) and MiniMax-H3-Max (fast, 480P or 768P, 5 to 15 s). Use minimax_create_video_task for the legacy Hailuo models.
Poll minimax_get_h3_video_task with the task_id; the finished task carries the video download URL directly.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `duration` (`integer`, required): Length in seconds: 4 to 15 for MiniMax-H3, 5 to 15 for MiniMax-H3-Max. Example: 6. One of: `4`, `5`, `6`, `7`, `8`, `9`, `10`, `11`, `12`, `13`, `14`, `15`.
- `model` (`string`, required): H3 video model. MiniMax-H3 supports 768P and 2K; MiniMax-H3-Max is the fast variant with 480P and 768P. One of: `MiniMax-H3`, `MiniMax-H3-Max`.
- `prompt` (`string`, required): Description of the video, up to 7,000 characters. Always required, also when images or references are given. Example: A paper boat drifts down a rain-soaked street at night, neon reflections in the water
- `resolution` (`string`, required): Output resolution. MiniMax-H3: 768P or 2K. MiniMax-H3-Max: 480P or 768P. One of: `480P`, `768P`, `2K`.
- `first_frame_image` (`string`, optional): Opening frame for image-to-video: a public URL, mm_file://<file_id> or a data URL. JPG, PNG, WEBP, HEIC or HEIF up to 30 MB, 256 to 5760 px per side. Cannot be combined with reference media.
- `last_frame_image` (`string`, optional): Closing frame for image-to-video, alone or with first_frame_image: a public URL, mm_file://<file_id> or a data URL. Cannot be combined with reference media.
- `prompt_expansion_mode` (`string`, optional): Prompt expansion for MiniMax-H3-Max only: disabled, balanced (server default) or quality. One of: `disabled`, `balanced`, `quality`.
- `ratio` (`string`, optional): Aspect ratio. Required for text-to-video (any value except adaptive). Ignored for image-to-video, where the image sets the ratio. Optional for reference-to-video (default adaptive). One of: `adaptive`, `21:9`, `16:9`, `4:3`, `1:1`, `3:4`, `9:16`.
- `reference_audios` (`array`, optional): Up to 3 reference audio clips (WAV or MP3, 2 to 15 s each, 15 s total, up to 15 MB each) as public URLs or mm_file://<file_id>. Example: ["https://example.com/audio/theme.mp3"]
- `reference_images` (`array`, optional): Up to 9 reference images for reference-to-video (public URLs, mm_file://<file_id> or data URLs). Cannot be combined with first or last frame. Example: ["https://example.com/images/character.png"]
- `reference_videos` (`array`, optional): Up to 3 reference videos (MP4 or MOV, 2 to 15 s each, 15 s total, up to 50 MB each) as public URLs or mm_file://<file_id>. Example: ["https://example.com/clips/dance.mp4"]

Example input: `{"duration":6,"model":"MiniMax-H3","prompt":"<prompt>","resolution":"480P"}`

### `minimax_create_speech_task`

Create Long Speech Task · Write

Start an asynchronous text-to-speech task for long text, up to 50,000 characters.
Returns task_id, file_id and usage_characters. MiniMax reports most errors inside a 200 response: check base_resp.status_code (0 is success; 1004 bad API key, 1008 insufficient balance, 2013 invalid parameters).
Use this for long texts such as articles or book chapters. Use minimax_text_to_speech for texts under 10,000 characters when you want the audio in the same call.
Poll minimax_get_speech_task until status is Success, then pass file_id to minimax_retrieve_file for the download URL.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `model` (`string`, required): Speech model. speech-2.8-hd and speech-2.8-turbo are current; the 2.6 and 02 models are legacy. One of: `speech-2.8-hd`, `speech-2.8-turbo`, `speech-2.6-hd`, `speech-2.6-turbo`, `speech-02-hd`, `speech-02-turbo`.
- `text` (`string`, required): Text to speak, up to 50,000 characters. Pause with <#x#> (seconds). Example: Chapter one. <#1#> It was a bright cold day in April.
- `voice_id` (`string`, required): ID of the voice that reads the text: a system voice, a cloned voice or a designed voice. Get valid IDs from minimax_list_voices (voice_id field). Example: English_expressive_narrator.
- `audio_format` (`string`, optional): Audio container/encoding of the result. Server default mp3. pcmu_raw and pcmu_wav are G.711 mu-law at 8 kHz; opus is Ogg/Opus. One of: `mp3`, `pcm`, `flac`, `wav`, `pcmu_raw`, `pcmu_wav`, `opus`.
- `bitrate` (`integer`, optional): Bitrate in bits per second for mp3 output. One of 32000, 64000, 128000, 256000. Example: 128000. One of: `32000`, `64000`, `128000`, `256000`.
- `channel` (`integer`, optional): Number of audio channels: 1 for mono, 2 for stereo (server default 2). One of: `1`, `2`.
- `emotion` (`string`, optional): Emotion of the delivery. Leave empty to let the model pick the most natural emotion for the text. fluent and whisper work only with speech-2.6-hd and speech-2.6-turbo; speech-2.8 models do not support whisper. One of: `happy`, `sad`, `angry`, `fearful`, `disgusted`, `surprised`, `calm`, `fluent`, `whisper`.
- `language_boost` (`string`, optional): Improves recognition of a specific language or dialect. Use auto when the language is unknown. Use Chinese,Yue for Cantonese voices. Example: English. One of: `Chinese`, `Chinese,Yue`, `English`, `Arabic`, `Russian`, `Spanish`, `French`, `Portuguese`, `German`, `Turkish`, `Dutch`, `Ukrainian`, `Vietnamese`, `Indonesian`, `Japanese`, `Italian`, `Korean`, `Thai`, `Polish`, `Romanian`, `Greek`, `Czech`, `Finnish`, `Hindi`, `Bulgarian`, `Danish`, `Hebrew`, `Malay`, `Persian`, `Slovak`, `Swedish`, `Croatian`, `Filipino`, `Hungarian`, `Norwegian`, `Slovenian`, `Catalan`, `Nynorsk`, `Tamil`, `Afrikaans`, `auto`.
- `pitch` (`integer`, optional): Pitch shift in semitones from -12 to 12. 0 (server default) keeps the original pitch. Example: -2
- `pronunciation_rules` (`array`, optional): Custom pronunciations, each written as original/replacement. The replacement can be plain text, IPA in parentheses, pinyin with tone numbers in parentheses, or Japanese kana. Example: ["omg/oh my god", "read/(ri:d)"]
- `sample_rate` (`integer`, optional): Sample rate in Hz. One of 8000, 16000, 22050, 24000, 32000, 44100. Example: 32000. One of: `8000`, `16000`, `22050`, `24000`, `32000`, `44100`.
- `speed` (`number`, optional): Speaking speed from 0.5 to 2. Higher is faster. Server default 1.0. Example: 1.2
- `volume` (`number`, optional): Loudness, greater than 0 and up to 10. Server default 1.0. Example: 2

Example input: `{"model":"speech-2.8-hd","text":"<text>","voice_id":"<voice_id>"}`

### `minimax_create_video_task`

Create Hailuo Video Task · Write

Start an asynchronous MiniMax Hailuo video generation task from a text prompt, a first-frame image, or first and last frames.
Returns task_id. MiniMax reports most errors inside a 200 response: check base_resp.status_code (0 is success; 1004 bad API key, 1008 insufficient balance, 2013 invalid parameters).
Use this for the Hailuo models (MiniMax-Hailuo-2.3, MiniMax-Hailuo-2.3-Fast, MiniMax-Hailuo-02). Use minimax_create_h3_video_task for the newer MiniMax H3 models with 2K output and reference media.
Poll minimax_get_video_task with the task_id until status is Success, then pass its file_id to minimax_retrieve_file for the download URL.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `model` (`string`, required): Hailuo video model. Text-to-video: MiniMax-Hailuo-2.3 or MiniMax-Hailuo-02. Image-to-video: all three. First and last frame: MiniMax-Hailuo-02 only. One of: `MiniMax-Hailuo-2.3`, `MiniMax-Hailuo-2.3-Fast`, `MiniMax-Hailuo-02`.
- `duration` (`integer`, optional): Length in seconds: 6 (server default) or 10. 10 seconds is available only at 512P or 768P. One of: `6`, `10`.
- `fast_pretreatment` (`boolean`, optional): Shortens prompt optimization time when prompt_optimizer is on. Server default false.
- `first_frame_image` (`string`, optional): Image to start the video from, as a public URL or a data URL (data:image/jpeg;base64,...). JPG, PNG or WebP under 20 MB, short side over 300 px, aspect ratio between 2:5 and 5:2.
- `last_frame_image` (`string`, optional): Image to end the video on (MiniMax-Hailuo-02 only, together with first_frame_image). Public URL or data URL; it is cropped to the first frame's size if they differ.
- `prompt` (`string`, optional): Description of the video, up to 2,000 characters. Required for text-to-video, optional with images. Camera moves can be written in brackets, such as [Pan left], [Push in], [Tracking shot] or [Static shot]. Example: A red fox runs through fresh snow at dawn [Tracking shot]
- `prompt_optimizer` (`boolean`, optional): Whether MiniMax rewrites the prompt for better results. Server default true; set false for precise control.
- `resolution` (`string`, optional): Output resolution. 768P is the default for Hailuo models; 1080P allows 6 seconds only; 512P is image-to-video on MiniMax-Hailuo-02 only. One of: `512P`, `768P`, `1080P`.

Example input: `{"model":"MiniMax-Hailuo-2.3"}`

### `minimax_design_voice`

Design Voice · Write

Create a new custom voice from a text description and get a spoken preview of it.
Returns voice_id and trial_audio, the preview hex-encoded. MiniMax reports most errors inside a 200 response: check base_resp.status_code (0 is success; 1004 bad API key, 1008 insufficient balance, 2013 invalid parameters).
Use this to make a voice that does not exist yet; use the returned voice_id in minimax_text_to_speech. Use minimax_list_voices to reuse existing voices. Preview audio costs 30 USD per million characters, and a designed voice is billed on its first use in synthesis.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `preview_text` (`string`, required): Text the new voice reads for the preview. Keep it short; preview audio is billed per character. Example: Welcome to the evening news.
- `prompt` (`string`, required): Description of the voice: gender, age, accent, tone and style. Example: A calm middle-aged British man with a warm, low voice, like a documentary narrator
- `voice_id` (`string`, optional): Custom ID for the new voice. Leave empty to have MiniMax generate one. Example: narrator_uk_warm_01

Example input: `{"preview_text":"<preview_text>","prompt":"<prompt>"}`

### `minimax_generate_image`

Generate Image · Write

Generate 1 to 9 images from a text prompt, optionally keeping the likeness of a person from a reference portrait.
Returns data.image_urls (links valid for 24 hours) or data.image_base64, and metadata with success_count and failed_count (images blocked by content safety). MiniMax reports most errors inside a 200 response: check base_resp.status_code (0 is success; 1004 bad API key, 1008 insufficient balance, 2013 invalid parameters).
Use this for still images. Use minimax_create_h3_video_task or minimax_create_video_task for video.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `model` (`string`, required): Image model. image-01 does text-to-image and image-to-image; image-01-live generates from a prompt plus a reference portrait. One of: `image-01`, `image-01-live`.
- `prompt` (`string`, required): Description of the image, up to 1,500 characters. Example: A watercolor lighthouse on a cliff at sunset
- `aspect_ratio` (`string`, optional): Aspect ratio (server default 1:1 at 1024x1024). 16:9 is 1280x720, 9:16 is 720x1280, 21:9 is 1344x576. Takes priority over width and height. One of: `1:1`, `16:9`, `4:3`, `3:2`, `2:3`, `3:4`, `9:16`, `21:9`.
- `height` (`integer`, optional): Height in pixels for image-01, 512 to 2048 and divisible by 8. Set together with width; ignored if aspect_ratio is set. Example: 768
- `n` (`integer`, optional): Number of images to generate, 1 to 9. Server default 1.
- `prompt_optimizer` (`boolean`, optional): Whether MiniMax rewrites the prompt for better results. Server default false.
- `response_format` (`string`, optional): How images come back. url (default) returns links valid for 24 hours; base64 returns the image data inline, which makes the response large. One of: `url`, `base64`. Default: `url`.
- `seed` (`integer`, optional): Random seed. The same seed and parameters reproduce the same images. Example: 42
- `subject_reference_image` (`string`, optional): Portrait of the person to keep in the images (image-to-image), as a public URL or data URL (data:image/jpeg;base64,...). One front-facing photo works best; JPG or PNG under 10 MB.
- `width` (`integer`, optional): Width in pixels for image-01, 512 to 2048 and divisible by 8. Set together with height; ignored if aspect_ratio is set. Example: 1024

Example input: `{"model":"image-01","prompt":"<prompt>"}`

### `minimax_generate_lyrics`

Generate Lyrics · Write

Write a complete set of song lyrics from a theme, or edit and continue existing lyrics.
Returns song_title, style_tags and lyrics with section tags ([Verse], [Chorus] and so on) that can be passed straight to minimax_generate_music. MiniMax reports most errors inside a 200 response: check base_resp.status_code (0 is success; 1004 bad API key, 1008 insufficient balance, 2013 invalid parameters).
Use this before minimax_generate_music when you need lyrics. Part of MiniMax's paid Music API, which is closed to new users since 2026-08-20.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `lyrics` (`string`, optional): Existing lyrics to edit or continue (edit mode only).
- `mode` (`string`, optional): write_full_song writes new lyrics; edit rewrites or continues the lyrics you pass in. One of: `write_full_song`, `edit`. Default: `write_full_song`.
- `prompt` (`string`, optional): Theme, style or editing instruction. Leave empty for a random song. Example: An upbeat pop song about moving to a new city
- `title` (`string`, optional): Song title to keep unchanged in the output. Example: City Lights

Example input: `{}`

### `minimax_generate_music`

Generate Music · Write

Generate a song from a style prompt and lyrics, an instrumental track, or a cover of a reference song, in one synchronous call.
Returns data.audio as a download URL valid for 24 hours (output_format=url, the default here) or as hex-encoded audio, and data.status (2 when complete). MiniMax reports most errors inside a 200 response: check base_resp.status_code (0 is success; 1004 bad API key, 1008 insufficient balance, 2013 invalid parameters).
Use this for music. Use minimax_generate_lyrics first if you need lyrics written. MiniMax closed the paid Music API to new users on 2026-08-20; only accounts that already pay for it can call this.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `model` (`string`, required): Music model. music-3.0 (recommended) and music-2.6 generate from prompt and lyrics; music-cover restyles a reference song given in audio_url or audio_base64. One of: `music-3.0`, `music-2.6`, `music-cover`.
- `audio_base64` (`string`, optional): Base64-encoded song to cover (music-cover only), as an alternative to audio_url.
- `audio_format` (`string`, optional): Audio format: mp3, wav or pcm. One of: `mp3`, `wav`, `pcm`.
- `audio_url` (`string`, optional): Public URL of the song to cover (music-cover only; 6 seconds to 6 minutes, up to 50 MB). Use either audio_url or audio_base64.
- `bitrate` (`integer`, optional): Bitrate in bits per second: 32000, 64000, 128000 or 256000. One of: `32000`, `64000`, `128000`, `256000`.
- `is_instrumental` (`boolean`, optional): true generates music without vocals (music-3.0 and music-2.6); lyrics are then not needed. Server default false.
- `lyrics` (`string`, optional): Song lyrics with lines separated by \n, up to 3,500 characters. Required for vocal songs on music-3.0 and music-2.6 unless lyrics_optimizer is true. Section tags such as [Intro], [Verse], [Chorus], [Bridge] and [Outro] are supported. Example: [Verse]\nWindows down and the radio on\n[Chorus]\nWe were young all summer long
- `lyrics_optimizer` (`boolean`, optional): true writes lyrics from the prompt when lyrics is empty (music-3.0 and music-2.6). Server default false.
- `output_format` (`string`, optional): How the audio comes back. url (the tool default) returns a link valid for 24 hours in data.audio; hex returns the file hex-encoded. One of: `url`, `hex`. Default: `url`.
- `prompt` (`string`, optional): Style, mood and scenario. Required for instrumentals (1-2,000 characters) and for music-cover (10-300 characters); optional for songs with lyrics. Example: Indie pop, warm and nostalgic, for a summer road trip
- `sample_rate` (`integer`, optional): Sample rate in Hz: 16000, 24000, 32000 or 44100. One of: `16000`, `24000`, `32000`, `44100`.

Example input: `{"model":"music-3.0"}`

### `minimax_list_voices`

List Voices · Write

List the voices available to the account: MiniMax system voices, voices you cloned and voices you designed.
Returns system_voice, voice_cloning and voice_generation arrays with voice_id, name or description, and creation date. MiniMax reports most errors inside a 200 response: check base_resp.status_code (0 is success; 1004 bad API key, 1008 insufficient balance, 2013 invalid parameters).
Use this to find a voice_id for minimax_text_to_speech or minimax_create_speech_task, or to check which custom voices exist before minimax_delete_voice.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `voice_type` (`string`, optional): Which voices to list: system (MiniMax voices), voice_cloning (your cloned voices), voice_generation (voices from minimax_design_voice) or all. Cloned and designed voices appear only after they have been used once for synthesis. One of: `system`, `voice_cloning`, `voice_generation`, `all`. Default: `all`.

Example input: `{}`

### `minimax_text_to_speech`

Text to Speech · Write

Convert up to 10,000 characters of text into speech with a MiniMax voice in a single synchronous call.
Returns data.audio as a download URL valid for 24 hours (output_format=url, the default here) or as hex-encoded audio, plus extra_info with duration, size, format and billed characters. MiniMax reports most errors inside a 200 response: check base_resp.status_code (0 is success; 1004 bad API key, 1008 insufficient balance, 2013 invalid parameters).
Use this for short and medium texts. Use minimax_create_speech_task for long texts up to 50,000 characters.
Get a voice_id from minimax_list_voices.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `model` (`string`, required): Speech model. speech-2.8-hd and speech-2.8-turbo are current and support interjection tags such as (laughs); the 2.6 and 02 models are legacy. One of: `speech-2.8-hd`, `speech-2.8-turbo`, `speech-2.6-hd`, `speech-2.6-turbo`, `speech-02-hd`, `speech-02-turbo`.
- `text` (`string`, required): Text to speak, under 10,000 characters. Mark paragraph breaks with newlines. Insert a pause with <#x#>, where x is seconds (0.01 to 99.99). Example: Welcome back. <#0.5#> Here is today's update.
- `voice_id` (`string`, required): ID of the voice that reads the text: a system voice, a cloned voice or a designed voice. Get valid IDs from minimax_list_voices (voice_id field). Example: English_expressive_narrator.
- `audio_format` (`string`, optional): Audio container/encoding of the result. Server default mp3. pcmu_raw and pcmu_wav are G.711 mu-law at 8 kHz; opus is Ogg/Opus. One of: `mp3`, `pcm`, `flac`, `wav`, `pcmu_raw`, `pcmu_wav`, `opus`.
- `bitrate` (`integer`, optional): Bitrate in bits per second for mp3 output. One of 32000, 64000, 128000, 256000. Example: 128000. One of: `32000`, `64000`, `128000`, `256000`.
- `channel` (`integer`, optional): Number of audio channels: 1 for mono, 2 for stereo. One of: `1`, `2`.
- `emotion` (`string`, optional): Emotion of the delivery. Leave empty to let the model pick the most natural emotion for the text. fluent and whisper work only with speech-2.6-hd and speech-2.6-turbo; speech-2.8 models do not support whisper. One of: `happy`, `sad`, `angry`, `fearful`, `disgusted`, `surprised`, `calm`, `fluent`, `whisper`.
- `language_boost` (`string`, optional): Improves recognition of a specific language or dialect. Use auto when the language is unknown. Use Chinese,Yue for Cantonese voices. Example: English. One of: `Chinese`, `Chinese,Yue`, `English`, `Arabic`, `Russian`, `Spanish`, `French`, `Portuguese`, `German`, `Turkish`, `Dutch`, `Ukrainian`, `Vietnamese`, `Indonesian`, `Japanese`, `Italian`, `Korean`, `Thai`, `Polish`, `Romanian`, `Greek`, `Czech`, `Finnish`, `Hindi`, `Bulgarian`, `Danish`, `Hebrew`, `Malay`, `Persian`, `Slovak`, `Swedish`, `Croatian`, `Filipino`, `Hungarian`, `Norwegian`, `Slovenian`, `Catalan`, `Nynorsk`, `Tamil`, `Afrikaans`, `auto`.
- `output_format` (`string`, optional): How the audio comes back. url (the tool default) returns a download link valid for 24 hours in data.audio; hex returns the whole file hex-encoded in data.audio. One of: `url`, `hex`. Default: `url`.
- `pitch` (`integer`, optional): Pitch shift in semitones from -12 to 12. 0 (server default) keeps the original pitch. Example: -2
- `pronunciation_rules` (`array`, optional): Custom pronunciations, each written as original/replacement. The replacement can be plain text, IPA in parentheses, pinyin with tone numbers in parentheses, or Japanese kana. Example: ["omg/oh my god", "read/(ri:d)"]
- `sample_rate` (`integer`, optional): Sample rate in Hz. One of 8000, 16000, 22050, 24000, 32000, 44100. Example: 32000. One of: `8000`, `16000`, `22050`, `24000`, `32000`, `44100`.
- `speed` (`number`, optional): Speaking speed from 0.5 to 2. Higher is faster. Server default 1.0. Example: 1.2
- `subtitle_enable` (`boolean`, optional): Set to true to also get a sentence-level subtitle file; its download link is returned in data.subtitle_file.
- `text_normalization_mode` (`string`, optional): Reading of numbers, dates and symbols. basic is fast and rule-based; quality adds an LLM pass for better results (2.8 and 2.6 models) at extra latency. Leave empty to skip normalization. One of: `basic`, `quality`.
- `volume` (`number`, optional): Loudness, greater than 0 and up to 10. Server default 1.0. Example: 2

Example input: `{"model":"speech-2.8-hd","text":"<text>","voice_id":"<voice_id>"}`

### `minimax_cancel_h3_video_task`

Cancel or Delete H3 Video Task · Destructive

Cancel a queued MiniMax H3 video task, or delete the record of a succeeded or failed one.
Returns task_id and action: cancelled (the task was queued) or deleted (the record was removed).
Use this to stop a task you no longer need before it runs, or to clean up finished tasks. A running task cannot be cancelled. Find task IDs with minimax_list_h3_video_tasks.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `task_id` (`string`, required): ID of the H3 task to cancel or delete. Example: 424010985738629

Example input: `{"task_id":"<task_id>"}`

### `minimax_delete_voice`

Delete Voice · Destructive

Permanently delete a cloned or designed voice from the account.
Returns the deleted voice_id and its created_time. MiniMax reports most errors inside a 200 response: check base_resp.status_code (0 is success; 1004 bad API key, 1008 insufficient balance, 2013 invalid parameters).
Use this to remove custom voices you no longer need. System voices cannot be deleted. Find voice IDs with minimax_list_voices.

Read only: no. Destructive: yes. Idempotent (safe to retry): no.

Inputs:

- `voice_id` (`string`, required): ID of the voice to delete. Example: narrator_uk_warm_01
- `voice_type` (`string`, required): Kind of voice to delete: voice_cloning for a cloned voice or voice_generation for a voice made with minimax_design_voice. One of: `voice_cloning`, `voice_generation`.

Example input: `{"voice_id":"<voice_id>","voice_type":"voice_cloning"}`

## Related

Other AI connectors ([all 148](/agentkit/connectors/?category=ai)):

- [Chorus](/agentkit/connectors/chorus/): Scalekit connector, Username and password, 9 tools
- [Gong](/agentkit/connectors/gong/): Scalekit connector, OAuth, 69 tools
- [Jiminny](/agentkit/connectors/jiminny/): Scalekit connector, Access token, 27 tools


---

## More Scalekit documentation

| Resource | What it contains | When to use it |
|----------|-----------------|----------------|
| [/llms.txt](/llms.txt) | Structured index with routing hints per product area | Start here — find which documentation set covers your topic before loading full content |
| [/llms-full.txt](/llms-full.txt) | Complete documentation for all Scalekit products in one file | Use when you need exhaustive context across multiple products or when the topic spans several areas |
| [sitemap-0.xml](https://docs.scalekit.com/sitemap-0.xml) | Full URL list of every documentation page | Use to discover specific page URLs you can fetch for targeted, page-level answers |
