VARIANT · Alibaba / HappyHorse

HappyHorse happyhorse-character API

Same API, same SDK — switch variants by changing one parameter.

Operational · video · Commercial OK
# Works with Claude Code, Codex, Gemini CLI, Cursor, and 50+ agents
npx skills add runapi-ai/happyhorse -g
The -g flag installs globally so every project picks it up.
Or paste this prompt to your AI agent:
Install the HappyHorse skill for me:

1. Clone https://github.com/runapi-ai/happyhorse
2. Copy the skills/happyhorse/ directory into your
   user-level skills directory (e.g. ~/.claude/skills/
   for Claude Code, ~/.codex/skills/ for Codex).
3. Verify that SKILL.md is present.
4. Confirm the install path when done.
Switch variant
OVERVIEW

happyhorse-character targets the sweet spot of quality and cost within the HappyHorse family.

  • Pay-per-call pricing in USD
  • Failed generations not charged
  • Streaming when supported by the model
  • Schema-validated tool calls
PRICING

Pricing

Failed generations are not charged
Text to video
$0.28-$0.48 / second
Output resolution: 720p $0.28
Output resolution: 1080p $0.48
SPEC SHEET

Technical details

Model ID happyhorse-character
Provider Alibaba
Modality video
Task type asynchronous
Billing unit second
API endpoint /api/v1/happyhorse/text_to_video
Commercial license Yes — included via API
Status Operational
QUICKSTART

Quickstart — happyhorse-character

runapi.ai
curl -X POST https://runapi.ai/api/v1/happyhorse/text_to_video \
  -H "Authorization: Bearer $RUNAPI_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "happyhorse-character",
  "prompt": "Generate a 5-second 1080p cinematic clip of a paper horse galloping through a miniature cardboard city at night."
}'
import { HappyhorseClient } from "@runapi.ai/happyhorse";

const client = new HappyhorseClient();
const result = await client.textToVideo.run({
    model: "happyhorse-character",
    prompt: "Generate a 5-second 1080p cinematic clip of a paper horse galloping through a miniature cardboard city at night.",
});
require "runapi/happyhorse"

client = RunApi::Happyhorse::Client.new
result = client.text_to_video.run(
    model: "happyhorse-character",
    prompt: "Generate a 5-second 1080p cinematic clip of a paper horse galloping through a miniature cardboard city at night."
)
@runapi.ai/happyhorse v1
HOW IT WORKS

Use happyhorse-character in four steps

01

Install

Install the model SDK or agent skill for this model line.

02

Configure

Set the model field to the full model ID shown on this page.

03

Call

Send a typed request with your prompt, inputs, and callback settings.

04

Receive

Read the task response, webhook callback, or cached output URL from RunAPI.

DIFFERENCES

What's different about happyhorse-character

VS HAPPYHORSE-EDIT-VIDEO

3-15s text-to-video clips guided by 1-9 ordered reference images

Prompted source-video edits with optional reference images

VS HAPPYHORSE-IMAGE-TO-VIDEO

3-15s text-to-video clips guided by 1-9 ordered reference images

3-15s image-to-video clips from one first-frame image

VS HAPPYHORSE-TEXT-TO-VIDEO

3-15s text-to-video clips guided by 1-9 ordered reference images

3-15s text-to-video clips at 720p or 1080p

USE CASES

Best for

Ad & social content

Generate product launch clips and short-form ads from a text brief, cutting production from weeks to hours.

E-learning

Convert lesson scripts into animated explainer videos at scale without a camera or crew.

Creator workflows

Produce viral short-form content for social platforms directly from a prompt.

FAQ

Frequently asked questions about happyhorse-character

Is the model ID stable across versions?

RunAPI keeps the model ID stable and handles compatible version refreshes without changing your request shape.

What's the rate limit on this variant?

Per-key rate limits scale with usage tier. See pricing page for current limits.

Can I switch variants later?

Yes — variant is a flag. Switch by changing the model parameter.

Does it stream?

Where streaming is available, RunAPI streams end-to-end.

Where do I report quality issues?

Open an issue on the public GitHub repo or email support.

START NOW

Start building with HappyHorse.