rreAPI Docs
rreAPI Docs
HomeWelcome

Image

nano-banana-2-litemidjourney-v8flux-2z-imageqwen-image-2midjourney-v7wan-2-7-imagegpt-image-2gpt-image-2-officialgemini-2.5-flash-image-previewgemini-3-pro-image-previewgemini-3.1-flash-image-previewdoubao-seedream-5-0-liteimagen-4-0

Audio

Mureka V9 Song APIVocal Remover APIMusic Extractor APIVoice Cleaner APIMultistem Splitter APIVoice Changer API

Video

topaz-video-upscalerkling-3-0-turbokling-3-0music-video-1-0wan-2-7-videokling-motion-controlpixverse-v6Seedance 2.5doubao-seedance-2.0doubao-seedance-2.0-officialseedance-2-0-minihappyhorse-1-1happyhorse-1.0happyhorse-1.0-officialviduq3grok-imagine-video-1.5-betagrok-imagine-video-1.5-officialgrok-imagine-1.0-videoVeo 3.1gemini-omni

Chat

claude-fable-5minimax-m3deepseek-v4gpt-5.5gpt-5.4claude-opus-4-8claude-opus-4-7claude-sonnet-4-6

Text

ai-essay-writerhumanizeai-text-detector

Tools

enhance-video-1.0
X (Twitter)

grok-imagine-video-1.5-official

Grok Imagine Video 1.5 Official Channel — image-to-video with native audio at a lower per-second rate. Required prompt, one reference image, 480p / 720p, 3 to 15 second clips.

Grok Imagine Video 1.5 Official Channel — async image-to-video with native synchronized audio, distinct from the grok-imagine-video-1.5-beta channel. Same one-reference-image workflow at a lower per-second rate, with a slightly stricter input contract: the prompt is required and clips run 3 to 15 seconds. Model id grok-imagine-video-1.5-official. See current pricing on the model page.

Channel differences at a glance. Compared to the beta channel this surface requires a prompt, narrows aspect_ratio to 1:1 / 16:9 / 9:16 (no auto), starts at 3-second clips, adds an audio toggle, and has no nsfw_checker parameter. The two channels bill independently — each has its own per-second rate.

Quick example

curl https://reapi.ai/api/v1/videos/generations \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "grok-imagine-video-1.5-official",
    "prompt": "Gentle cinematic push-in, golden-hour light, subtle motion",
    "image_urls": ["https://your-cdn.com/source.jpg"],
    "aspect_ratio": "16:9",
    "resolution": "720p",
    "duration": 8
  }'
import requests

resp = requests.post(
    "https://reapi.ai/api/v1/videos/generations",
    headers={
        "Authorization": "Bearer YOUR_API_KEY",
        "Content-Type": "application/json",
    },
    json={
        "model": "grok-imagine-video-1.5-official",
        "prompt": "Gentle cinematic push-in, golden-hour light, subtle motion",
        "image_urls": ["https://your-cdn.com/source.jpg"],
        "aspect_ratio": "16:9",
        "resolution": "720p",
        "duration": 8,
    },
    timeout=30,
)
print(resp.json())
const r = await fetch("https://reapi.ai/api/v1/videos/generations", {
  method: "POST",
  headers: {
    Authorization: "Bearer YOUR_API_KEY",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    model: "grok-imagine-video-1.5-official",
    prompt: "Gentle cinematic push-in, golden-hour light, subtle motion",
    image_urls: ["https://your-cdn.com/source.jpg"],
    aspect_ratio: "16:9",
    resolution: "720p",
    duration: 8,
  }),
});
console.log(await r.json());
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "io"
    "net/http"
)

func main() {
    body, _ := json.Marshal(map[string]any{
        "model":        "grok-imagine-video-1.5-official",
        "prompt":       "Gentle cinematic push-in, golden-hour light, subtle motion",
        "image_urls":   []string{"https://your-cdn.com/source.jpg"},
        "aspect_ratio": "16:9",
        "resolution":   "720p",
        "duration":     8,
    })
    req, _ := http.NewRequest("POST",
        "https://reapi.ai/api/v1/videos/generations", bytes.NewReader(body))
    req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, _ := http.DefaultClient.Do(req)
    defer resp.Body.Close()
    out, _ := io.ReadAll(resp.Body)
    fmt.Println(string(out))
}

Submit response

{
  "id": "task_018f5a3a1b6e7d9f8c2b4d6e8f0a2c4e",
  "model": "grok-imagine-video-1.5-official",
  "status": "processing",
  "created_at": 1735000000
}

Poll GET /api/v1/tasks/{id} (see the Tasks reference) until status === "completed". The completed payload's output.video_urls holds the generated MP4 URL (with audio), valid for 7 days.


Authentication

Every call needs a Bearer token. Generate keys at reapi.ai/settings/apikeys.

Authorization: Bearer YOUR_API_KEY

Keys carry the active workspace's billing scope — there is no separate project header.


Endpoint

POST /api/v1/videos/generations
GET  /api/v1/tasks/{id}

Submission is async. The POST returns immediately with a task_id; the task endpoint returns the same envelope until completion. Polling does not consume credits.

This is an image-to-video model — exactly one reference image is required on every request. There is no text-to-video mode, no last-frame or reference image input, and no mode parameter.


Request body

model — required

string. Must be "grok-imagine-video-1.5-official".

prompt — string, required

