# alibaba/happyhorse-1.0/text-to-video > Developed by Alibaba ATH, HappyHorse-1.0 is a trending newcomer in AI video generation. It delivers robust text-to-video performance, integrated with native audio support and multilingual capabilities. ## Overview - **Endpoint**: `https://api.shortapi.ai/api/v1/job/create` - **Model ID**: `alibaba/happyhorse-1.0/text-to-video` - **Category**: text-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..." - **`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_): - 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/text-to-video", "args": { "prompt": "Cinematic close-up shot in an exquisitely realistic style. A middle-aged woman sits by the window, holding an old photograph. Her gaze slowly softens from sorrow to tenderness, with the corners of her mouth lifting faintly as a single tear slips from the corner of her eye. Soft natural light streams through the window, casting delicate light-and-shadow contrast across her face, with the background softly blurred. The camera remains static and fixed, locked on her shifting facial expressions to capture every subtle flicker in her eyes and minute facial muscle movements. 4K ultra HD resolution with hyper-detailed skin texture and seamless light and shadow gradients.Audio: gentle piano melody blended with soft birdsong from outside the window.Constraints: no redundant movements, no dialogue, and a naturally fluid emotional transition throughout." }, "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/text-to-video", "args": { "prompt": "Cinematic close-up shot in an exquisitely realistic style. A middle-aged woman sits by the window, holding an old photograph. Her gaze slowly softens from sorrow to tenderness, with the corners of her mouth lifting faintly as a single tear slips from the corner of her eye. Soft natural light streams through the window, casting delicate light-and-shadow contrast across her face, with the background softly blurred. The camera remains static and fixed, locked on her shifting facial expressions to capture every subtle flicker in her eyes and minute facial muscle movements. 4K ultra HD resolution with hyper-detailed skin texture and seamless light and shadow gradients.Audio: gentle piano melody blended with soft birdsong from outside the window.Constraints: no redundant movements, no dialogue, and a naturally fluid emotional transition throughout." }, "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/text-to-video", "args": { "prompt": "Cinematic close-up shot in an exquisitely realistic style. A middle-aged woman sits by the window, holding an old photograph. Her gaze slowly softens from sorrow to tenderness, with the corners of her mouth lifting faintly as a single tear slips from the corner of her eye. Soft natural light streams through the window, casting delicate light-and-shadow contrast across her face, with the background softly blurred. The camera remains static and fixed, locked on her shifting facial expressions to capture every subtle flicker in her eyes and minute facial muscle movements. 4K ultra HD resolution with hyper-detailed skin texture and seamless light and shadow gradients.Audio: gentle piano melody blended with soft birdsong from outside the window.Constraints: no redundant movements, no dialogue, and a naturally fluid emotional transition throughout." }, "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()) ```