# MiniMax AI API

> Provider: **MiniMax**
> Source: https://www.pixazo.ai/models/minimax

Comprehensive multimodal AI generation for video, image, and audio by MiniMax.

## MiniMax Music 2.6

### Text to Music

## Base URL

```
https://gateway.pixazo.ai/minimax-music-generation-2-6/v1
```

## Authentication

All requests require an API key passed via header.

Header

Type

Required

Description

Ocp-Apim-Subscription-Key

string

Yes

Your API subscription key

## Music generate request - MiniMax Music Generation 2.6 API

## Request Code

HTTP Python JavaScript cURL

```
POST https://gateway.pixazo.ai/minimax-music-generation-2-6/v1/generate
Content-Type: application/json
Cache-Control: no-cache
Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY

{
  "prompt": "calm lo-fi hip hop with mellow piano",
  "is_instrumental": true
}
```

```
import requests

url = "https://gateway.pixazo.ai/minimax-music-generation-2-6/v1/generate"
headers = {
    "Content-Type": "application/json",
    "Cache-Control": "no-cache",
    "Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
}
data = {
    "prompt": "calm lo-fi hip hop with mellow piano",
    "is_instrumental": True
}

response = requests.post(url, json=data, headers=headers)
print(response.json())
```

```
const url = 'https://gateway.pixazo.ai/minimax-music-generation-2-6/v1/generate';
const headers = {
  'Content-Type': 'application/json',
  'Cache-Control': 'no-cache',
  'Ocp-Apim-Subscription-Key': 'YOUR_SUBSCRIPTION_KEY'
};
const data = {
  prompt: 'calm lo-fi hip hop with mellow piano',
  is_instrumental: true
};

fetch(url, {
  method: 'POST',
  headers: headers,
  body: JSON.stringify(data)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
```

```
curl -X POST "https://gateway.pixazo.ai/minimax-music-generation-2-6/v1/generate" \
  -H "Content-Type: application/json" \
  -H "Cache-Control: no-cache" \
  -H "Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY" \
  --data-raw '{
    "prompt": "calm lo-fi hip hop with mellow piano",
    "is_instrumental": true
  }'
```

## Output

```
{
  "request_id": "minimax-music-generation-2-6_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "QUEUED",
  "polling_url": "https://gateway.pixazo.ai/v2/requests/status/minimax-music-generation-2-6_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
```