Describes the motion, camera, atmosphere, and any dialogue or sound you want in the generated audio. Required on this channel (the beta channel accepts image-only requests; this one does not).

image_urls — string[], required

Array with exactly one public HTTP(S) image URL — the first frame the model animates. Accepted source formats: JPEG, PNG, WebP.

No data: URIs. reAPI rejects base64 inputs platform-wide — the image URL must be a public HTTP(S) link. Upload to your own object storage (S3, R2, OSS, …) and pass the URL. More than one entry is rejected.

aspect_ratio — string, default "16:9"

Output framing. auto is not available on this channel. Output pixel size follows the ratio × resolution matrix:

Value480p720p
1:1544×544960×960
16:9736×4001280×720
9:16400×736720×1280

resolution — string, default "480p"

480p or 720p. 720p costs 2× per second — see Pricing.

duration — integer, default 8

Output length in seconds. Any integer in [3, 15] — note the 3-second minimum (the beta channel starts at 1). Out-of-range → 400. Drives pricing linearly.

Send a number, not a string. "duration": "8" is rejected with 400.

audio — boolean, default true

Whether the generated clip carries a native synchronized audio track. Set false for a silent video at the same per-second rate.

Each request produces exactly one video. For multiple takes, submit concurrent requests — each bills and refunds independently.


Response envelope

Submit and poll share the same shape — only status and output fill in over time.

{
  "id": "task_018f5a3a1b6e7d9f8c2b4d6e8f0a2c4e",
  "model": "grok-imagine-video-1.5-official",
  "status": "completed",
  "created_at": 1735000000,
  "output": {
    "video_urls": ["https://cdn.reapi.ai/media/tasks/018f5a3a1b6e7d9f8c2b4d6e8f0a2c4e/0.mp4"]
  },
  "error": null
}
FieldTypeNotes
idstringTask identifier — keep it for polling and audit
modelstringEcho of the submitted model
statusstringprocessing / completed / failed
created_atintegerSubmission unix timestamp
outputobject | nullnull until completion. output.video_urls holds MP4s
errorobject | nullPopulated on failed — { code, message }

output.video_urls URLs are valid for 7 days — re-host to your own storage if you need them longer.


Validation errors

Pattern-match on code, not message — message strings carry request-specific context (field names, observed values) and are not a stable contract.

TriggerCodeMessage (illustrative)
prompt missing or empty20002prompt is required
image_urls missing20002image_urls is required
image_urls with more than one entry20003image_urls allows at most 1 entry
duration outside [3, 15]20003duration must be 3-15 seconds
Unknown resolution20003invalid resolution (allowed: 480p / 720p)
aspect_ratio outside 1:1 / 16:9 / 9:1620003invalid aspect_ratio
image_urls carrying a data: URI or non-http(s)20003image_urls entries must be public http(s) URLs

The full envelope is { "error": { "code", "message", "request_id" } } — see the Errors catalog for the wire format and request_id correlation tips.


Recipes

Minimum request

{
  "model": "grok-imagine-video-1.5-official",
  "prompt": "Slow push-in with ambient room tone",
  "image_urls": ["https://your-cdn.com/source.jpg"]
}

Directed motion + HD

{
  "model": "grok-imagine-video-1.5-official",
  "prompt": "Slow dolly forward, wind moving the hair, warm cinematic light",
  "image_urls": ["https://your-cdn.com/portrait.jpg"],
  "resolution": "720p",
  "duration": 10
}

Vertical social clip, no audio

{
  "model": "grok-imagine-video-1.5-official",
  "prompt": "Energetic motion, quick handheld feel",
  "image_urls": ["https://your-cdn.com/poster.jpg"],
  "aspect_ratio": "9:16",
  "resolution": "720p",
  "duration": 6,
  "audio": false
}

Polling pattern

The task endpoint behaves identically to other video tasks. A pragmatic schedule:

0–5 minutes:    poll every 5s
5 min – 1 h:    back off gradually toward 1 min
≥ 1 h:          cap at 3 min between polls

A typical task completes in about a minute. The worker's wall-clock cap is 48 hours, comfortably above any realistic queue.


Pricing

Per-second rate by resolution — 720p costs 2× the 480p rate. This channel is priced independently of (and lower than) the beta channel. See current rates on the Grok Imagine Video 1.5 model page.

Bill formula (1 credit = $0.001):

credits = ceil(per_second_usd × duration × 1000)

Failed jobs refund automatically.


Tips

  • Write the prompt like a shot direction. It is required here — lean into it: camera move, subject motion, atmosphere, and the sound you want.
  • One clear subject image works best. A centered, well-lit reference with clean composition tracks identity and motion far better than a busy frame.
  • Sweet-spot duration: 5–10 seconds. Longer clips raise wall-time without changing the per-second rate.
  • Pick 720p for hero shots, 480p to save. The 720p rate is exactly 2× the 480p rate on this channel.

Related

  • grok-imagine-video-1.5-beta
  • grok-imagine-1.0-video
  • Errors catalog
  • Authentication
  • Quickstart

Table of Contents

Quick example
Submit response
Authentication
Endpoint
Request body
model — required
prompt — string, required
image_urls — string[], required
aspect_ratio — string, default "16:9"
resolution — string, default "480p"
duration — integer, default 8
audio — boolean, default true
Response envelope
Validation errors
Recipes
Minimum request
Directed motion + HD
Vertical social clip, no audio
Polling pattern
Pricing
Tips
Related