Tutorial
How to Use flux-3-max/image-to-video via the HiAPI API: curl, Python, and a Working Request
Common Failure Modes and How to Debug Them
Most integration problems fall into a handful of buckets. Here is how each one shows up.
Missing or unreachable first frame
If the response rejects the request outright, check the image value first. Common causes: a local file path instead of a URL, an http URL where the image is not publicly served, an expired signed link, or a URL that returns HTML instead of an image. Test the URL in a browser — if you see a login page or a download prompt, the API will not see an image either.
A prompt with no motion
Static descriptions produce static-looking results or weak animation. Prompts like "a cat on a chair" describe content, not movement. Rewrite with explicit motion and camera language: what moves, in which direction, how fast, and how the camera behaves. If you get a successful task but the output barely changes, this is almost always the cause.
Over-aggressive polling
Hitting the status endpoint many times per second is a classic self-inflicted failure. It can trip rate limits, produce transient errors that mask the real state, and waste resources. Keep the interval at a few seconds and rely on a deadline to bound the wait.
Reading the wrong field
The submit response and the completed task are not the same shape. A script that greps for the output URL right after submission will find nothing — the output only exists once status reaches completed. Branch on status before touching output fields.
Treating errors as retryable when they are not
Authentication failures and malformed bodies will not fix themselves on retry. Distinguish validation errors (fix the request) from transient network or service errors (retry with backoff). Dumping the full JSON response body into your logs makes this distinction obvious in practice.
Get these five right and the integration is stable. Start with a single short-duration call, confirm the task reaches completed, then wire the polling loop into your pipeline and iterate on prompts against a fixed first frame.
Related articles
View all articles →-
Tutorial
How to Call hailuo-2.3-fast/image-to-video via the HiAPI API: curl and Python
A first working request for the fast, low-cost image-to-video tier — from model ID to downloaded MP4
9 min read -
Tutorial
How to Use hailuo-2.3/text-to-video via the HiAPI API: curl, Python, and a Working Request
11 min read -
Tutorial
Kandinsky 6.0 Pro Text-to-Video on HiAPI: curl and Python Tutorial
A request-first walkthrough: build the prompt-to-clip call, submit it, poll for completion, and download the result
11 min read