HappyHorse 1.1 API reference
1080p clips with sound in nine aspect ratios
Call HappyHorse 1.1 from your own code with one PopNow API key. Below are the exact model IDs to send, every input field the model accepts, what each request costs in credits, and a request you can paste into a terminal.
At a glance
- Made by
- Alibaba
- Output
- Video
- From
- 21 credits per second of output ($0.21)
1 credit = $0.01. A task holds the highest possible charge when it is accepted and settles the real amount when it finishes, rounded up to whole credits; failed tasks are not charged. Ask POST /api/v1/jobs/quote for the exact figure before you run.
Create Video
alibaba/happyhorse-1.1/text-to-video
Price
| Option | Credits (per second of output) | US dollars |
|---|---|---|
720p | 21 | $0.21 |
1080p | 27 | $0.27 |
Parameters
| Field | Type | Default | Allowed | What it does |
|---|---|---|---|---|
promptRequired | string | — | up to 2,500 characters | Describe the scene, action, camera movement, and timing. |
aspect_ratioOptional | string | 16:9 | 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9 | Output aspect ratio. |
resolutionOptional | string | 720p | 720p, 1080p | Output video resolution. |
duration_secondsOptional | integer | 5 | 3 to 15 | Output duration in seconds. Any integer from 3 to 15 is accepted; longer clips cost proportionally more. |
Example request
This request runs as it is; any field you leave out uses its default. Put your key in POPNOW_API_KEY first.
curl -X POST "https://api.popnow.ai/api/v1/jobs/createTask" \
-H "Authorization: Bearer $POPNOW_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"model": "alibaba/happyhorse-1.1/text-to-video",
"input": {
"prompt": "A paper boat drifts down a rain-soaked street at dusk, neon signs reflecting in the water, slow tracking shot at ground level",
"duration_seconds": 5,
"resolution": "720p"
}
}'The response carries a taskId straight away. Read the result with GET /api/v1/jobs/recordInfo, or add callBackUrl to be notified.
curl "https://api.popnow.ai/api/v1/jobs/recordInfo?taskId=TASK_ID_FROM_CREATE_TASK" \
-H "Authorization: Bearer $POPNOW_API_KEY"Image to Video
alibaba/happyhorse-1.1/image-to-video
Price
| Option | Credits (per second of output) | US dollars |
|---|---|---|
720p | 21 | $0.21 |
1080p | 27 | $0.27 |
Parameters
| Field | Type | Default | Allowed | What it does |
|---|---|---|---|---|
promptRequired | string | — | up to 2,500 characters | Describe the scene, action, camera movement, and timing. |
image_urlRequired | string (uri) | — | — | Image used as the first video frame. |
resolutionOptional | string | 720p | 720p, 1080p | Output video resolution. |
duration_secondsOptional | integer | 5 | 3 to 15 | Output duration in seconds. Any integer from 3 to 15 is accepted; longer clips cost proportionally more. |
seedOptional | integer | — | 0 to 2147483647 | Random seed for controlled comparisons. Omit it to let each run pick its own. |
Example request
This request runs as it is; any field you leave out uses its default. Put your key in POPNOW_API_KEY first.
The example uses PopNow sample files in image_url. Replace them with your own public HTTPS links, uploads or saved assets.
curl -X POST "https://api.popnow.ai/api/v1/jobs/createTask" \
-H "Authorization: Bearer $POPNOW_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"model": "alibaba/happyhorse-1.1/image-to-video",
"input": {
"prompt": "He lands softly on the rooftop, laughs and turns toward the camera while the balloons sway in the evening breeze; slow push-in",
"image_url": "https://media.popnow.ai/influencer/examples/marco.webp",
"duration_seconds": 5,
"resolution": "720p"
}
}'The response carries a taskId straight away. Read the result with GET /api/v1/jobs/recordInfo, or add callBackUrl to be notified.
curl "https://api.popnow.ai/api/v1/jobs/recordInfo?taskId=TASK_ID_FROM_CREATE_TASK" \
-H "Authorization: Bearer $POPNOW_API_KEY"Reference to Video
alibaba/happyhorse-1.1/reference-to-video
Price
| Option | Credits (per second of output) | US dollars |
|---|---|---|
720p | 21 | $0.21 |
1080p | 27 | $0.27 |
Parameters
| Field | Type | Default | Allowed | What it does |
|---|---|---|---|---|
promptRequired | string | — | up to 2,500 characters | Describe the scene, action, camera movement, and timing. |
reference_image_urlsRequired | array<string (uri)> | — | up to 9 items | Reference images in the order used by the prompt. |
aspect_ratioOptional | string | 16:9 | 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9 | Output aspect ratio. |
resolutionOptional | string | 720p | 720p, 1080p | Output video resolution. |
duration_secondsOptional | integer | 5 | 3 to 15 | Output duration in seconds. Any integer from 3 to 15 is accepted; longer clips cost proportionally more. |
seedOptional | integer | — | 0 to 2147483647 | Random seed for controlled comparisons. Omit it to let each run pick its own. |
Example request
This request runs as it is; any field you leave out uses its default. Put your key in POPNOW_API_KEY first.
The example uses PopNow sample files in reference_image_urls. Replace them with your own public HTTPS links, uploads or saved assets.
curl -X POST "https://api.popnow.ai/api/v1/jobs/createTask" \
-H "Authorization: Bearer $POPNOW_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"model": "alibaba/happyhorse-1.1/reference-to-video",
"input": {
"prompt": "The man from the reference image jogs across a sunlit rooftop at golden hour and smiles at the camera; smooth tracking shot",
"reference_image_urls": [
"https://media.popnow.ai/influencer/examples/ava.webp"
],
"duration_seconds": 5,
"resolution": "720p"
}
}'The response carries a taskId straight away. Read the result with GET /api/v1/jobs/recordInfo, or add callBackUrl to be notified.
curl "https://api.popnow.ai/api/v1/jobs/recordInfo?taskId=TASK_ID_FROM_CREATE_TASK" \
-H "Authorization: Bearer $POPNOW_API_KEY"