[Try Now](https://api.pixazo.ai/api-details#api=minimax-music-generation-2-6&operation=get-music)

## Webhook (Optional)

Add the `X-Webhook-URL` header to your generate request to receive a POST callback instead of polling.

```
X-Webhook-URL: https://your-server.com/webhook/callback
```

## Request Parameters - Music generate request

Parameter

Required

Type

Default

Description

prompt

Yes

string

—

Description of the desired music style, mood, and scenario. Drives composition. Length 1–2000 characters.

lyrics

No

string

—

Song lyrics for the generated track. Use `\n` to separate lines. Length 1–3500 characters. Ignored when `is_instrumental` is `true`.

sample\_rate

No

integer

—

Audio sample rate in Hz. Allowed: `16000`, `24000`, `32000`, `44100`. Higher = higher fidelity, larger files.

bitrate

No

integer

—

Audio bitrate in bits/sec. Allowed: `32000`, `64000`, `128000`, `256000`. Higher = better quality, larger files.

format

No

string

—

Output container/codec. One of `mp3`, `wav`.

lyrics\_optimizer

No

boolean

false

When `true`, the model auto-generates lyrics from the prompt. `lyrics` takes precedence if both are provided.

is\_instrumental

No

boolean

false

When `true`, generates instrumental music (no vocals). `lyrics` is ignored.

## Example Request

```
{
  "prompt": "Upbeat synthwave with retro arcade vibes, 120 BPM, layered analog synths",
  "lyrics": "[Verse 1]\nNeon lights are calling out\nDigital dreams without a doubt\n[Chorus]\nWe are alive in the night\nDancing in electric light",
  "sample_rate": 44100,
  "bitrate": 256000,
  "format": "mp3",
  "lyrics_optimizer": false,
  "is_instrumental": false
}
```

## Response

```
{
  "request_id": "minimax-music-generation-2-6_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "QUEUED",
  "polling_url": "https://gateway.pixazo.ai/v2/requests/status/minimax-music-generation-2-6_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
```

## Request Headers

Header

Value

Content-Type

application/json

Cache-Control

no-cache

Ocp-Apim-Subscription-Key

YOUR\_SUBSCRIPTION\_KEY

## Response Handling

Common status codes.

Code

Meaning

202

Accepted — Request queued

400

Bad Request

401

Unauthorized

402

Insufficient Balance

403

Forbidden

429

Too Many Requests

500

Internal Server Error

## Error Responses

Queue system errors and model validation errors.

### Queue System Errors

```
// 402 — Insufficient balance
{
  "error": "Insufficient Balance",
  "message": "Your wallet does not have enough balance. Required: $0.08"
}
```

```
// 400 — Model not found
{
  "error": "Model not found",
  "message": "Model 'minimax-music-generation-2-6' not found or is disabled"
}
```

### Error via Status/Webhook

```
{
  "request_id": "minimax-music-generation-2-6_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "ERROR",
  "model_id": "minimax-music-generation-2-6",
  "error": "Description of the error",
  "output": null
}
```

## Retrieving Results

Poll the universal status endpoint to check progress and retrieve results.

### Endpoint

```
GET https://gateway.pixazo.ai/v2/requests/status/{request_id}
Ocp-Apim-Subscription-Key: YOUR_API_KEY
```

## cURL Example

```
curl -H "Ocp-Apim-Subscription-Key: YOUR_API_KEY" \
  "https://gateway.pixazo.ai/v2/requests/status/minimax-music-generation-2-6_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
```

## Response (Completed)

```
{
  "request_id": "minimax-music-generation-2-6_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "COMPLETED",
  "model_id": "minimax-music-generation-2-6",
  "error": null,
  "output": {
    "media_url": [
      "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/minimax-music-generation-2-6_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/output.mp3"
    ],
    "media_type": "audio/mpeg"
  },
  "created_at": "2026-04-04T06:15:23.699Z",
  "updated_at": "2026-04-04T06:16:20.000Z",
  "completed_at": "2026-04-04T06:16:20.000Z"
}
```

## Response Fields

Field

Type

Description

request\_id

string

Unique request identifier

status

string

QUEUED, PROCESSING, COMPLETED, FAILED, or ERROR

model\_id

string

Model that processed the request

error

string|null

Error message if failed

output.media\_url

array

URLs to generated media (R2 CDN)

output.media\_type

string

MIME type (audio/mpeg)

created\_at

string

When request was created

completed\_at

string|null

When request completed

polling\_url

string

Status URL (initial response only)

## Status Values

Status

Description

QUEUED

Request accepted, waiting to be processed

PROCESSING

Being processed by the model

COMPLETED

Done — output contains the result

FAILED

Failed — check error field

ERROR

System error — not charged

## Status Flow

```
QUEUED → PROCESSING → COMPLETED
                    → FAILED
                    → ERROR
```

## Typical Workflow

1.  **Send a generate request** to the API endpoint
2.  **Save the `request_id`** from the response
3.  **Poll** every 5-10 seconds: `GET /v2/requests/status/{request_id}`
4.  **When `status` is `"COMPLETED"`**, download from `output.media_url`

**Tip:** Use `X-Webhook-URL` header to get a callback instead of polling.

## MiniMax Speech 2.6 HD

### Image to Video

## Base URL

```
https://gateway.pixazo.ai/minimax-hailuo-ai-music/v1
```

## Authentication

All requests require an API key passed via header.

Header

Type

Required

Description

Ocp-Apim-Subscription-Key

string

Yes

Your API subscription key

## Generate Speech Task - MiniMax Hailuo Speech API

## Request Code

HTTP Python JavaScript cURL

```
POST https://gateway.pixazo.ai/minimax-hailuo-ai-music/v1/getAudio
Content-Type: application/json
Cache-Control: no-cache
Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY

{
  "text": "Hello, this is a simple text to speech conversion."
}
```

```
import requests
import json

url = "https://gateway.pixazo.ai/minimax-hailuo-ai-music/v1/getAudio"
headers = {
    "Content-Type": "application/json",
    "Cache-Control": "no-cache",
    "Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
}
data = {
    "text": "Hello, this is a simple text to speech conversion."
}

response = requests.post(url, headers=headers, data=json.dumps(data))
print(response.json())
```

```
const url = 'https://gateway.pixazo.ai/minimax-hailuo-ai-music/v1/getAudio';
const headers = {
  'Content-Type': 'application/json',
  'Cache-Control': 'no-cache',
  'Ocp-Apim-Subscription-Key': 'YOUR_SUBSCRIPTION_KEY'
};
const data = {
  text: 'Hello, this is a simple text to speech conversion.'
};

fetch(url, {
  method: 'POST',
  headers: headers,
  body: JSON.stringify(data)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
```

```
curl -v -X POST "https://gateway.pixazo.ai/minimax-hailuo-ai-music/v1/getAudio" \
  -H "Content-Type: application/json" \
  -H "Cache-Control: no-cache" \
  -H "Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY" \
  --data-raw '{
    "text": "Hello, this is a simple text to speech conversion."
}'
```

## Output

```
{
  "request_id": "minimax-hailuo-audio_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "QUEUED",
  "polling_url": "https://gateway.pixazo.ai/v2/requests/status/minimax-hailuo-audio_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
```

[Try Now](https://api.pixazo.ai/api-details#api=minimax-hailuo-audio&operation=music)

## Webhook (Optional)

Add the `X-Webhook-URL` header to your generate request to receive a POST callback instead of polling.

```
X-Webhook-URL: https://your-server.com/webhook/callback
```

## Request Parameters - Generate Speech Task

Parameter

Required

Type

Description

text

Yes

string

The text to be synthesized into speech. The length limit is less than 50,000 characters. Paragraph switches are replaced by newlines. To add pauses in speech, use <#x#> between words, where x is the number of seconds, supporting values from 0.01 to 99.99 (up to two decimal places). The text must be syntactically correct for voice pronunciation.

model

No

string

Specifies the speech synthesis model. Options include "speech-2.6-hd", "speech-2.6-turbo", "speech-02-hd", "speech-02-turbo", "speech-01-hd", "speech-01-turbo". This affects the voice characteristics of the output.

voice\_id

No

string

The ID of the target voice. Supports system voices, cloned voices, and AI-generated voices. See voice options below.

speed

No

number

Defines the speed of speech. Acceptable range is from 0.5 to 2.0, where a higher value results in faster speech.

vol

No

number

Sets the volume of the synthesized speech. The range is (0,10\], with higher values yielding louder audio.

pitch

No

integer

Adjusts the pitch of the generated speech. The range is \[-12, 12\], where 0 retains the original tone.

emotion

No

string

Controls the emotional tone of the generated speech. Options include "happy", "sad", "angry", "fearful", "disgusted", "surprised", "calm", "fluent", "whisper".

audio\_sample\_rate

No

integer

Audio sample rate. Options: 8000, 16000, 22050, 24000, 32000, 44100.

bitrate

No

integer

Audio bitrate. Options: 32000, 64000, 128000, 256000.

format

No

string

Audio format. Options: "mp3", "pcm", "flac".

channel

No

integer

Audio channels (1=mono, 2=stereo).

pronunciation\_dict

No

object

Pronunciation rules for specific characters/symbols. Example: {"tone": \["omg/oh my god"\]}

language\_boost

No

string

Language enhancement for minority languages. Options: "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"

voice\_modify

No

object

Voice effect settings. Properties: pitch (-100 to 100), intensity (-100 to 100), timbre (-100 to 100), sound\_effects ("spacious\_echo", "auditorium\_echo", "lofi\_telephone", "robotic")

## Example Request

```
{
  "text": "Hello, this is an advanced text to speech conversion with custom settings.",
  "voice_id": "female-chengshu",
  "speed": 1.0,
  "emotion": "happy"
}
```

## Response

```
{
  "request_id": "minimax-hailuo-audio_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "QUEUED",
  "polling_url": "https://gateway.pixazo.ai/v2/requests/status/minimax-hailuo-audio_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
```

## Request Headers

Header

Value

Content-Type

application/json

Cache-Control

no-cache

Ocp-Apim-Subscription-Key

YOUR\_SUBSCRIPTION\_KEY

## Response Handling

Common status codes.

Code

Meaning

202

Accepted — Request queued

400

Bad Request

401

Unauthorized

402

Insufficient Balance

403

Forbidden

429

Too Many Requests

500

Internal Server Error

## Error Responses

Queue system errors and model validation errors.

### Queue System Errors

```
// 402 — Insufficient balance
{
  "error": "Insufficient Balance",
  "message": "Your wallet does not have enough balance."
}
```

```
// 400 — Model not found
{
  "error": "Model not found",
  "message": "Model 'minimax-hailuo-audio' not found or is disabled"
}
```

### Error via Status/Webhook

```
{
  "request_id": "minimax-hailuo-audio_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "ERROR",
  "model_id": "minimax-hailuo-audio",
  "error": "Description of the error",
  "output": null
}
```

## Retrieving Results

Poll the universal status endpoint to check progress and retrieve results.

### Endpoint

```
GET https://gateway.pixazo.ai/v2/requests/status/{request_id}
Ocp-Apim-Subscription-Key: YOUR_API_KEY
```

## cURL Example

```
curl -H "Ocp-Apim-Subscription-Key: YOUR_API_KEY" \
  "https://gateway.pixazo.ai/v2/requests/status/minimax-hailuo-audio_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
```

## Response (Completed)

```
{
  "request_id": "minimax-hailuo-audio_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "COMPLETED",
  "model_id": "minimax-hailuo-audio",
  "error": null,
  "output": {
    "media_url": [
      "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/minimax-hailuo-audio_019dxxxx-xxxx/output.ext"
    ],
    "media_type": "application/octet-stream"
  },
  "created_at": "2026-03-31T10:00:00.000Z",
  "updated_at": "2026-03-31T10:00:15.000Z",
  "completed_at": "2026-03-31T10:00:15.000Z"
}
```

## Response Fields

Field

Type

Description

request\_id

string

Unique request identifier

status

string

QUEUED, PROCESSING, COMPLETED, FAILED, or ERROR

model\_id

string

Model that processed the request

error

string|null

Error message if failed

output.media\_url

array

URLs to generated media (R2 CDN)

output.media\_type

string

MIME type of the output

created\_at

string

When request was created

completed\_at

string|null

When request completed

polling\_url

string

Status URL (initial response only)

## Status Values

Status

Description

QUEUED

Request accepted, waiting to be processed

PROCESSING

Being processed by the model

COMPLETED

Done — output contains the result

FAILED

Failed — check error field

ERROR

System error — not charged

## Status Flow

```
QUEUED → PROCESSING → COMPLETED
                    → FAILED
                    → ERROR
```

## Typical Workflow

1.  **Send a generate request** to the API endpoint
2.  **Save the `request_id`** from the response
3.  **Poll** every 5-10 seconds: `GET /v2/requests/status/{request_id}`
4.  **When `status` is `"COMPLETED"`**, download from `output.media_url`

**Tip:** Use `X-Webhook-URL` header to get a callback instead of polling.

### Utility (Get Audio Result)

## Base URL

```
https://gateway.pixazo.ai/minimax-hailuo-ai-music/v1
```

## Authentication

All requests require an API key passed via header.

Header

Type

Required

Description

Ocp-Apim-Subscription-Key

string

Yes

Your API subscription key

## Get Speech Result - MiniMax Hailuo Speech API

## Request Code

HTTP Python JavaScript cURL

```
POST https://gateway.pixazo.ai/minimax-hailuo-ai-music/v1/getAudioResult
Content-Type: application/json
Cache-Control: no-cache
Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY

{
  "task_id": "344614765236532"
}
```

```
import requests

url = "https://gateway.pixazo.ai/minimax-hailuo-ai-music/v1/getAudioResult"
headers = {
    "Content-Type": "application/json",
    "Cache-Control": "no-cache",
    "Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
}
data = {
    "task_id": "344614765236532"
}

response = requests.post(url, json=data, headers=headers)
print(response.json())
```

```
const url = 'https://gateway.pixazo.ai/minimax-hailuo-ai-music/v1/getAudioResult';
const headers = {
  'Content-Type': 'application/json',
  'Cache-Control': 'no-cache',
  'Ocp-Apim-Subscription-Key': 'YOUR_SUBSCRIPTION_KEY'
};
const data = {
  task_id: '344614765236532'
};

fetch(url, {
  method: 'POST',
  headers: headers,
  body: JSON.stringify(data)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
```

```
curl -v -X POST "https://gateway.pixazo.ai/minimax-hailuo-ai-music/v1/getAudioResult" \
  -H "Content-Type: application/json" \
  -H "Cache-Control: no-cache" \
  -H "Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY" \
  --data-raw '{
    "task_id": "344614765236532"
}'
```

## Output

```
{
  "request_id": "minimax-hailuo-audio_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "QUEUED",
  "polling_url": "https://gateway.pixazo.ai/v2/requests/status/minimax-hailuo-audio_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
```

[Try Now](https://api.pixazo.ai/api-details#api=minimax-hailuo-audio&operation=get-audio-result)

## Webhook (Optional)

Add the `X-Webhook-URL` header to your generate request to receive a POST callback instead of polling.

```
X-Webhook-URL: https://your-server.com/webhook/callback
```

## Request Parameters - Get Speech Result

Parameter

Required

Type

Description

task\_id

Yes

string

Task ID returned from the create audio task.

## Example Request

```
{
  "task_id": "344614765236532"
}
```

## Response

```
{
  "request_id": "minimax-hailuo-audio_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "QUEUED",
  "polling_url": "https://gateway.pixazo.ai/v2/requests/status/minimax-hailuo-audio_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
```

## Request Headers

Header

Value

Content-Type

application/json

Cache-Control

no-cache

Ocp-Apim-Subscription-Key

YOUR\_SUBSCRIPTION\_KEY

## Response Handling

Common status codes.

Code

Meaning

202

Accepted — Request queued

400

Bad Request

401

Unauthorized

402

Insufficient Balance

403

Forbidden

429

Too Many Requests

500

Internal Server Error

## Error Responses

Queue system errors and model validation errors.

### Queue System Errors

```
// 402 — Insufficient balance
{
  "error": "Insufficient Balance",
  "message": "Your wallet does not have enough balance."
}
```

```
// 400 — Model not found
{
  "error": "Model not found",
  "message": "Model 'minimax-hailuo-audio' not found or is disabled"
}
```

### Error via Status/Webhook

```
{
  "request_id": "minimax-hailuo-audio_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "ERROR",
  "model_id": "minimax-hailuo-audio",
  "error": "Description of the error",
  "output": null
}
```

## Retrieving Results

Poll the universal status endpoint to check progress and retrieve results.

### Endpoint

```
GET https://gateway.pixazo.ai/v2/requests/status/{request_id}
Ocp-Apim-Subscription-Key: YOUR_API_KEY
```

## cURL Example

```
curl -H "Ocp-Apim-Subscription-Key: YOUR_API_KEY" \
  "https://gateway.pixazo.ai/v2/requests/status/minimax-hailuo-audio_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
```

## Response (Completed)

```
{
  "request_id": "minimax-hailuo-audio_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "COMPLETED",
  "model_id": "minimax-hailuo-audio",
  "error": null,
  "output": {
    "media_url": [
      "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/minimax-hailuo-audio_019dxxxx-xxxx/output.ext"
    ],
    "media_type": "application/octet-stream"
  },
  "created_at": "2026-03-31T10:00:00.000Z",
  "updated_at": "2026-03-31T10:00:15.000Z",
  "completed_at": "2026-03-31T10:00:15.000Z"
}
```

## Response Fields

Field

Type

Description

request\_id

string

Unique request identifier

status

string

QUEUED, PROCESSING, COMPLETED, FAILED, or ERROR

model\_id

string

Model that processed the request

error

string|null

Error message if failed

output.media\_url

array

URLs to generated media (R2 CDN)

output.media\_type

string

MIME type of the output

created\_at

string

When request was created

completed\_at

string|null

When request completed

polling\_url

string

Status URL (initial response only)

## Status Values

Status

Description

QUEUED

Request accepted, waiting to be processed

PROCESSING

Being processed by the model

COMPLETED

Done — output contains the result

FAILED

Failed — check error field

ERROR

System error — not charged

## Status Flow

```
QUEUED → PROCESSING → COMPLETED
                    → FAILED
                    → ERROR
```

## Typical Workflow

1.  **Send a generate request** to the API endpoint
2.  **Save the `request_id`** from the response
3.  **Poll** every 5-10 seconds: `GET /v2/requests/status/{request_id}`
4.  **When `status` is `"COMPLETED"`**, download from `output.media_url`

**Tip:** Use `X-Webhook-URL` header to get a callback instead of polling.

## MiniMax Voice Design v1

### Text to Speech (Voice Design)

## Base URL

```
https://gateway.pixazo.ai/minimax-voice-design-api-363/v1
```

## Authentication

All requests require an API key passed via header.

Header

Type

Required

Description

Ocp-Apim-Subscription-Key

string

Yes

Your API subscription key

## MiniMax Voice Design API generate request - MiniMax Voice Design

## Request Code

HTTP Python JavaScript cURL

```
POST /minimax-voice-design-api-request HTTP/1.1
Host: gateway.pixazo.ai
Content-Type: application/json
Cache-Control: no-cache
Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY

{
  "prompt": "Bubbly and excitable female pop star interviewee, youthful, slightly breathless, and very enthusiastic", 
"preview_text": "Oh my gosh, hi. It iss like so amazing to be here. This new endpoint just dropped on pixazo and the results have been like totally incredible. Use it now, It is gonna be like epic!"
}
```

```
import requests

url = "https://gateway.pixazo.ai/minimax-voice-design-api-363/v1/minimax-voice-design-api-request"
headers = {
    "Content-Type": "application/json",
    "Cache-Control": "no-cache",
    "Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
}
data = {
    "prompt": "Bubbly and excitable female pop star interviewee, youthful, slightly breathless, and very enthusiastic",
    "preview_text": "Oh my gosh, hi. It iss like so amazing to be here. This new endpoint just dropped on pixazo and the results have been like totally incredible. Use it now, It is gonna be like epic!"
}

response = requests.post(url, json=data, headers=headers)
print(response.json())
```

```
const url = 'https://gateway.pixazo.ai/minimax-voice-design-api-363/v1/minimax-voice-design-api-request';

const data = {
  prompt: "Bubbly and excitable female pop star interviewee, youthful, slightly breathless, and very enthusiastic",
  preview_text: "Oh my gosh, hi. It iss like so amazing to be here. This new endpoint just dropped on pixazo and the results have been like totally incredible. Use it now, It is gonna be like epic!"
};

fetch(url, {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Cache-Control': 'no-cache',
    'Ocp-Apim-Subscription-Key': 'YOUR_SUBSCRIPTION_KEY'
  },
  body: JSON.stringify(data)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
```

```
curl -X POST "https://gateway.pixazo.ai/minimax-voice-design-api-363/v1/minimax-voice-design-api-request" \
  -H "Content-Type: application/json" \
  -H "Cache-Control: no-cache" \
  -H "Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY" \
  --data-raw '{
    "prompt": "Bubbly and excitable female pop star interviewee, youthful, slightly breathless, and very enthusiastic",
    "preview_text": "OOh my gosh, hi. It iss like so amazing to be here. This new endpoint just dropped on pixazo and the results have been like totally incredible. Use it now, It is gonna be like epic!"
  }'
```

## Output

```
{
  "request_id": "minimax-voice-design-api-363_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "QUEUED",
  "polling_url": "https://gateway.pixazo.ai/v2/requests/status/minimax-voice-design-api-363_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
```

[Try Now](https://api.pixazo.ai/api-details#api=minimax-voice-design-api-363&operation=minimax-voice-design-api-request)

## Webhook (Optional)

Add the `X-Webhook-URL` header to your generate request to receive a POST callback instead of polling.

```
X-Webhook-URL: https://your-server.com/webhook/callback
```

## Request Parameters - MiniMax Voice Design API generate request

Field

Type

Required

Default

Description

prompt

string

Yes

—

A natural language description of the desired voice personality, tone, and characteristics (e.g., age, gender, emotion, style). This defines the unique vocal identity to be synthesized.

preview\_text

string

Yes

—

The sample text that will be spoken by the generated voice. Must be a natural, expressive phrase that demonstrates the intended vocal style.

## Minimum Request

```
{
  "prompt": "Bubbly and excitable female pop star interviewee, youthful, slightly breathless, and very enthusiastic",
  "preview_text": "Oh my gosh, hi. It's like so amazing to be here."
}
```

## Full Request (all options)

```
{
  "prompt": "Bubbly and excitable female pop star interviewee, youthful, slightly breathless, and very enthusiastic",
  "preview_text": "Oh my gosh, hi. It iss like so amazing to be here. This new endpoint just dropped on pixazo and the results have been like totally incredible. Use it now, It is gonna be like epic!"
}
```

## Response

```
{
  "request_id": "minimax-voice-design-api-363_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "QUEUED",
  "polling_url": "https://gateway.pixazo.ai/v2/requests/status/minimax-voice-design-api-363_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
```

## Request Headers

Header

Value

Content-Type

application/json

Cache-Control

no-cache

Ocp-Apim-Subscription-Key

Your API subscription key

## Response Handling

Common status codes for MiniMax Voice Design API generate request.

Code

Meaning

202

Accepted — Request queued

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

429

Too Many Requests

500

Internal Server Error

## Response Handling

Common status codes.

Code

Meaning

202

Accepted — Request queued

400

Bad Request

401

Unauthorized

402

Insufficient Balance

403

Forbidden

429

Too Many Requests

500

Internal Server Error

## Error Responses

Queue system errors and model validation errors.

### Queue System Errors

```
// 402 — Insufficient balance
{
  "error": "Insufficient Balance",
  "message": "Your wallet does not have enough balance."
}
```

```
// 400 — Model not found
{
  "error": "Model not found",
  "message": "Model 'minimax-voice-design-api-363' not found or is disabled"
}
```

### Error via Status/Webhook

```
{
  "request_id": "minimax-voice-design-api-363_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "ERROR",
  "model_id": "minimax-voice-design-api-363",
  "error": "Description of the error",
  "output": null
}
```

## Retrieving Results

Poll the universal status endpoint to check progress and retrieve results.

### Endpoint

```
GET https://gateway.pixazo.ai/v2/requests/status/{request_id}
Ocp-Apim-Subscription-Key: YOUR_API_KEY
```

## cURL Example

```
curl -H "Ocp-Apim-Subscription-Key: YOUR_API_KEY" \
  "https://gateway.pixazo.ai/v2/requests/status/minimax-voice-design-api-363_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
```

## Response (Completed)

```
{
  "request_id": "minimax-voice-design-api-363_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "COMPLETED",
  "model_id": "minimax-voice-design-api-363",
  "error": null,
  "output": {
    "media_url": [
      "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/minimax-voice-design-api-363_019dxxxx-xxxx/output.ext"
    ],
    "media_type": "application/octet-stream"
  },
  "created_at": "2026-03-31T10:00:00.000Z",
  "updated_at": "2026-03-31T10:00:15.000Z",
  "completed_at": "2026-03-31T10:00:15.000Z"
}
```

## Response Fields

Field

Type

Description

request\_id

string

Unique request identifier

status

string

QUEUED, PROCESSING, COMPLETED, FAILED, or ERROR

model\_id

string

Model that processed the request

error

string|null

Error message if failed

output.media\_url

array

URLs to generated media (R2 CDN)

output.media\_type

string

MIME type of the output

created\_at

string

When request was created

completed\_at

string|null

When request completed

polling\_url

string

Status URL (initial response only)

## Status Values

Status

Description

QUEUED

Request accepted, waiting to be processed

PROCESSING

Being processed by the model

COMPLETED

Done — output contains the result

FAILED

Failed — check error field

ERROR

System error — not charged

## Status Flow

```
QUEUED → PROCESSING → COMPLETED
                    → FAILED
                    → ERROR
```

## Typical Workflow

1.  **Send a generate request** to the API endpoint
2.  **Save the `request_id`** from the response
3.  **Poll** every 5-10 seconds: `GET /v2/requests/status/{request_id}`
4.  **When `status` is `"COMPLETED"`**, download from `output.media_url`

**Tip:** Use `X-Webhook-URL` header to get a callback instead of polling.

## MiniMax Image 01

### Image to Image (Image Editing)

## Image to Image - Minimax Image Generation API

## Request Code

HTTP Python JavaScript cURL

```
POST https://gateway.pixazo.ai/image-generation/v1/i2i
Content-Type: application/json
Cache-Control: no-cache
Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY

{
  "prompt": "A girl looking into the distance from a library window",
  "subject_reference": [
    {
      "type": "character",
      "image_file": "https://example.com/input-image.jpg"
    }
  ]
}
```

```
import requests

url = "https://gateway.pixazo.ai/image-generation/v1/i2i"
headers = {
    "Content-Type": "application/json",
    "Cache-Control": "no-cache",
    "Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
}
data = {
    "prompt": "A girl looking into the distance from a library window",
    "subject_reference": [
        {
            "type": "character",
            "image_file": "https://example.com/input-image.jpg"
        }
    ]
}

response = requests.post(url, json=data, headers=headers)
print(response.json())
```

```
const url = 'https://gateway.pixazo.ai/image-generation/v1/i2i';
const headers = {
  'Content-Type': 'application/json',
  'Cache-Control': 'no-cache',
  'Ocp-Apim-Subscription-Key': 'YOUR_SUBSCRIPTION_KEY'
};

const data = {
  prompt: 'A girl looking into the distance from a library window',
  subject_reference: [
    {
      type: 'character',
      image_file: 'https://example.com/input-image.jpg'
    }
  ]
};

fetch(url, {
  method: 'POST',
  headers: headers,
  body: JSON.stringify(data)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
```

```
curl -v -X POST "https://gateway.pixazo.ai/image-generation/v1/i2i" \
  -H "Content-Type: application/json" \
  -H "Cache-Control: no-cache" \
  -H "Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY" \
  --data-raw '{
    "prompt": "A girl looking into the distance from a library window",
    "subject_reference": [
      {
        "type": "character",
        "image_file": "https://example.com/input-image.jpg"
      }
    ]
  }'
```

## Output

```
{
  "id": "03ff3cd0820949eb8a410056b5f21d38",
  "image_urls": [
    "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/..."
  ],
  "image_count": 4
}
```

[Try Now](https://api.pixazo.ai/api-details#api=minimax-image-generation&operation=image-to-image)

## Request Parameters - Image to Image

Parameter

Required

Type

Description

prompt

Yes

string

Text description of desired modifications or style to apply to the input image.

subject\_reference

Yes

array

Array of reference images. Each object contains: \`type\` ("character", "object", etc.) and \`image\_file\` (URL or base64). Images must be <10MB, JPG/JPEG/PNG format.

model

No

string

Model name. Currently only "image-01" is supported.

aspect\_ratio

No

string

Image aspect ratio. Options: "1:1" (1024x1024), "16:9" (1280x720), "4:3" (1152x864), "3:2" (1248x832), "2:3" (832x1248), "3:4" (864x1152), "9:16" (720x1280), "21:9" (1344x576).

width

No

integer

Image width in pixels (512-2048, divisible by 8). Must be used with height. aspect\_ratio takes priority if both are provided.

height

No

integer

Image height in pixels (512-2048, divisible by 8). Must be used with width. aspect\_ratio takes priority if both are provided.

response\_format

No

string

Response format. Options: "url" (expires in 24 hours) or "base64".

seed

No

integer

Random seed for reproducible results. Same seed + parameters = same image.

n

No

integer

Number of images to generate (1-9).

prompt\_optimizer

No

boolean

Enable automatic prompt optimization.

## Example Request

```
{
  "prompt": "A futuristic cyberpunk cityscape at night, neon lights, flying cars, dramatic shadows, highly detailed, cinematic lighting",
  "subject_reference": [
    {
      "type": "character",
      "image_file": "https://example.com/input-image.jpg"
    },
    {
      "type": "object",
      "image_file": "https://example.com/reference-object.png"
    }
  ],
  "model": "image-01",
  "aspect_ratio": "16:9",
  "response_format": "url",
  "seed": 98765,
  "n": 4,
  "prompt_optimizer": true
}
```

## Response

```
{
  "id": "03ff3cd0820949eb8a410056b5f21d38",
  "image_urls": [
    "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/minimax_images/i2i-1234567890-123456-1.png",
    "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/minimax_images/i2i-1234567890-123456-2.png",
    "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/minimax_images/i2i-1234567890-123456-3.png",
    "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/minimax_images/i2i-1234567890-123456-4.png"
  ],
  "image_count": 4,
  "metadata": {
    "success_count": "4",
    "failed_count": "0"
  },
  "base_resp": {
    "status_code": 0,
    "status_msg": "success"
  }
}
```

## Request Headers

Header

Value

Content-Type

application/json

Cache-Control

no-cache

Ocp-Apim-Subscription-Key

YOUR\_SUBSCRIPTION\_KEY

## Response Handling

Common status codes for Image to Image.

Code

Meaning

200

Success

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

429

Too Many Requests

500

Internal Server Error

### Text to Image

## Text to Image - Minimax Image Generation API

## Request Code

HTTP Python JavaScript cURL

```
POST https://gateway.pixazo.ai/image-generation/v1/t2i
Content-Type: application/json
Cache-Control: no-cache
Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY

{
  "prompt": "A beautiful sunset over mountains"
}
```

```
import requests

url = "https://gateway.pixazo.ai/image-generation/v1/t2i"
headers = {
    "Content-Type": "application/json",
    "Cache-Control": "no-cache",
    "Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
}
data = {
    "prompt": "A beautiful sunset over mountains"
}

response = requests.post(url, json=data, headers=headers)
print(response.json())
```

```
const url = 'https://gateway.pixazo.ai/image-generation/v1/t2i';
const headers = {
  'Content-Type': 'application/json',
  'Cache-Control': 'no-cache',
  'Ocp-Apim-Subscription-Key': 'YOUR_SUBSCRIPTION_KEY'
};
const data = {
  prompt: 'A beautiful sunset over mountains'
};

fetch(url, {
  method: 'POST',
  headers: headers,
  body: JSON.stringify(data)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
```

```
curl -v -X POST "https://gateway.pixazo.ai/image-generation/v1/t2i" \
  -H "Content-Type: application/json" \
  -H "Cache-Control: no-cache" \
  -H "Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY" \
  --data-raw '{
    "prompt": "A beautiful sunset over mountains"
  }'
```

## Output

```
{
  "id": "03ff3cd0820949eb8a410056b5f21d38",
  "image_urls": [
    "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/minimax_images/t2i-1234567890-123456-1.png"
  ],
  "image_count": 1
}
```

[Try Now](https://api.pixazo.ai/api-details#api=minimax-image-generation&operation=text-to-image)

## Request Parameters - Text to Image

Parameter

Required

Type

Description

prompt

Yes

string

Text description of the image, maximum 1500 characters.

model

No

string

Model name. Currently only "image-01" is supported.

aspect\_ratio

No

string

Image aspect ratio. Options: "1:1" (1024x1024), "16:9" (1280x720), "4:3" (1152x864), "3:2" (1248x832), "2:3" (832x1248), "3:4" (864x1152), "9:16" (720x1280), "21:9" (1344x576).

width

No

integer

Image width in pixels (512-2048, divisible by 8). Must be used with height. aspect\_ratio takes priority if both are provided.

height

No

integer

Image height in pixels (512-2048, divisible by 8). Must be used with width. aspect\_ratio takes priority if both are provided.

response\_format

No

string

Response format. Options: "url" (expires in 24 hours) or "base64".

seed

No

integer

Random seed for reproducible results. Same seed + parameters = same image.

n

No

integer

Number of images to generate (1-9).

prompt\_optimizer

No

boolean

Enable automatic prompt optimization.

## Example Request

```
{
  "prompt": "A man in a white t-shirt, full-body, standing front view, outdoors, with the Venice Beach sign in the background, Los Angeles. Fashion photography in 90s documentary style, film grain, photorealistic.",
  "model": "image-01",
  "aspect_ratio": "16:9",
  "response_format": "url",
  "seed": 12345,
  "n": 3,
  "prompt_optimizer": true
}
```

## Response

```
{
  "id": "03ff3cd0820949eb8a410056b5f21d38",
  "image_urls": [
    "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/minimax_images/t2i-1234567890-123456-1.png",
    "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/minimax_images/t2i-1234567890-123456-2.png",
    "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/minimax_images/t2i-1234567890-123456-3.png"
  ],
  "image_count": 3,
  "metadata": {
    "success_count": "3",
    "failed_count": "0"
  },
  "base_resp": {
    "status_code": 0,
    "status_msg": "success"
  }
}
```

## Request Headers

Header

Value

Content-Type

application/json

Cache-Control

no-cache

Ocp-Apim-Subscription-Key

YOUR\_SUBSCRIPTION\_KEY

## Response Handling

Common status codes for Text to Image.

Code

Meaning

200

Success

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

429

Too Many Requests

500

Internal Server Error
