Skip to main content
MiniMaxi gives you access to MiniMax’s full AI capabilities through Fhddos’s unified gateway. All requests use the /minimaxi prefix, and every request body, response field, and error code stays fully compatible with the official MiniMax API — so you can migrate existing integrations without changing a single payload shape.
Field details, value ranges, and constraints follow the official MiniMax API reference. This page covers Fhddos-specific routing, billing, and ready-to-run examples.

Authentication & routing

Set your Fhddos token as a Bearer credential and prefix every path with /minimaxi:
export BASE_URL="https://aiapi.fhddos.com"
export TOKEN="your-fhddos-token"
Every request follows the same pattern:
Authorization: Bearer <fhddos-token>
POST/GET https://aiapi.fhddos.com/minimaxi/<minimax-path>

Capabilities at a glance

Video Generation

Create text-to-video, first-frame, first-last-frame, and subject-reference video tasks with MiniMax-Hailuo-02.

Text-to-Speech (TTS)

Synthesize audio synchronously via t2a_v2 or submit long jobs asynchronously via t2a_async_v2.

Voice Cloning

Clone a voice in three steps — upload audio, optionally upload a prompt sample, then call voice_clone.

File Management

Retrieve file metadata by ID and download raw file content from the MiniMax files API.

Billing

Video generation uses a pay-on-success async billing model:
  • When you create a task, Fhddos records it but does not immediately charge your account.
  • A background poller checks each task’s final state (success or failure).
  • Only successful tasks are billed according to the price schedule.
  • Failed tasks are never charged.

Video generation

Submit video generation tasks to POST /minimaxi/v1/video_generation. All tasks are asynchronous — creation returns a task_id you then poll to retrieve the finished video.

Scenario 1 — Text-to-video

curl -X POST "$BASE_URL/minimaxi/v1/video_generation" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "MiniMax-Hailuo-02",
    "prompt": "A man picks up a book [Pedestal up], then reads [Static shot].",
    "duration": 6,
    "resolution": "1080P"
  }'
Example response (task created):
{
  "task_id": "106916112212032",
  "platform_id": "video_01JSGXXXXXXXXXXXXXXXXXX",
  "base_resp": {
    "status_code": 0,
    "status_msg": "success"
  }
}
task_id is the raw MiniMax upstream task ID — you can use it directly with the official MiniMax query endpoint. platform_id (video_<ULID>) is Fhddos’s internal tracking ID. Both IDs are accepted by the query endpoint.

Scenario 2 — First-frame image drive

Animate from a single starting image by supplying first_frame_image:
curl -X POST "$BASE_URL/minimaxi/v1/video_generation" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A mouse runs toward the camera, smiling and blinking.",
    "first_frame_image": "https://cdn.hailuoai.com/prod/2024-09-18-16/user/multi_chat_file/9c0b5c14-ee88-4a5b-b503-4f626f018639.jpeg",
    "model": "MiniMax-Hailuo-02",
    "duration": 6,
    "resolution": "1080P"
  }'

Scenario 3 — First-frame + last-frame

Generate the transition between two keyframes by providing both first_frame_image and last_frame_image:
curl -X POST "$BASE_URL/minimaxi/v1/video_generation" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A little girl grows up.",
    "first_frame_image": "https://filecdn.minimax.chat/public/fe9d04da-f60e-444d-a2e0-18ae743add33.jpeg",
    "last_frame_image": "https://filecdn.minimax.chat/public/97b7cd08-764e-4b8b-a7bf-87a0bd898575.jpeg",
    "model": "MiniMax-Hailuo-02",
    "duration": 6,
    "resolution": "1080P"
  }'

Scenario 4 — Subject reference

Pass reference images via subject_reference to anchor a character or object across the generated video:
curl -X POST "$BASE_URL/minimaxi/v1/video_generation" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A girl runs toward the camera and winks with a smile.",
    "subject_reference": [
      {
        "type": "character",
        "image": [
          "https://cdn.hailuoai.com/prod/2025-08-12-17/video_cover/1754990600020238321-411603868533342214-cover.jpg"
        ]
      }
    ],
    "model": "S2V-01"
  }'

Query a video task

Poll task status with the task_id returned at creation:
curl "$BASE_URL/minimaxi/v1/query/video_generation?task_id=$TASK_ID" \
  -H "Authorization: Bearer $TOKEN"

Text-to-speech (TTS)

