---
title: "Boost HD (Upscale Video)"
method: POST
path: "/v2/hailuo/upscale"
tags: ["H3 Video"]
---

# Boost HD (Upscale Video)

`POST /v2/hailuo/upscale`

## Request

- Base URL: `https://genaipro.io/api`
- URL: `https://genaipro.io/api/v2/hailuo/upscale`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/genaipro/apis/genaipro-api/docs/v2/hailuo/upscale/post.ts> (a function with typed inputs; its response is checked against the schema)

**Boost HD** — upscale one finished video from this group to a higher resolution. Costs **1 credit**, regardless of target resolution or video length. Returns immediately with `202 Accepted` and a new task (`task_type: upscale_video`); the source task is not changed.

- `task_id` must be one of your `/v2/hailuo` video tasks with `status: completed` (including a previous Boost HD result).
- `index` picks the video inside that task's `file_urls` (0-based, default `0`).
- The target must be higher than the source's short side: `480p` / `768p` sources → `1080p`, `1440p` or `2160p`; `2k` sources → `2160p` only.
- Duration and aspect ratio are kept from the source.

### Example

```bash
curl -X POST https://genaipro.io/api/v2/hailuo/upscale \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "task_id": "550e8400-e29b-41d4-a716-446655440000",
    "index": 0,
    "resolution": "1440p"
  }'
```

> **Rate limit:** 30 requests/minute — shared across all `/v2/hailuo` creation endpoints.

## Request body

- object
  - `task_id` string, required: ID of a completed `/v2/hailuo` video task you own
  - `index` integer: 0-based position of the video in the source task's `file_urls`
  - `resolution` '1080p' | '1440p' | '2160p', required: Target resolution (`1440p` = 2K, `2160p` = 4K). Must be higher than the source.
  - `callback_url` string: Optional `http`/`https` webhook URL. When the task reaches `completed` or `failed`, GenAIPro POSTs the task object (same shape as `GET /v2/hailuo/tasks/{id}`) to this URL.

## Response `202`

Upscale task accepted for processing

- H3Task: Task object returned by every `/v2/hailuo` endpoint — creation (`202`), `GET /tasks/{id}`, `GET /histories`, the `hailuo_task_updated` WebSocket event and the `callback_url` webhook.
  - `id` string: Task ID (use for `GET /v2/hailuo/tasks/{id}`)
  - `prompt` string: The prompt used for generation (for Boost HD, the source task's prompt)
  - `file_urls` string[]: URLs of the generated files (empty while processing). Public; deleted about 90 days after creation (then `404`) — download them yourself.
  - `status` 'processing' | 'completed' | 'failed': Task status
  - `error` string: Error message — present only when `status` is `failed`
  - `failed_slots` object[]: Outputs that failed while the rest completed (their credits are refunded). Present only when `status` is `completed` and some outputs failed; `file_urls` contains only the generated files.
    - `index` integer: 0-based position of the failed output in the request
    - `error` string
  - `task_type` string: `text_to_video`, `frames_to_video`, `reference_to_video` or `upscale_video` (image tasks: `create_image`)
  - `aspect_ratio` string: Aspect ratio of the task — `Auto` for frames-to-video (follows the start image)
  - `model` string: Model and options of the task. Video: `<model>_<resolution>_<duration>s` (e.g. `h3_768p_10s`, `h3_max_480p_5s`); Boost HD: `upscale_<resolution>` (e.g. `upscale_1440p`).
  - `number_of_outputs` integer: Number of videos (or images) requested
  - `created_at` string, date-time: Timestamp when the task was created

## Other responses

- `400`: Invalid request (unsupported `resolution`, source task not a finished video, `index` out of range, source already at or above the target, insufficient credits)
- `401`: Missing or invalid API token
- `403`: H3 video generation is not enabled for your account, or video generation is temporarily disabled
- `404`: Source task not found or does not belong to the authenticated user
- `429`: Rate limit exceeded
- `503`: No capacity right now (nothing is charged) — retry later

## Changes

- **2026-10-29** `8e065c159192`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/genaipro/apis/genaipro-api/changes/v2/hailuo/upscale/post.md)

---

[API](https://skmtc.dev/genaipro/apis/genaipro-api.md) - [All operations](https://skmtc.dev/genaipro/apis/genaipro-api/llms.txt) - [OpenAPI document](https://skmtc.dev/genaipro/apis/genaipro-api/revisions/264ca07ba262?raw)
