Blog

Grok Imagine 15-Second Videos (2026): Prices and API Code

Unicorn API Team · · 10 min read

Grok Imagine 15 seconds video timeline showing one 15-second clip generated from a start image

Grok Imagine 15 seconds is the longest single clip you can get from Grok Imagine Video 1.5, xAI’s newer video model. You get it by setting a duration parameter, not by asking for it in your prompt. That one detail explains most of the frustration on Reddit, where people type “a sequence lasting 15 seconds” over and over and still get short clips. This guide covers how clip length really works, which model to use, what a full 15-second video costs, and code that renders one end to end.

What does Grok Imagine 15 seconds actually mean?

When people search for grok imagine 15 seconds, they usually want one of three things. Some want to know whether 15-second clips exist at all. Some have tried and keep getting shorter videos. Others want to know what a full-length clip costs before they commit to a batch. All three come down to how the Grok Imagine video models handle length.

The consumer Grok app has changed its limits several times during 2026. Early in the year, reports described a jump from 5-second to 10-second videos. Later updates pushed single-generation length further and added an Extend feature for continuing a clip. Reports disagree on the exact numbers for the app, and the app can change without notice. So this guide focuses on the models themselves, where the limits are written down and you control the settings.

On Unicorn API there are two Grok Imagine video models:

  • Grok Imagine Video 1.5: image-to-video only, 1 to 15 seconds, at 480p, 720p or 1080p. “Image-to-video” means you supply a start frame (a still image) and the model animates it. It has strong motion quality and a very low cost per second, and it can be busy at peak times.
  • Grok Imagine Video 1.0: text-to-video or image-to-video, 6 to 30 seconds, at the same resolutions and the same per-second rate.

So “Grok Imagine 15 seconds” means two different things depending on the model. On 1.5 it is the ceiling. On 1.0 it sits in the middle of the range. Either way, you get it by sending "duration": 15.

Why asking for 15 seconds in the prompt does not work

The Reddit thread asking “is anyone getting 15 sec videos?” captures the core misunderstanding. A video model receives two kinds of input:

  • Conditioning: the prompt and start image. These steer what appears on screen: subject, motion, camera, mood.
  • Generation settings: duration, resolution and aspect ratio. These fix the shape of the output before a single frame is drawn.

The model decides how many frames to render from the duration setting, then fills those frames according to the prompt. The words “15 seconds” in a prompt are just more text describing the scene. The model has no way to turn them into extra frames. If the interface you are using has a fixed default length, you will keep getting that default no matter how you phrase the request.

A length phrase in the prompt can even make results worse. “A 15-second sequence of a dancer spinning” may push the model to cram a lot of action into whatever length it actually renders, which tends to look rushed.

How to write a prompt that fills 15 seconds

Once duration is set correctly, the next problem is the opposite one: 15 seconds is long for a single shot, and a one-line prompt can produce a clip where little happens after the first few seconds. Describe a sequence of beats instead:

  1. Opening: what the viewer sees at the start, usually matching your start frame.
  2. Middle: the main action or camera move.
  3. Ending: where the motion settles, so the clip does not stop mid-gesture.

For example: “Slow push-in on a lighthouse at dusk. Waves build and break against the rocks below. The lighthouse beam switches on and sweeps across the water as the camera comes to rest.” That gives the model enough to do across the full Grok Imagine 15 seconds without inventing random motion to fill the gap.

Diagram showing that clip length comes from the duration setting, not the prompt text
Length is a parameter. The prompt only describes what happens during those 15 seconds.

Which Grok Imagine model gives you 15-second clips?

Both Grok video models can render exactly 15 seconds, and they charge the same at that length. The real difference is input type and how far you can go past 15.

Grok Imagine Video 1.5Grok Imagine Video 1.0
Model idgrok-imagine-video-1-5-previewgrok-imagine/image-to-video
InputStart image required (image-to-video only)Text-to-video or image-to-video
Durations1 to 15 seconds6 to 30 seconds
Resolutions480p, 720p, 1080p480p, 720p, 1080p
Aspect ratiosauto, 1:1, 16:9, 9:16, 3:2, 2:31:1, 16:9, 9:16, 3:2, 2:3
15 s at 480p / 720p / 1080p36 / 68 / 120 credits36 / 68 / 120 credits
NotesStrong motion quality; can be busy at peak timesOnly Grok option for clips longer than 15 seconds

Pick 1.5 when you have a start image you care about, such as a product shot, a character design or a photo, and want the best motion from it. The auto aspect ratio is handy here, because the output can follow the shape of your source image.

Pick 1.0 when you want to start from text alone, or when 15 seconds is a floor rather than a ceiling. It is the only one of the two that can render, say, 20 seconds in a single job.

If you need a start frame for 1.5, generate one first. Grok Imagine (the image model) returns 6 variations per text prompt (2 when reference images are attached) at a listed price of 4 credits. That keeps the style consistent with the video model. Nano Banana 2 Lite is another 4-credit option that accepts up to 10 reference images, which helps when the frame must match existing assets. GPT Image 1.5 is the better choice when the frame contains legible text, like a sign or a label.

