> ## Documentation Index
> Fetch the complete documentation index at: https://docs.toapis.com/llms.txt
> Use this file to discover all available pages before exploring further.

# HappyHorse 1.1 Video Generation

> Generate, reference, or edit videos with HappyHorse 1.1

> [!NOTE]
>
> **Note for users in mainland China:** Please use `https://toapis.cn` as the API endpoint (Base URL). Replace `https://toapis.com` with `https://toapis.cn` in the examples in this document.

* Public model name: `happyhorse-1.1`
* Use `action` to choose text-to-video, first-frame image-to-video, reference-to-video, or video editing
* If `action` is omitted, requests with a first-frame image are treated as image-to-video; otherwise they are text-to-video
* Async task management through the standard video task status endpoint

## Authorizations

**Authorization** `string` *required*

All requests require Bearer Token authentication.

```
Authorization: Bearer YOUR_API_KEY
```

## Body

**model** `string` *required* (default: happyhorse-1.1)

Video generation model name. Fixed value: `happyhorse-1.1`.

**action** `string` (default: text-to-video)

Generation mode.

Options:

* `text-to-video`
* `image-to-video`
* `reference-to-video`
* `video-edit`

If omitted, the server detects the mode from whether a first-frame image is present.

**prompt** `string`

Text prompt for the video.

Required for text-to-video, reference-to-video, and video editing. Optional for image-to-video, but recommended for motion and style control.

**image\_urls** `string[]`

First-frame image URL for image-to-video. Only the first image is used.

Compatible fields are also accepted: `input_reference`, `images`, `image`, or `image_with_roles[{ role: "first_frame" }]`.

Image requirements:

* Format: `JPEG`, `JPG`, `PNG`, `BMP`, `WEBP`
* File size: up to `10MB`
* Dimensions: at least `300px`
* Aspect ratio: `1:2.5` to `2.5:1`

**reference\_images** `string[]`

Reference image URLs.

Required for `reference-to-video`, with `1` to `9` images. Optional for `video-edit`, with up to `5` images.

**url** `string`

Input video URL for video editing. Required when `action=video-edit`.

**audio\_setting** `string` (default: auto)

Audio control for video editing. Only applies when `action=video-edit`.

Options:

* `auto`
* `origin`

**duration** `integer` (default: 5)

Video duration in seconds. Valid range: `3` to `15`.

**resolution** `string` (default: 1080P)

Video resolution.

Options:

* `720P`
* `1080P`

**aspect\_ratio** `string` (default: 16:9)

Aspect ratio for text-to-video. Image-to-video uses the first-frame image dimensions.

Options:

* `16:9`
* `9:16`
* `1:1`
* `4:3`
* `3:4`

The compatible `size` field is also accepted.

**seed** `integer`

Random seed for reproducible generation.

**watermark** `boolean` (default: true)

Whether to add a watermark.

## Text-to-Video Example

```bash theme={null}
curl --request POST \
  --url https://toapis.com/v1/videos/generations \
  --header "Authorization: Bearer YOUR_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{
    "model": "happyhorse-1.1",
    "action": "text-to-video",
    "prompt": "At night under an urban railway bridge, a graffiti teenager comes alive from a concrete wall and performs a high-energy English rap.",
    "duration": 10,
    "resolution": "1080P",
    "aspect_ratio": "16:9",
    "seed": 42,
    "watermark": true
  }'
```

## Image-to-Video Example

```bash theme={null}
curl --request POST \
  --url https://toapis.com/v1/videos/generations \
  --header "Authorization: Bearer YOUR_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{
    "model": "happyhorse-1.1",
    "action": "image-to-video",
    "prompt": "Animate the character naturally while preserving the original visual style.",
    "image_urls": ["https://example.com/first-frame.png"],
    "duration": 5,
    "resolution": "1080P"
  }'
```

## Reference-to-Video Example

```bash theme={null}
curl --request POST \
  --url https://toapis.com/v1/videos/generations \
  --header "Authorization: Bearer YOUR_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{
    "model": "happyhorse-1.1",
    "action": "reference-to-video",
    "prompt": "The character from image 1 runs through the scene in image 2, then picks up the prop from image 3. Keep a 3D cartoon style.",
    "reference_images": [
      "https://example.com/image-01.jpg",
      "https://example.com/image-02.png",
      "https://example.com/image-03.jpeg"
    ],
    "duration": 5,
    "resolution": "1080P",
    "aspect_ratio": "16:9",
    "watermark": false
  }'
```

## Video Edit Example

```bash theme={null}
curl --request POST \
  --url https://toapis.com/v1/videos/generations \
  --header "Authorization: Bearer YOUR_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{
    "model": "happyhorse-1.1",
    "action": "video-edit",
    "prompt": "Make the video more cinematic while preserving the subject motion.",
    "url": "https://example.com/input.mp4",
    "reference_images": ["https://example.com/reference.png"],
    "resolution": "1080P",
    "audio_setting": "origin",
    "seed": 42
  }'
```

## Query Task

The submit endpoint returns a task ID. Use the standard video task status endpoint to retrieve the result:

```bash theme={null}
curl --request GET \
  --url https://toapis.com/v1/videos/generations/{task_id} \
  --header "Authorization: Bearer YOUR_API_KEY"
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.