Fhddos exposes both synchronous and asynchronous TTS endpoints. Choose sync for short, latency-sensitive requests and async for longer texts.
Send text and receive the audio file directly in the response:
curl -X POST "$BASE_URL/minimaxi/v1/t2a_v2" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "speech-2.8-hd",
    "text": "Welcome to Fhddos.",
    "output_format": "hex"
  }' \
  --output tts-output.mp3

Voice aliases

To maintain compatibility with OpenAI-style voice names, Fhddos automatically maps the following aliases to the corresponding MiniMax voice_id values:
AliasMiniMax voice_id
alloyfemale-chengshu
echomale-qn-qingse
fablemale-qn-jingying
onyxpresenter_male
novapresenter_female
shimmeraudiobook_female_1
When a voice has a known default emotion, Fhddos automatically fills in emotion if you don’t supply one explicitly. You can override any alias through channel custom parameters:
{
  "voice": {
    "alloy": "female-chengshu|sad",
    "echo": "male-qn-qingse"
  }
}

Key TTS parameters

ParameterValuesNotes
output_formathex (default), urlNon-streaming only; URL validity follows upstream policy
emotionhappy, sad, angry, fearful, disgusted, surprised, calm, fluent, whisperNot all model + voice combinations support every emotion
sound_effectsspacious_echo, auditorium_echo, lofi_telephone, roboticApplies an acoustic effect to the output

Audio return mode

Control how the audio payload is returned via the audio_mode channel parameter:
ModeBehaviour
json (default)Response body is JSON; data.audio holds the hex string or URL
hexWhen output_format=hex, returns a raw audio stream; when output_format=url, still returns JSON
{
  "audio_mode": "hex"
}
Async tasks preserve your original voice_id and parameters in the returned JSON payload. If you used an alias, Fhddos performs the conversion and emotion back-fill before sending the upstream request — not after.

Voice cloning

Clone any voice in three steps using POST /minimaxi/v1/voice_clone. The interface is fully compatible with the official MiniMax /v1/voice_clone endpoint.

Step 1 — Upload the source audio

curl -X POST "$BASE_URL/minimaxi/v1/files/upload" \
  -H "Authorization: Bearer $TOKEN" \
  -F "purpose=voice_clone" \
  -F "file=@/path/to/audio.mp3"
The response includes:
  • file.file_id — pass this to POST /minimaxi/v1/voice_clone
  • file.filename — the original file name

Step 2 — (Optional) Upload a prompt sample

Upload a short reference clip to improve similarity and stability:
curl -X POST "$BASE_URL/minimaxi/v1/files/upload" \
  -H "Authorization: Bearer $TOKEN" \
  -F "purpose=prompt_audio" \
  -F "file=@/path/to/short-sample.mp3"

Step 3 — Clone the voice

curl -X POST "$BASE_URL/minimaxi/v1/voice_clone" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "file_id": 1234567890,
    "voice_id": "MiniMax001",
    "text": "In recent years, artificial intelligence has entered a period of rapid development...",
    "model": "speech-2.8-hd",
    "need_noise_reduction": true,
    "need_volume_normalization": true
  }'

Request fields

FieldRequiredDescription
file_idID of the audio to clone (from purpose=voice_clone upload)
voice_idTarget cloned voice ID; must follow official naming rules
clone_prompt.prompt_audioFile ID of a short reference sample (from purpose=prompt_audio upload)
clone_prompt.prompt_textTranscript of the reference sample
textPreview text to synthesize (max 1 000 characters)
model✅ when text setTTS model for preview synthesis (e.g. speech-2.8-hd)
language_boostMinor-language / dialect enhancement (Chinese, English, auto, …)
need_noise_reductionEnable noise reduction on the source audio
need_volume_normalizationNormalise volume of the source audio
aigc_watermarkAppend an AIGC watermark rhythm to the preview audio

Response fields

FieldDescription
demo_audioPreview audio URL (returned when text + model are provided)
input_sensitivePopulated when the source audio triggers a content policy; includes type
base_resp.status_code0 = success
base_resp.status_msgHuman-readable status description

File management

Retrieve metadata and download content for any file stored in MiniMax’s files API.

Get file metadata

curl "$BASE_URL/minimaxi/v1/files/$FILE_ID" \
  -H "Authorization: Bearer $TOKEN"

Download file content

curl "$BASE_URL/minimaxi/v1/files/$FILE_ID/content" \
  -H "Authorization: Bearer $TOKEN" \
  --output downloaded-file
File IDs are returned by upload endpoints (e.g. voice cloning steps above) and also appear in completed video task responses as download references.