curl --request POST \
--url https://api.poyo.ai/api/generate/submit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data @- <<EOF
{
"model": "happy-horse-1.1",
"callback_url": "https://your-domain.com/callback",
"input": {
"prompt": "Medium shot of a professional news anchor at a sleek desk in a modern broadcast studio, cool blue lighting, softly glowing screens behind. 0-5s: He looks into the camera and says in a clear measured voice, \"Good evening. Tonight, a breakthrough that could change how millions of us work.\" 5-10s: He turns slightly toward a second camera, \"We'll have the full story, and what it means for you, right after this.\" Precise lip-sync, subtle studio room tone, crisp broadcast quality, shallow depth of field.",
"aspect_ratio": "16:9",
"resolution": "1080p",
"duration": 10
}
}
EOF{
"code": 200,
"data": {
"task_id": "task-unified-1757165031-uyujaw3d",
"status": "not_started",
"created_time": "2026-06-23T10:30:00"
}
}Alibaba
Happy Horse 1.1
Happy Horse 1.1 text-to-video, image-to-video, and reference-to-video modes
POST
/
api
/
generate
/
submit
curl --request POST \
--url https://api.poyo.ai/api/generate/submit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data @- <<EOF
{
"model": "happy-horse-1.1",
"callback_url": "https://your-domain.com/callback",
"input": {
"prompt": "Medium shot of a professional news anchor at a sleek desk in a modern broadcast studio, cool blue lighting, softly glowing screens behind. 0-5s: He looks into the camera and says in a clear measured voice, \"Good evening. Tonight, a breakthrough that could change how millions of us work.\" 5-10s: He turns slightly toward a second camera, \"We'll have the full story, and what it means for you, right after this.\" Precise lip-sync, subtle studio room tone, crisp broadcast quality, shallow depth of field.",
"aspect_ratio": "16:9",
"resolution": "1080p",
"duration": 10
}
}
EOF{
"code": 200,
"data": {
"task_id": "task-unified-1757165031-uyujaw3d",
"status": "not_started",
"created_time": "2026-06-23T10:30:00"
}
}- After submission, a
task_idwill be returned. If you provided acallback_url, when the task status becomesfinishedorfailed, a POST request will be sent to thecallback_url. - Regardless of whether
callback_urlis provided, you can retrieve the result through the unified Query Task Status endpoint.
Happy Horse 1.1
happy-horse-1.1 supports text-to-video, image-to-video, and reference-to-video through one public model ID.
Available Model
- happy-horse-1.1 - Alibaba Happy Horse 1.1 video generation
Modes
Text to Video
Send aprompt without image_urls or reference_image_urls. Use aspect_ratio, resolution, and duration to control the output.
Image to Video
Send a single-itemimage_urls array. The image is used as the first frame. prompt is optional in this mode.
Reference to Video
Sendreference_image_urls with 1-9 images and a required prompt.
Do not combine reference_image_urls with image_urls.
Required Parameters
- model:
happy-horse-1.1 - input.prompt: Required for text-to-video and reference-to-video. Optional for image-to-video. Maximum length is 2,500 characters.
- input.image_urls: Required for image-to-video.
- input.reference_image_urls: Required for reference-to-video.
Optional Parameters
- image_urls: Single-item first-frame image URL array for image-to-video
- reference_image_urls: 1-9 images for reference-to-video
- aspect_ratio: Text-to-video and reference-to-video only.
21:9,16:9,4:3,1:1,3:4,4:5,5:4,9:16, or9:21. Default is16:9 - resolution:
720por1080p. Default is1080p - duration: Integer seconds from
3to15. Default is5 - seed: Optional integer from
0to2147483647 - enable_safety_checker: Optional boolean
Notes
image_urlsmust resolve to exactly one image and is only for image-to-video.reference_image_urlsselects reference-to-video and cannot be used together withimage_urls.- For text-to-video and reference-to-video, omit
image_urlsand useaspect_ratio. - Credits are calculated by video duration and selected resolution.
Authorizations
All API endpoints require Bearer Token authentication
Get your API Key:
Visit the API Key Management Page to get your API Key
Add it to the request header:
Authorization: Bearer YOUR_API_KEY
Body
application/json
