메인 콘텐츠로 건너뛰기
POST
오른쪽의 대화형 Playground에서 실시간으로 테스트할 수 있습니다. Authorization에 API Key를 입력하고(형식: Bearer sk-xxx), content에 텍스트 항목 하나를 추가한 다음(필요한 경우 이미지, 동영상 또는 오디오 항목도 추가), duration과 ratio을 선택한 후 전송합니다. 응답은 task_id이며, 동영상은 아래에 설명된 쿼리 엔드포인트로 가져옵니다.
하나의 엔드포인트, 네 가지 모드: 텍스트만 입력하면 텍스트-동영상 생성, first_frame / last_frame 이미지를 추가하면 키프레임 동영상 생성, reference_image / reference_video / reference_audio을 추가하면 참조 동영상 생성입니다. 모드는 content[]에 따라 자동으로 결정되므로 전환용 엔드포인트는 없습니다. 전체 내용은 MiniMax-H3 개요를 참조하세요.
⚠️ 가장 흔한 실수 네 가지
  1. 경로는 /hailuo로 시작합니다: POST /hailuo/v2/video_generation로 생성하고 GET /hailuo/v2/query/video_generation/{task_id}로 조회합니다. /v2/... 경로만 사용하면 JSON이 아닌 웹 페이지가 반환됩니다.
  2. duration은 4~15 사이의 정수여야 합니다: 문자열 "5"이나 5.5과 같은 소수는 거부됩니다.
  3. resolution은 대문자 768P여야 합니다: 768p과 2K은 모두 거부됩니다.
  4. 텍스트만 또는 오디오만 포함한 요청에는 ratio: "adaptive"을 사용할 수 없습니다. 고정 비율을 선택하세요. adaptive은 요청에 이미지나 동영상이 포함된 경우에만 작동합니다.

코드 예제

Python (requests · 제출 + 폴링 + 다운로드)

Python (첫 프레임 동영상 · 요청 본문)

Python (혼합 참조 · 요청 본문)

cURL

Node.js (네이티브 fetch)

브라우저 JavaScript

task_id가 이미 있습니까? cURL 한 번 호출

status이 succeeded이면, task.content.url은 MP4 URL이며 직접 다운로드할 수 있습니다:

매개변수 참조

사용할 수 없는 매개변수: 고정 seed 제어는 지원되지 않으며 오디오 생성 전환 기능도 없습니다. seed 또는 generate_audio를 전달하면 HTTP 400 unsupported field가 반환됩니다. 오디오 재사용을 안내하려면 텍스트 prompt에 <Audio 1>: fully_copy을 넣으십시오. 변경되지 않은 원본 오디오의 그대로 전달과 추가 사운드가 없는 상태는 보장되지 않습니다. 개요의 오디오 재사용 안내를 참조하십시오.

비율 및 출력 크기(측정값)

미디어 요구 사항

모든 미디어는 직접 다운로드할 수 있는 공개 HTTPS URL이어야 합니다. Base64, data URI, http:// 링크 및 사설 네트워크 주소는 지원되지 않습니다. 핫링크 보호 또는 로그인이 적용된 링크를 사용하면 미디어 다운로드를 시도할 때 작업이 실패합니다.

응답 형식

작업 생성

작업 조회(진행 중)

작업 조회(성공)

작업 조회(실패)

⚠️ 응답 참고 사항
  • 조회 결과는 최상위 수준이 아닌 task 객체로 래핑됩니다.
  • 성공 시 id, status, **content.url**만 항상 보장되며, progress, usage, model, ratio 및 이와 유사한 필드는 항상 반환되는 것이 아니므로 방어적으로 파싱해야 합니다.
  • 상태는 queued → running → succeeded / failed 순서로 변경되며, 사용량이 많은 시간대에는 작업이 running에서 시작될 수 있습니다.
  • progress에는 0과 1 사이의 중간 값이 포함되거나 값이 없을 수 있습니다. 이 값은 참고용으로만 사용해야 하며, 값이 1인 경우에도 완료 여부를 판단하려면 status: succeeded를 사용해야 합니다.
  • 재현을 위한 모델 리비전, 전체 실행 매개변수 스냅샷 및 실제 시드는 반환되지 않습니다. 일부 모델, 크기 및 기간 메타데이터만으로는 전체 매개변수 스냅샷을 구성할 수 없습니다.
  • 동영상 URL은 task.content.url이며 인증 헤더가 필요하지 않습니다. HEAD 요청에는 403을 반환하지만 GET에서는 작동하므로, 이를 확인하려면 GET을 사용해야 합니다.
  • URL을 받은 후 가능한 한 빨리 동영상을 다운로드하여 자체 환경에 저장해야 합니다.
과금: 출력 동영상과 입력 참조 동영상에는 각각 초당 $0.03이 부과됩니다. 작업이 승인되면 출력에 대한 duration × \$0.03이 선청구됩니다. 작업 완료 후 실제 사용량이 정산되며, 입력 동영상의 길이는 업스트림 usage.input_seconds에서 가져옵니다. 정산 로그에는 추가 청구 또는 환불만 기록됩니다. 최종 비용 = 선청구액 + 추가 청구액 − 환불액입니다. 참조 이미지 최대 9개와 참조 오디오는 추가 요금이 없습니다. 실패한 작업은 자동으로 전액 환불됩니다. 제출 시 4xx / 5xx를 반환하는 요청에는 과금되지 않으며, 조회 또는 다운로드는 무료입니다. 개요 페이지의 과금 및 예시를 참조하십시오.

인증

Authorization
string
header
필수

API Key from the APIYI console

본문

application/json
model
enum<string>
기본값:MiniMax-H3
필수

Always MiniMax-H3 (case-sensitive)

사용 가능한 옵션:
MiniMax-H3
content
object[]
필수

Exactly one text item plus 0–12 media items. Media item types:

  • image_url: role first_frame / last_frame / reference_image; up to 9 reference images. A single image without role is treated as the first frame
  • video_url: role reference_video; up to 3 clips, MP4/MOV, 50MB max, at least 2 seconds each, 15 seconds total at most
  • audio_url: role reference_audio; up to 3 clips, WAV/MP3/M4A/AAC, 15MB max, at least 2 seconds each
Required array length: 1 - 13 elements
resolution
enum<string>
기본값:768P
필수

Resolution. This channel supports 768P only (uppercase; 768p and 2K are rejected)

사용 가능한 옵션:
768P
duration
integer
기본값:5
필수

Output length in seconds, an integer from 4 to 15. Billed per second; the finished clip is usually 0.1–0.5 s longer than requested

필수 범위: 4 <= x <= 15
ratio
enum<string>
기본값:16:9
필수

Aspect ratio and output size: 21:9=1536×672, 16:9=1344×768, 4:3=1024×768, 1:1=768×768, 3:4=768×1024, 9:16=768×1344. adaptive follows the input image's ratio and only works for requests with images or videos; text-only and audio-only requests need a fixed ratio.

사용 가능한 옵션:
16:9,
9:16,
21:9,
4:3,
1:1,
3:4,
adaptive

응답

Task accepted; returns task_id

task_id
string

Task ID for GET /hailuo/v2/query/video_generation/{task_id}

예시:

"task_Clo9iKPCM46sRwRsMFcmJG6pGNSL1ygx"