# alibaba/happyhorse-1.0/reference-to-video > Developed by Alibaba ATH, HappyHorse-1.0 is a trending newcomer in AI video generation. It delivers robust reference-to-video performance, integrated with native multilingual processing and audio support. ## Overview - **Endpoint**: `https://api.shortapi.ai/api/v1/job/create` - **Model ID**: `alibaba/happyhorse-1.0/reference-to-video` - **Category**: reference-to-video - **Kind**: inference ## Pricing The billing rate is $0.129 per second for 720p and $0.229 per second for 1080p. For more details, please check our pricing page. ## API Information This model can be used via our HTTP API or more conveniently via our client libraries. See the input and output schema below, as well as the usage examples. ### Input Schema The API accepts the following input parameters: - **`prompt`** (`string`, _required_): Text prompt, used to describe the expected generated video content. Supports input in any language. The length must not exceed 5,000 non-Chinese characters or 2,500 Chinese characters; any excess will be automatically truncated - Examples: "An action shot of a black lab swimming..." - **`images`** (`list`, _required_): Images for video generation. You can provide 1 to 9 reference images. Supported formats are JPEG, JPG, PNG, and WEBP. The shorter side of each image must be at least 400 pixels, and clear images with a resolution of 720p or higher are recommended. Avoid using images that are too small, blurry, or overly compressed, as this may affect the results. Each file must not exceed 10 MB - **`resolution`** (`string`, _optional_): Output video resolution - Default: `1080P` - Options: "720P", "1080P" - **`ratio`** (`string`, _optional_): Specify the aspect ratio of the generated video - Default: `16:9` - Options: "16:9", "9:16", "1:1", "4:3", "3:4" - **`duration`** (`int`, _optional_): Video Length, unit: s (seconds) - Default: `5` - Range: `3` to `15` ### Output Schema The API returns a JSON response with a `job_id` for tracking the request status. **Create Job Response:** ```json { "code": 0, "data": { "amount": "0.02", "job_id": "" } } ``` **Query Job Result (when status is 2, meaning succeeded):** ```json { "code": 0, "data": { "status": 2, "result": { "videos": [{ "url": "https://..." }] } } } ``` ## Use Example To use this model, make an HTTP POST request to the API endpoint, then poll for results using the returned `job_id`. ### Bash (cURL) ```bash # Step 1: Create a job response=$(curl --request POST \ --url https://api.shortapi.ai/api/v1/job/create \ --header "Authorization: Bearer $SHORTAPI_KEY" \ --header "Content-Type: application/json" \ --data '{ "model": "alibaba/happyhorse-1.0/reference-to-video", "args": { "prompt": "A cool wedding dance scene between character1 and character2", "images": ["https://file.shortapi.ai/assets/examples/alibaba/happyhorse-1.0/reference-to-video-images1.webp","https://file.shortapi.ai/assets/examples/alibaba/happyhorse-1.0/reference-to-video-images2.webp"] }, "callback_url": "CALLBACK_URL" }') JOB_ID=$(echo "$response" | grep -o '"job_id": *"[^"]*"' | sed 's/"job_id": *//; s/"//g') # Step 2: Poll for results curl --request GET \ --url "https://api.shortapi.ai/api/v1/job/query?id=$JOB_ID" \ --header "Authorization: Bearer $SHORTAPI_KEY" ``` ### JavaScript (Fetch API) ```javascript // Step 1: Create a job const response = await fetch(`https://api.shortapi.ai/api/v1/job/create`, { method: "POST", headers: { "Authorization": `Bearer ${SHORTAPI_KEY}`, "Content-Type": "application/json" }, body: JSON.stringify({ "model": "alibaba/happyhorse-1.0/reference-to-video", "args": { "prompt": "A cool wedding dance scene between character1 and character2", "images": ["https://file.shortapi.ai/assets/examples/alibaba/happyhorse-1.0/reference-to-video-images1.webp","https://file.shortapi.ai/assets/examples/alibaba/happyhorse-1.0/reference-to-video-images2.webp"] }, "callback_url": "CALLBACK_URL" }) }); const data = await response.json(); const JOB_ID = data.job_id; // Step 2: Poll for results const result = await fetch(`https://api.shortapi.ai/api/v1/job/query?id=${JOB_ID}`, { method: "GET", headers: { "Authorization": `Bearer ${SHORTAPI_KEY}` } }); const resultData = await result.json(); console.log(resultData); ``` ### Python (Requests) ```python import requests # Step 1: Create a job url = "https://api.shortapi.ai/api/v1/job/create" payload = { "model": "alibaba/happyhorse-1.0/reference-to-video", "args": { "prompt": "A cool wedding dance scene between character1 and character2", "images": ["https://file.shortapi.ai/assets/examples/alibaba/happyhorse-1.0/reference-to-video-images1.webp","https://file.shortapi.ai/assets/examples/alibaba/happyhorse-1.0/reference-to-video-images2.webp"] }, "callback_url": "CALLBACK_URL" } headers = { "Authorization": f"Bearer {SHORTAPI_KEY}", "Content-Type": "application/json" } response = requests.post(url, headers=headers, json=payload) data = response.json() JOB_ID = data.get("job_id") # Step 2: Poll for results result_url = f"https://api.shortapi.ai/api/v1/job/query?id={JOB_ID}" result = requests.get(result_url, headers={"Authorization": f"Bearer {SHORTAPI_KEY}"}) print(result.json()) ```