# Grok Video 1.5 Video Generation

> Grok Video 1.5 source documentation.

Canonical URL: https://docs.uniall.ai/models/video/grok/grok-video-1-5
Locale: en

Updated: 2026-06-26

This document explains how to use aijisu call `grok-video-1.5`. Model single-image-to-video: userprovidesoneInput imageandaprompt, the platformcreates an async video generation task.

## 1. Model

| Model | Capability | Input image | Output resolution |
| --- | --- | --- | --- |
| `grok-video-1.5`| single-image-to-video | supports 1 |`480p`, `720p`, `1080p` |

Note:

- `grok-video-1.5` Yes Model, do notand legacy `grok-imagine`.
- Currently only supportssingle-image-to-video, does not supporttext-to-video, multiple reference images, video input, video editingorvideo extension.
- the input image must be a URL accessible by the platform and upstream service.
- There is no separate landscape/portrait parameter currently; requires landscape passLandscape, requires portrait passPortrait.

## 2. Endpoint

### 2.1 Create Video Task

```http
POST /v1/videos
```

request headers:

```http
Authorization: Bearer sk-***
Content-Type: application/json
```

### 2.2 Query Video Task

```http
GET /v1/videos/{task_id}
```

compatibilityqueryEndpoint:

```http
GET /v1/videos/generations/{task_id}
```

### 2.3 Get Video File

```http
GET /v1/videos/{task_id}/content
```

task completed, readqueryresponses `video_url`, `/content` endpoint to get Video File.

## 3. Parameter Reference

| Parameters | Type | Required | Note |
| --- | --- | --- | --- |
| `model`| string | Yes | always pass `grok-video-1.5` |
| `prompt` | string | Yes | video generationprompt, recommended: describe the subject, action, camera, styleand |
| `image`| string | one of two required | Input image URL; and `image_url` one of two required |
| `image_url`| string | one of two required | Input image URL; and `image` one of two required |
| `duration`| integer | No | Output video duration, supports `1-15`, recommended pass in |
| `seconds`| string | No | Output video duration compatibility field; prefer using `duration` |
| `size`| string | No | Output resolution, supports `480p`, `720p`, `1080p` |
| `resolution`| string | No | Output resolution compatibility field; prefer using `size` |

Field Constraints:

- `image` and `image_url` only pass.
- do not pass both `images`, `image_urls`, `reference_image_urls` Field.
- do not pass `video`, `video_url`, `videos`, `video_urls` video inputField.
- do not pass `aspect_ratio`.
- do not pass `extra_body.operation` editing, reference video or text-to-video capability.
- `size`/`resolution` Resolution tier, landscape or portrait; control orientation through the input image aspect ratio.
- If you pass both `size` and `resolution`, recommended value.

## 4. Request Examples

In the examples below, `{BASE_URL}` can be replaced with `https://api.aijisu.cn`.

### 4.1 use `image_url`

```bash
curl -X POST "{BASE_URL}/v1/videos" \
 -H "Authorization: Bearer sk-***" \
 -H "Content-Type: application/json" \
 -d '{"model": "grok-video-1.5",
 "prompt": "A cinematic close-up of a glass perfume bottle on a marble table, soft morning light, slow camera push-in, elegant product video, no text, no logo.",
 "image_url": "https://example.com/source.jpg",
 "duration": 6,
 "size": "720p"}'
```

### 4.2 use `image`

```bash
curl -X POST "{BASE_URL}/v1/videos" \
 -H "Authorization: Bearer sk-***" \
 -H "Content-Type: application/json" \
 -d '{"model": "grok-video-1.5",
 "prompt": "A quiet landscape photo becomes a gentle animated scene, leaves moving in the wind, soft natural lighting, stable camera, no text.",
 "image": "https://example.com/landscape.png",
 "duration": 8,
 "size": "1080p"}'
```

### 4.3 480p fast