How much does a Grok Imagine 15 seconds video cost?

Both video models charge per second, and the rate depends on resolution: 2.4 credits per second at 480p, 4.5 at 720p and 8 at 1080p. For a full 15-second clip, that works out as follows. Totals are rounded up to whole credits per output.

ResolutionCredits (15 s)On a monthly plan ($0.01/credit)As top-up ($0.015/credit)
480p36$0.36$0.54
720p68 (67.5 rounded up)$0.68$1.02
1080p120$1.20$1.80

Monthly plans give credits at $0.01 each: Starter $25, Creator $50, Studio $100, Pro $200. Top-ups cost $0.015 per credit and never expire. Full details are on the pricing page.

The upscale route

Grok Imagine Upscale takes a finished Grok video and raises its resolution: 10 credits to 720p, 20 credits to 1080p. That opens up a cheaper path to a 1080p file:

  • Native 1080p, 15 seconds: 120 credits.
  • 720p render plus upscale to 1080p: 68 + 20 = 88 credits.
  • 480p render plus upscale to 1080p: 36 + 20 = 56 credits.

An upscaler cannot recover detail the original render never had, so a native 1080p clip may hold fine textures better. Test both routes on your own footage before committing a batch.

A worked budget

Say you are making a 15-second product teaser and expect to iterate. Ten draft runs at 480p cost 360 credits. One final at native 1080p costs 120 credits. Add a few start-frame generations at 4 credits each, and the project lands under 500 credits, about $5 on a monthly plan. The Starter plan’s 2,500 credits would cover about 69 Grok Imagine 15 seconds clips at 480p, or 20 at native 1080p.

The exact price of any request is available before you run it through POST /v1/models/price, so you never have to guess.

How to make a 15-second Grok Imagine video with the API

Here is the full flow: create a key, check the price, submit the job, poll until it finishes, and optionally upscale. Media jobs on Unicorn API are asynchronous. You POST /v1/jobs, get a job back, then poll GET /v1/jobs/{id} until status is "succeeded", and read the video URL from outputs[0].url.

1. Get a key

Create one on the API keys page and export it:

export UNICORN_API_KEY="your-key-here"

2. Check the price

Send the same body you plan to run to the price endpoint:

curl -X POST https://api.unicornapi.net/v1/models/price \
  -H "Authorization: Bearer $UNICORN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "grok-imagine-video-1-5-preview",
    "input": {
      "image": "https://example.com/lighthouse.png",
      "prompt": "Slow push-in on a lighthouse at dusk, waves breaking below, the beam switches on and sweeps the water",
      "duration": 15,
      "resolution": "720p",
      "aspect_ratio": "16:9"
    }
  }'

3. Generate the start frame, render the video, then upscale

This Python script runs the whole pipeline. It makes a start frame with Grok Imagine, animates it for the full 15 seconds with Video 1.5, then upscales the result to 1080p.

import os
import time
import requests

API = "https://api.unicornapi.net"
HEADERS = {"Authorization": f"Bearer {os.environ['UNICORN_API_KEY']}"}


def run_job(body, poll_seconds=5, timeout_seconds=900):
    """Submit a media job and wait until it succeeds."""
    resp = requests.post(f"{API}/v1/jobs", json=body, headers=HEADERS)
    resp.raise_for_status()
    job = resp.json()
    deadline = time.time() + timeout_seconds
    while job["status"] != "succeeded":
        if job["status"] == "failed":
            raise RuntimeError(f"Job failed: {job}")
        if time.time() > deadline:
            raise TimeoutError(f"Job {job['id']} still {job['status']}")
        time.sleep(poll_seconds)
        resp = requests.get(f"{API}/v1/jobs/{job['id']}", headers=HEADERS)
        resp.raise_for_status()
        job = resp.json()
    return job


# 1. Start frame from Grok Imagine (returns several variations; we take the first)
frame_job = run_job({
    "model": "grok-imagine",
    "input": {
        "prompt": "A white lighthouse on dark rocks at dusk, calm sea, cinematic wide shot",
        "aspect_ratio": "16:9",
    },
})
start_frame_url = frame_job["outputs"][0]["url"]
print("Start frame:", start_frame_url)

# 2. Animate it for the full 15 seconds at 720p
video_job = run_job({
    "model": "grok-imagine-video-1-5-preview",
    "input": {
        "image": start_frame_url,
        "prompt": (
            "Slow push-in on the lighthouse. Waves build and break against the rocks. "
            "The beam switches on and sweeps across the water as the camera comes to rest."
        ),
        "duration": 15,
        "resolution": "720p",
        "aspect_ratio": "16:9",
    },
})
print("15-second video:", video_job["outputs"][0]["url"])

# 3. Optional: upscale the finished video to 1080p (20 credits)
upscale_job = run_job({
    "model": "grok-imagine-upscale",
    "input": {
        "task_id": video_job["id"],
        "resolution": "1080p",
    },
})
print("Upscaled video:", upscale_job["outputs"][0]["url"])

Total cost for this run: 4 credits for the frame, 68 for the 15-second 720p clip, and 20 for the upscale. Check the API documentation for the exact format the task_id field expects and the image formats the image field accepts.

