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

# Overview

> Creatify's video generation models: generate a video from a prompt, a start image, an audio track, or reference media.

## 🚀 Introduction

**Boreal** is Creatify's video generation model, built for video ads. Describe the scene in a prompt (subject, action, camera, dialogue and sound) and Boreal renders it. Add a start image to animate that frame, or an audio track to drive the video with speech or sound.

The same endpoint also serves **Boreal-H3** (`model: "boreal-h3"`), Creatify's post-trained H3 model. It adds a closing frame and reference to video, which builds a scene from up to 9 reference images, 3 videos and 3 audio tracks. See [Boreal-H3](#boreal-h3).

***

## ⚙️ Quickstart Guide

### ✅ Prerequisites

Before you begin, ensure you have:

* A [Creatify](https://app.creatify.ai) account with **API access**
* Your **API credentials** (see [Quickstart](/quickstart))

***

## 📝 Step 1: Submit a Video Generation Request

<CodeGroup>
  ```bash Text to video theme={null}
  curl --request POST \
      --url https://api.creatify.ai/api/boreal/ \
      --header 'Content-Type: application/json' \
      --header 'X-API-ID: your-api-id' \
      --header 'X-API-KEY: your-api-key' \
      --data '{
      "prompt": "A barista pours latte art into a white ceramic cup. Slow push-in, warm morning light, soft cafe chatter in the background.",
      "resolution": "720p",
      "aspect_ratio": "9:16",
      "duration": 10,
      "webhook_url": "https://webhook.example"
    }'
  ```

  ```bash Image to video theme={null}
  curl --request POST \
      --url https://api.creatify.ai/api/boreal/ \
      --header 'Content-Type: application/json' \
      --header 'X-API-ID: your-api-id' \
      --header 'X-API-KEY: your-api-key' \
      --data '{
      "prompt": "The woman looks into the camera and says with a warm smile: \"Planning your next trip just got easier.\" Handheld UGC sway, soft natural light.",
      "image_url": "https://d35ghwdno3nak3.cloudfront.net/tutorial/avatar-aurora/recommendation-4.jpg",
      "resolution": "720p",
      "duration": 10,
      "webhook_url": "https://webhook.example"
    }'
  ```

  ```bash Audio driven theme={null}
  curl --request POST \
      --url https://api.creatify.ai/api/boreal/ \
      --header 'Content-Type: application/json' \
      --header 'X-API-ID: your-api-id' \
      --header 'X-API-KEY: your-api-key' \
      --data '{
      "prompt": "The woman talks to the camera with natural hand gestures, soft natural light.",
      "image_url": "https://d35ghwdno3nak3.cloudfront.net/tutorial/avatar-aurora/recommendation-4.jpg",
      "audio_url": "https://d35ghwdno3nak3.cloudfront.net/user/18165/2025-09-15/2d20-req-3VV9TLO6qlTOflMMQBRe-0-s.mp3",
      "resolution": "720p",
      "webhook_url": "https://webhook.example"
    }'
  ```

  ```json Example Response theme={null}
  {
      "id": "8f0b3c6e-2d4a-4a57-9c1e-5b7f2e9d1a34",
      "created_at": "2026-09-15T10:30:06.296630-07:00",
      "updated_at": "2026-09-15T10:30:06.296681-07:00",
      "model": "boreal",
      "prompt": "A barista pours latte art into a white ceramic cup. Slow push-in, warm morning light, soft cafe chatter in the background.",
      "image_url": null,
      "end_image_url": null,
      "audio_url": null,
      "reference_image_urls": [],
      "reference_video_urls": [],
      "reference_audio_urls": [],
      "resolution": "720p",
      "aspect_ratio": "9:16",
      "duration": 10.0,
      "negative_prompt": null,
      "prompt_enhancement": null,
      "webhook_url": "https://webhook.example",
      "status": "pending",
      "failed_reason": null,
      "video_output": null,
      "credits_used": 0,
      "progress": 0
  }
  ```
</CodeGroup>

> 🎬 The response includes a unique video ID. Save it to check status.

### Parameters

| Parameter | Required | Description |
| - | - | - |
| `model` | No | `boreal` (default) or `boreal-h3`. This table describes `boreal`; see [Boreal-H3](#boreal-h3) for what changes. |
| `prompt` | Yes | What the video should show: subject, action, camera, and any dialogue or sound. |
| `image_url` | No | Start frame. The video follows the image's own aspect ratio unless `aspect_ratio` names one, which centre-crops the image to it. |
| `audio_url` | No | Audio track (`mp3` or `wav`) that drives the video. When set, the video is as long as the audio (within the same length limit as `duration`) and `duration` is ignored. |
| `resolution` | No | `720p` (default), `1080p` or `2k`. 2k is 2016 px on the long edge for 16:9 and 9:16, and 1440p for 1:1, 4:3 and 3:4. |
| `aspect_ratio` | No | `auto` (default), `16:9`, `9:16`, `1:1`, `4:3` or `3:4`. `auto` follows the start image, and is 16:9 without an image. |
| `duration` | No | Video length in seconds, greater than 0. Up to 60 at 720p, 30 at 1080p and 15 at 2k. Default `10`. |
| `negative_prompt` | No | What the video should avoid. |
| `webhook_url` | No | URL that receives the result when the video is ready. |

***

## ⏳ Step 2: Check Video Generation Status

Poll the status endpoint with the returned ID until `status` is `done`.

<CodeGroup>
  ```bash Example Request theme={null}
  curl --request GET  \
     --url https://api.creatify.ai/api/boreal/8f0b3c6e-2d4a-4a57-9c1e-5b7f2e9d1a34/ \
     --header 'X-API-ID: your-api-id' \
     --header 'X-API-KEY: your-api-key'
  ```

  ```json Example Response theme={null}
  {
      "id": "8f0b3c6e-2d4a-4a57-9c1e-5b7f2e9d1a34",
      "created_at": "2026-09-15T10:30:06.296630-07:00",
      "updated_at": "2026-09-15T10:31:12.104522-07:00",
      "model": "boreal",
      "prompt": "A barista pours latte art into a white ceramic cup. Slow push-in, warm morning light, soft cafe chatter in the background.",
      "image_url": null,
      "end_image_url": null,
      "audio_url": null,
      "reference_image_urls": [],
      "reference_video_urls": [],
      "reference_audio_urls": [],
      "resolution": "720p",
      "aspect_ratio": "9:16",
      "duration": 10.0,
      "negative_prompt": null,
      "prompt_enhancement": null,
      "webhook_url": "https://webhook.example",
      "status": "done",
      "failed_reason": null,
      "video_output": "https://cdn.creatify.ai/boreal_api/1/mj-3c9a7e2b-5f41-4d8e-a0b6-2e1f7c9d4b58/6d2f8a1c-9e3b-4c7d-b5a2-0f4e8c1d7b93.mp4",
      "credits_used": 1,
      "progress": 1
  }
  ```
</CodeGroup>

> ✅ When `status` is `done`, retrieve your video from the `video_output` field.

### 🔔 Webhook Option

Instead of polling, provide a `webhook_url` in the request. When processing completes, Boreal sends a POST request to your webhook with a payload like this:

```json theme={null}
{
  "id": "8f0b3c6e-2d4a-4a57-9c1e-5b7f2e9d1a34",
  "status": "done",
  "failed_reason": "",
  "video_output": "https://cdn.creatify.ai/boreal_api/1/mj-3c9a7e2b-5f41-4d8e-a0b6-2e1f7c9d4b58/6d2f8a1c-9e3b-4c7d-b5a2-0f4e8c1d7b93.mp4"
}
```

***

## Boreal-H3

Set `model` to `boreal-h3` to render with **Boreal-H3**, Creatify's post-trained H3 model. The request, the job and the webhook work as above, with these differences:

* **Three modes.** A prompt alone is text to video. `image_url` animates a start frame, and `end_image_url` adds a closing frame. The `reference_*_urls` parameters build the scene from reference media (reference to video).
* **Length.** `duration` is a whole number from 5 to 15 seconds. Default `10`.
* **Resolution.** `768p` (default), `1088p` or `2k` (1440 px on the short edge). `720p` and `1080p` are Boreal's tiers.
* **No `audio_url` or `negative_prompt`.** To add sound, send `reference_audio_urls` with an image or video reference.
* **Prompt rewrite.** Boreal-H3 rewrites the prompt into the form the model works best with. Set `prompt_enhancement` to `none` to render it as sent. Boreal always renders the prompt as sent.

<CodeGroup>
  ```bash Text to video theme={null}
  curl --request POST \
      --url https://api.creatify.ai/api/boreal/ \
      --header 'Content-Type: application/json' \
      --header 'X-API-ID: your-api-id' \
      --header 'X-API-KEY: your-api-key' \
      --data '{
      "model": "boreal-h3",
      "prompt": "A barista pours latte art into a white ceramic cup. Slow push-in, warm morning light, soft cafe chatter in the background.",
      "resolution": "768p",
      "aspect_ratio": "9:16",
      "duration": 10,
      "webhook_url": "https://webhook.example"
    }'
  ```

  ```bash Start and end frames theme={null}
  curl --request POST \
      --url https://api.creatify.ai/api/boreal/ \
      --header 'Content-Type: application/json' \
      --header 'X-API-ID: your-api-id' \
      --header 'X-API-KEY: your-api-key' \
      --data '{
      "model": "boreal-h3",
      "prompt": "The woman picks up her phone, glances at the screen and smiles at the camera. Handheld UGC sway, soft natural light.",
      "image_url": "https://d35ghwdno3nak3.cloudfront.net/tutorial/avatar-aurora/recommendation-4.jpg",
      "end_image_url": "https://example.com/end-frame.jpg",
      "resolution": "1088p",
      "duration": 8,
      "webhook_url": "https://webhook.example"
    }'
  ```

  ```bash Reference to video theme={null}
  curl --request POST \
      --url https://api.creatify.ai/api/boreal/ \
      --header 'Content-Type: application/json' \
      --header 'X-API-ID: your-api-id' \
      --header 'X-API-KEY: your-api-key' \
      --data '{
      "model": "boreal-h3",
      "prompt": "The woman from Image 1 unboxes the sneakers from Image 2 at her desk and holds them up to the camera. Handheld UGC framing, warm light.",
      "reference_image_urls": [
        "https://d35ghwdno3nak3.cloudfront.net/tutorial/avatar-aurora/recommendation-4.jpg",
        "https://example.com/sneakers.jpg"
      ],
      "aspect_ratio": "9:16",
      "duration": 10,
      "webhook_url": "https://webhook.example"
    }'
  ```
</CodeGroup>

### Boreal-H3 parameters

These parameters only apply to `boreal-h3`. With `model: "boreal"`, sending any of them, or `768p` or `1088p`, returns a 400 error.

| Parameter | Required | Description |
| - | - | - |
| `end_image_url` | No | Closing frame. Needs `image_url`. |
| `reference_image_urls` | No | Up to 9 reference images. |
| `reference_video_urls` | No | Up to 3 reference videos. |
| `reference_audio_urls` | No | Up to 3 reference audio tracks. Needs at least one image or video reference. |
| `prompt_enhancement` | No | `auto` (default) rewrites the prompt; `none` renders it as sent. |

* In a reference render, refer to the references by type and order in the prompt: Image 1, Image 2, Video 1, Audio 1.
* A reference render takes no `image_url` or `end_image_url`. Send those frames as reference images instead.
* With `image_url`, leave `aspect_ratio` at `auto`: the video follows the image's ratio. In a reference render, `auto` follows the first reference image. With no image, `auto` is 16:9.
* A `1088p` render with only video references needs a named `aspect_ratio`.

***

## 🎯 Summary

| Step | Endpoint |
| - | - |
| Create Task | `POST /api/boreal/` |
| Check Status | `GET /api/boreal/{id}/` |
| API Reference | [Boreal Reference](/api-reference/boreal/post-boreal) |

***

## 💳 Pricing and Length Limits

### Boreal

Billing is per started 10 seconds of video. Each resolution has a maximum video length, which applies to `duration` and to the length of `audio_url`:

| Resolution | Maximum length | Credits per 10 seconds |
| - | - | - |
| 720p | 60 seconds | 1 |
| 1080p | 30 seconds | 3 |
| 2k | 15 seconds | 12 |

For example, a 15-second 720p video costs 2 credits.

### Boreal-H3

Billing is per second of video, 5 to 15 seconds at every resolution. It is the same price as the `boreal-h3` models on the [Asset Generator](/api-reference/ai-generation/post-ai-generation#supported-models):

| Resolution | Credits per second |
| - | - |
| 768p | 0.4 |
| 1088p | 1.2 |
| 2k | 2.6 |

Reference inputs are billed on top of the video:

* Reference videos cost 0.4 credits (768p) or 0.6 credits (1088p and 2k) per second of their combined length, counting up to 15 seconds.
* The first five reference images are free. Each one after that costs 0.2 credits.
* Reference audio is free.

The total is rounded up to the next half credit. For example, a 5-second 768p video costs 2 credits, and a 15-second 2k video costs 39 credits.

Credits are charged when rendering starts and refunded if the video fails.

***

## 🤝 Need Help?

If you run into any issues, check out our [API Reference](/api-reference) or contact [api@creatify.ai](mailto:api@creatify.ai).


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