```bash
curl -X POST "{BASE_URL}/v1/videos" \
 -H "Authorization: Bearer sk-***" \
 -H "Content-Type: application/json" \
 -d '{"model": "grok-video-1.5",
 "prompt": "A simple product shot, the object slowly rotates on a clean white background, smooth motion, no text.",
 "image_url": "https://example.com/product.jpg",
 "duration": 4,
 "size": "480p"}'
```

## 5. Create Response Example

A successful create request returns a task object. At this point, the video is usually queued or generating.

```json
{
  "id": "task_xxxxxxxxxxxxx",
  "task_id": "task_xxxxxxxxxxxxx",
  "object": "video.generation.job",
  "model": "grok-video-1.5",
  "status": "queued",
  "progress": 0,
  "created_at": 1782400000
}
```

Save `id` or `task_id`, for later task polling.

## 6. Query Task

```bash
curl "{BASE_URL}/v1/videos/task_xxxxxxxxxxxxx" \
 -H "Authorization: Bearer sk-***"
```

In-progress Response Example:

```json
{
  "id": "task_xxxxxxxxxxxxx",
  "object": "video.generation.job",
  "model": "grok-video-1.5",
  "status": "in_progress",
  "progress": 35,
  "created_at": 1782400000
}
```

Completed Response Example:

```json
{
  "id": "task_xxxxxxxxxxxxx",
  "object": "video.generation.job",
  "model": "grok-video-1.5",
  "status": "completed",
  "progress": 100,
  "video_url": "https://example.com/generated-video.mp4",
  "result": {
    "video_url": "https://example.com/generated-video.mp4",
    "outputs": [
      "https://example.com/generated-video.mp4"
    ]
  }
}
```

## 7. Download Video

Method 1: use the value returned by the query response directly `video_url`.

Method 2: use the task content endpoint to get the file stream.

```bash
curl -L "{BASE_URL}/v1/videos/task_xxxxxxxxxxxxx/content" \
 -H "Authorization: Bearer sk-***" \
 -o grok-video-1.5-output.mp4
```

## 8. Status Values

| Status | Note |
| --- | --- |
| `queued` | Task created and waiting for processing |
| `in_progress` | Task is processing |
| `completed` | Task is complete and the video URL can be read |
| `failed`| taskFailed, responses `error.message` |

Clients should poll every 3 to 10 seconds, until the task enters `completed` or `failed`.

## 9. Common Errors

### sending the model to an image endpoint

`grok-video-1.5` Yesvideo model, call `/v1/videos`, do not `/v1/images/generations`.

### missing input image

 Model pass `image` or `image_url`. only pass `prompt`.

### multiple images were passed

 Model supportsoneInput image. do not pass `images`, `image_urls` or `reference_image_urls`.

### video input was passed

 Modeldoes not supportvideo input. do not pass `video`, `video_url`, `videos` or `video_urls`.

### invalid resolution format

`size` or `resolution` only pass:

- `480p`
- `720p`
- `1080p`

do not pass `1920x1080`, `1280x720`, `4k` or sizestring.

### `aspect_ratio` controlLandscapeportrait

 Model does not support `aspect_ratio`. submit change the input image Orientation, landscapeuseLandscapeimage, portraitusePortraitimage.

### requesting edit or extension capabilities

`grok-video-1.5` does not supporteditingand. do not pass:

```json
{
  "extra_body": {
    "operation": "edit_video"
  }
}
```

or:

```json
{
  "extra_body": {
    "operation": "video_extend"
  }
}
```

## 10. Prompt Guidance

Prompt Guidance:

- subject: object.
- action: subject.
- camera:.
- style:.
- constraints: no text, no logo, no people.

Example:

```markdown
A cinematic product video of the object slowly rotating on a clean studio background, soft natural light, smooth camera push-in, realistic texture, no text, no logo.
```

## 11. Minimum Valid Request

```json
{
  "model": "grok-video-1.5",
  "prompt": "A calm product video, slow camera movement, soft light, no text.",
  "image_url": "https://example.com/source.jpg",
  "duration": 6,
  "size": "720p"
}
```