A few notes on the script:

  • Video 1.5 can be busy at peak times, so the generous timeout is deliberate. For batch work, submit several jobs first and poll them together, rather than waiting on each one in turn.
  • To start from text alone, switch the model to grok-imagine/image-to-video and drop the image field. Keep duration at 15 or higher, since 1.0 starts at 6 seconds.
  • If you work inside Cursor or Claude Code, you can call the same models from your agent through MCP. See the agents page.

Prefer clicking to coding? Test start frames in the browser playground first, then move the winning prompt into the script.

How to go past 15 seconds

The Grok Imagine 15 seconds ceiling only applies to Video 1.5. If you need more, you have three routes.

Render longer with Video 1.0

Grok Imagine Video 1.0 renders up to 30 seconds in one job, at the same per-second rate. A 30-second clip costs 72 credits at 480p, 135 at 720p and 240 at 1080p. This is the simplest route, and continuity is guaranteed because it is one generation.

Chain 1.5 clips

Render a 15-second clip, extract its final frame with a tool such as ffmpeg, and use that frame as the start image for the next 15-second job. Join the clips in an editor. You keep 1.5’s motion quality, but each hand-off risks a visible jump in lighting or motion. Write the second prompt so it continues the first one’s camera move rather than starting a new one.

Use Extend in the Grok app

The consumer app’s Extend feature continues a clip from a point you choose. It has its own total-length limit, and that limit has changed over time. It works for one-offs but is hard to automate.

For a broader look at video models beyond Grok, including how per-second pricing compares across the catalog, see the AI video generator API guide and the image to video AI tool overview. The full list is in the model catalog.

Common mistakes with 15-second Grok Imagine videos

  • Putting the length in the prompt. Covered above, but it is the most common mistake by far. Set duration and leave the prompt for content.
  • Sending text-only requests to Video 1.5. It is image-to-video only. Without a start image you will not get the clip you expect. Use 1.0 for text-to-video.
  • Drafting at 1080p. Each 1080p Grok Imagine 15 seconds draft costs 120 credits against 36 at 480p, more than 3x as much. Find the prompt at low resolution, then render or upscale the final.
  • One-beat prompts for long clips. A single action stretched across 15 seconds often stalls or loops. Write an opening, a middle and an ending.
  • Mismatched aspect ratios. A square start frame rendered as 9:16 forces the model to invent the missing edges. Generate the frame in the target ratio, or use auto on 1.5.
  • Treating app features as model features. Things like spicy mode, Extend and app-side free quotas belong to the consumer app. They are separate from how the models handle duration. If you came from a “grok imagine no longer free” search, the API route is simply pay-per-clip at a price you can check first.
  • Not polling long enough. A 15-second render takes longer than a 5-second one, and peak-time queues add more. Build in a real timeout instead of giving up after a few polls.

Get these right and a Grok Imagine 15 seconds clip becomes a predictable, budgetable building block: a known price, a known length, and a prompt written to fill every second of it.

Frequently asked questions

Can Grok Imagine make 15-second videos?

Yes. Grok Imagine Video 1.5 renders single clips of 1 to 15 seconds from a start image, and Grok Imagine Video 1.0 renders 6 to 30 seconds from text or an image. On both, length comes from the duration setting. Set duration to 15 and the model renders 15 seconds. Writing a length into the prompt text does not control it.

Why does asking for 15 seconds in my prompt not work?

The prompt describes what happens in the video. It does not set how long the video is. Clip length is a separate parameter, fixed before generation starts, so the model ignores phrases like 'a sequence lasting 15 seconds'. In an app with a fixed default length you will keep getting that default. Through an API you set duration to 15 directly.

How much does a 15-second Grok Imagine video cost?

On Unicorn API, a 15-second clip from Grok Imagine Video 1.5 or 1.0 costs 36 credits at 480p, 68 credits at 720p (67.5 rounded up) and 120 credits at 1080p. On a monthly plan, where credits cost $0.01 each, that is $0.36, $0.68 and $1.20. Top-up credits cost $0.015 each and never expire.

Is Grok Imagine free?

Access to the consumer Grok app has changed during 2026, and many people searching 'grok imagine no longer free' are reacting to that. Through Unicorn API you pay per clip in credits, with no separate xAI account. The exact price of any request is available before you run it, so a 15-second test at 480p costs a known 36 credits.

How do I make a Grok Imagine video longer than 15 seconds?

You have three options. Use Grok Imagine Video 1.0, which renders up to 30 seconds in one job. Chain 1.5 clips by using the last frame of one clip as the start image of the next, then join them in an editor. Or use the Extend feature in the Grok app, which has its own limits.

Should I render at 1080p or upscale afterwards?

Test both on your own footage. A native 1080p, 15-second clip costs 120 credits. Rendering at 480p (36 credits) or 720p (68 credits) and running Grok Imagine Upscale to 1080p (20 credits) costs 56 or 88 credits in total. Upscaling is cheaper, but native renders can hold fine detail better, so compare before you commit a whole batch.