curl --request POST \
--url https://aireiter.com/api/openapi/submit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "grok_imagine_1_5",
"params": {
"image_url": "https://example.com/reference.jpg",
"prompt": "Animate this image",
"resolution": "480p",
"video_length": 5,
"aspect_ratio": "auto"
},
"out_task_id": "my_task_123456"
}'
import requests
url = "https://aireiter.com/api/openapi/submit"
payload = {
"model": "grok_imagine_1_5",
"params": {
"image_url": "https://example.com/reference.jpg",
"prompt": "Animate this image",
"resolution": "480p",
"video_length": 5,
"aspect_ratio": "auto"
},
"out_task_id": "my_task_123456"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
const url = "https://aireiter.com/api/openapi/submit";
const payload = {
model: "grok_imagine_1_5",
params: {
image_url: "https://example.com/reference.jpg",
prompt: "Animate this image",
resolution: "480p",
video_length: 5,
aspect_ratio: "auto"
},
out_task_id: "my_task_123456"
};
const headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
};
fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(payload)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
package main
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
func main() {
url := "https://aireiter.com/api/openapi/submit"
payload := map[string]interface{}{
"model": "grok_imagine_1_5",
"params": map[string]interface{}{
"image_url": "https://example.com/reference.jpg",
"prompt": "Animate this image",
"resolution": "480p",
"video_length": 5,
"aspect_ratio": "auto",
},
"out_task_id": "my_task_123456",
}
jsonData, _ := json.Marshal(payload)
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
req.Header.Set("Authorization", "Bearer <token>")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println(string(body))
}
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
public class Main {
public static void main(String[] args) {
try {
URL url = new URL("https://aireiter.com/api/openapi/submit");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("Authorization", "Bearer <token>");
conn.setRequestProperty("Content-Type", "application/json");
conn.setDoOutput(true);
String jsonPayload = "{\"model\":\"grok_imagine_1_5\",\"params\":{\"image_url\":\"https://example.com/reference.jpg\",\"prompt\":\"Animate this image\",\"resolution\":\"480p\",\"video_length\":5,\"aspect_ratio\":\"auto\"},\"out_task_id\":\"my_task_123456\"}";
OutputStream os = conn.getOutputStream();
os.write(jsonPayload.getBytes());
os.flush();
os.close();
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
StringBuilder response = new StringBuilder();
while ((line = br.readLine()) != null) {
response.append(line);
}
br.close();
System.out.println(response.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
}
<?php
$url = "https://aireiter.com/api/openapi/submit";
$payload = array(
"model" => "grok_imagine_1_5",
"params" => array(
"image_url" => "https://example.com/reference.jpg",
"prompt" => "Animate this image",
"resolution" => "480p",
"video_length" => 5,
"aspect_ratio" => "auto"
),
"out_task_id" => "my_task_123456"
);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"Authorization: Bearer <token>",
"Content-Type: application/json"
));
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
require 'net/http'
require 'json'
require 'uri'
url = URI.parse("https://aireiter.com/api/openapi/submit")
payload = {
model: "grok_imagine_1_5",
params: {
image_url: "https://example.com/reference.jpg",
prompt: "Animate this image",
resolution: "480p",
video_length: 5,
aspect_ratio: "auto"
},
out_task_id: "my_task_123456"
}
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url.path)
request["Authorization"] = "Bearer <token>"
request["Content-Type"] = "application/json"
request.body = payload.to_json
response = http.request(request)
puts response.body
import Foundation
let url = URL(string: "https://aireiter.com/api/openapi/submit")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("Bearer <token>", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
let payload: [String: Any] = [
"model": "grok_imagine_1_5",
"params": [
"image_url": "https://example.com/reference.jpg",
"prompt": "Animate this image",
"resolution": "480p",
"video_length": 5,
"aspect_ratio": "auto"
],
"out_task_id": "my_task_123456"
]
request.httpBody = try? JSONSerialization.data(withJSONObject: payload)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data {
print(String(data: data, encoding: .utf8) ?? "")
}
}
task.resume()
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
var url = "https://aireiter.com/api/openapi/submit";
var payload = "{\"model\":\"grok_imagine_1_5\",\"params\":{\"image_url\":\"https://example.com/reference.jpg\",\"prompt\":\"Animate this image\",\"resolution\":\"480p\",\"video_length\":5,\"aspect_ratio\":\"auto\"},\"out_task_id\":\"my_task_123456\"}";
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Add("Authorization", "Bearer <token>");
var content = new StringContent(payload, Encoding.UTF8, "application/json");
var response = await client.PostAsync(url, content);
var result = await response.Content.ReadAsStringAsync();
Console.WriteLine(result);
}
}
}
#include <stdio.h>
#include <curl/curl.h>
int main(void)
{
CURL *curl;
CURLcode res;
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, "https://aireiter.com/api/openapi/submit");
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer <token>");
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
const char *data = "{\"model\":\"grok_imagine_1_5\",\"params\":{\"image_url\":\"https://example.com/reference.jpg\",\"prompt\":\"Animate this image\",\"resolution\":\"480p\",\"video_length\":5,\"aspect_ratio\":\"auto\"},\"out_task_id\":\"my_task_123456\"}";
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data);
res = curl_easy_perform(curl);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSURL *url = [NSURL URLWithString:@"https://aireiter.com/api/openapi/submit"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:@"Bearer <token>" forHTTPHeaderField:@"Authorization"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
NSDictionary *payload = @{
@"model": @"grok_imagine_1_5",
@"params": @{
@"image_url": @"https://example.com/reference.jpg",
@"prompt": @"Animate this image",
@"resolution": @"480p",
@"video_length": @5,
@"aspect_ratio": @"auto"
},
@"out_task_id": @"my_task_123456"
};
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:payload options:0 error:nil];
[request setHTTPBody:jsonData];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
if (data) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}
}];
[task resume];
[[NSRunLoop currentRunLoop] run];
}
return 0;
}
open Lwt
open Cohttp
open Cohttp_lwt_unix
let url = "https://aireiter.com/api/openapi/submit"
let payload = {|{"model":"grok_imagine_1_5","params":{"image_url":"https://example.com/reference.jpg","prompt":"Animate this image","resolution":"480p","video_length":5,"aspect_ratio":"auto"},"out_task_id":"my_task_123456"}|}
let () =
let headers = Header.init ()
|> fun h -> Header.add h "Authorization" "Bearer <token>"
|> fun h -> Header.add h "Content-Type" "application/json" in
let body = Cohttp_lwt.Body.of_string payload in
let response = Client.post ~headers ~body (Uri.of_string url) >>= fun (resp, body) ->
body |> Cohttp_lwt.Body.to_string >|= fun body ->
print_endline body
in
Lwt_main.run response
import 'dart:convert';
import 'package:http/http.dart' as http;
void main() async {
var url = Uri.parse('https://aireiter.com/api/openapi/submit');
var payload = {
'model': 'grok_imagine_1_5',
'params': {
'image_url': 'https://example.com/reference.jpg',
'prompt': 'Animate this image',
'resolution': '480p',
'video_length': 5,
'aspect_ratio': 'auto'
},
'out_task_id': 'my_task_123456'
};
var response = await http.post(
url,
headers: {
'Authorization': 'Bearer <token>',
'Content-Type': 'application/json',
},
body: jsonEncode(payload),
);
print(response.body);
}
library(httr)
library(jsonlite)
url <- "https://aireiter.com/api/openapi/submit"
payload <- list(
model = "grok_imagine_1_5",
params = list(
image_url = "https://example.com/reference.jpg",
prompt = "Animate this image",
resolution = "480p",
video_length = 5,
aspect_ratio = "auto"
),
out_task_id = "my_task_123456"
)
response <- POST(
url,
add_headers(
Authorization = "Bearer <token>",
`Content-Type` = "application/json"
),
body = toJSON(payload, auto_unbox = TRUE),
encode = "json"
)
cat(content(response, "text"))
{
"statusCode": 200,
"message": "",
"data": {
"out_task_id": "my_task_123456",
"status": "pending",
"estimated_credits": 90,
"created_at": "2026-06-25T06:03:28.242Z"
}
}
{
"statusCode": 400,
"message": "Invalid request parameters",
"ok": false
}
{
"error": {
"code": 401,
"message": "Authentication failed, please check your API key"
}
}
{
"error": {
"code": 433,
"message": "Insufficient account balance, please recharge and try again"
}
}
{
"error": {
"code": 500,
"message": "Internal server error, please try again later"
}
}
Grok Imagine 1.5
Grok Imagine 1.5 Video Generation
- Asynchronous processing mode, returns a task ID for subsequent queries
- Image-to-video: a reference image must be provided
- xAI Grok Imagine 1.5 Preview, supports 480p / 720p, 1-15 seconds
POST
/
api
/
openapi
/
submit
curl --request POST \
--url https://aireiter.com/api/openapi/submit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "grok_imagine_1_5",
"params": {
"image_url": "https://example.com/reference.jpg",
"prompt": "Animate this image",
"resolution": "480p",
"video_length": 5,
"aspect_ratio": "auto"
},
"out_task_id": "my_task_123456"
}'
import requests
url = "https://aireiter.com/api/openapi/submit"
payload = {
"model": "grok_imagine_1_5",
"params": {
"image_url": "https://example.com/reference.jpg",
"prompt": "Animate this image",
"resolution": "480p",
"video_length": 5,
"aspect_ratio": "auto"
},
"out_task_id": "my_task_123456"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
const url = "https://aireiter.com/api/openapi/submit";
const payload = {
model: "grok_imagine_1_5",
params: {
image_url: "https://example.com/reference.jpg",
prompt: "Animate this image",
resolution: "480p",
video_length: 5,
aspect_ratio: "auto"
},
out_task_id: "my_task_123456"
};
const headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
};
fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(payload)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
package main
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
func main() {
url := "https://aireiter.com/api/openapi/submit"
payload := map[string]interface{}{
"model": "grok_imagine_1_5",
"params": map[string]interface{}{
"image_url": "https://example.com/reference.jpg",
"prompt": "Animate this image",
"resolution": "480p",
"video_length": 5,
"aspect_ratio": "auto",
},
"out_task_id": "my_task_123456",
}
jsonData, _ := json.Marshal(payload)
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
req.Header.Set("Authorization", "Bearer <token>")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println(string(body))
}
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
public class Main {
public static void main(String[] args) {
try {
URL url = new URL("https://aireiter.com/api/openapi/submit");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("Authorization", "Bearer <token>");
conn.setRequestProperty("Content-Type", "application/json");
conn.setDoOutput(true);
String jsonPayload = "{\"model\":\"grok_imagine_1_5\",\"params\":{\"image_url\":\"https://example.com/reference.jpg\",\"prompt\":\"Animate this image\",\"resolution\":\"480p\",\"video_length\":5,\"aspect_ratio\":\"auto\"},\"out_task_id\":\"my_task_123456\"}";
OutputStream os = conn.getOutputStream();
os.write(jsonPayload.getBytes());
os.flush();
os.close();
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
StringBuilder response = new StringBuilder();
while ((line = br.readLine()) != null) {
response.append(line);
}
br.close();
System.out.println(response.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
}
<?php
$url = "https://aireiter.com/api/openapi/submit";
$payload = array(
"model" => "grok_imagine_1_5",
"params" => array(
"image_url" => "https://example.com/reference.jpg",
"prompt" => "Animate this image",
"resolution" => "480p",
"video_length" => 5,
"aspect_ratio" => "auto"
),
"out_task_id" => "my_task_123456"
);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"Authorization: Bearer <token>",
"Content-Type: application/json"
));
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
require 'net/http'
require 'json'
require 'uri'
url = URI.parse("https://aireiter.com/api/openapi/submit")
payload = {
model: "grok_imagine_1_5",
params: {
image_url: "https://example.com/reference.jpg",
prompt: "Animate this image",
resolution: "480p",
video_length: 5,
aspect_ratio: "auto"
},
out_task_id: "my_task_123456"
}
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url.path)
request["Authorization"] = "Bearer <token>"
request["Content-Type"] = "application/json"
request.body = payload.to_json
response = http.request(request)
puts response.body
import Foundation
let url = URL(string: "https://aireiter.com/api/openapi/submit")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("Bearer <token>", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
let payload: [String: Any] = [
"model": "grok_imagine_1_5",
"params": [
"image_url": "https://example.com/reference.jpg",
"prompt": "Animate this image",
"resolution": "480p",
"video_length": 5,
"aspect_ratio": "auto"
],
"out_task_id": "my_task_123456"
]
request.httpBody = try? JSONSerialization.data(withJSONObject: payload)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data {
print(String(data: data, encoding: .utf8) ?? "")
}
}
task.resume()
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
var url = "https://aireiter.com/api/openapi/submit";
var payload = "{\"model\":\"grok_imagine_1_5\",\"params\":{\"image_url\":\"https://example.com/reference.jpg\",\"prompt\":\"Animate this image\",\"resolution\":\"480p\",\"video_length\":5,\"aspect_ratio\":\"auto\"},\"out_task_id\":\"my_task_123456\"}";
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Add("Authorization", "Bearer <token>");
var content = new StringContent(payload, Encoding.UTF8, "application/json");
var response = await client.PostAsync(url, content);
var result = await response.Content.ReadAsStringAsync();
Console.WriteLine(result);
}
}
}
#include <stdio.h>
#include <curl/curl.h>
int main(void)
{
CURL *curl;
CURLcode res;
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, "https://aireiter.com/api/openapi/submit");
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer <token>");
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
const char *data = "{\"model\":\"grok_imagine_1_5\",\"params\":{\"image_url\":\"https://example.com/reference.jpg\",\"prompt\":\"Animate this image\",\"resolution\":\"480p\",\"video_length\":5,\"aspect_ratio\":\"auto\"},\"out_task_id\":\"my_task_123456\"}";
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data);
res = curl_easy_perform(curl);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSURL *url = [NSURL URLWithString:@"https://aireiter.com/api/openapi/submit"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:@"Bearer <token>" forHTTPHeaderField:@"Authorization"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
NSDictionary *payload = @{
@"model": @"grok_imagine_1_5",
@"params": @{
@"image_url": @"https://example.com/reference.jpg",
@"prompt": @"Animate this image",
@"resolution": @"480p",
@"video_length": @5,
@"aspect_ratio": @"auto"
},
@"out_task_id": @"my_task_123456"
};
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:payload options:0 error:nil];
[request setHTTPBody:jsonData];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
if (data) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}
}];
[task resume];
[[NSRunLoop currentRunLoop] run];
}
return 0;
}
open Lwt
open Cohttp
open Cohttp_lwt_unix
let url = "https://aireiter.com/api/openapi/submit"
let payload = {|{"model":"grok_imagine_1_5","params":{"image_url":"https://example.com/reference.jpg","prompt":"Animate this image","resolution":"480p","video_length":5,"aspect_ratio":"auto"},"out_task_id":"my_task_123456"}|}
let () =
let headers = Header.init ()
|> fun h -> Header.add h "Authorization" "Bearer <token>"
|> fun h -> Header.add h "Content-Type" "application/json" in
let body = Cohttp_lwt.Body.of_string payload in
let response = Client.post ~headers ~body (Uri.of_string url) >>= fun (resp, body) ->
body |> Cohttp_lwt.Body.to_string >|= fun body ->
print_endline body
in
Lwt_main.run response
import 'dart:convert';
import 'package:http/http.dart' as http;
void main() async {
var url = Uri.parse('https://aireiter.com/api/openapi/submit');
var payload = {
'model': 'grok_imagine_1_5',
'params': {
'image_url': 'https://example.com/reference.jpg',
'prompt': 'Animate this image',
'resolution': '480p',
'video_length': 5,
'aspect_ratio': 'auto'
},
'out_task_id': 'my_task_123456'
};
var response = await http.post(
url,
headers: {
'Authorization': 'Bearer <token>',
'Content-Type': 'application/json',
},
body: jsonEncode(payload),
);
print(response.body);
}
library(httr)
library(jsonlite)
url <- "https://aireiter.com/api/openapi/submit"
payload <- list(
model = "grok_imagine_1_5",
params = list(
image_url = "https://example.com/reference.jpg",
prompt = "Animate this image",
resolution = "480p",
video_length = 5,
aspect_ratio = "auto"
),
out_task_id = "my_task_123456"
)
response <- POST(
url,
add_headers(
Authorization = "Bearer <token>",
`Content-Type` = "application/json"
),
body = toJSON(payload, auto_unbox = TRUE),
encode = "json"
)
cat(content(response, "text"))
{
"statusCode": 200,
"message": "",
"data": {
"out_task_id": "my_task_123456",
"status": "pending",
"estimated_credits": 90,
"created_at": "2026-06-25T06:03:28.242Z"
}
}
{
"statusCode": 400,
"message": "Invalid request parameters",
"ok": false
}
{
"error": {
"code": 401,
"message": "Authentication failed, please check your API key"
}
}
{
"error": {
"code": 433,
"message": "Insufficient account balance, please recharge and try again"
}
}
{
"error": {
"code": 500,
"message": "Internal server error, please try again later"
}
}
Authorizations
string
required
All endpoints require authentication using a Bearer Token.Obtain the API Key:Visit the API Key Management page to get your API Key.Include the following in the request header:
Authorization: Bearer YOUR_API_KEY
Body
string
required
Model Name:
"grok_imagine_1_5"- Default
object
required
Model Parameters Object
Show params Object Properties
Show params Object Properties
string
required
URL of the reference image, used for text-to-video generation
- Required, single image only
- Supports JPEG / PNG / WEBP, max 20MB per image
- Supports publicly accessible URLs
string
Text description for video generation
- Maximum 4096 characters
- Optional
string
default:"480p"
Video resolution
480p- Standard definition (default)720p- High definition
integer
default:"5"
Video length (seconds)
- Range: 1 to 15 (integer)
string
default:"auto"
Video aspect ratio
auto- Automatic (default, adapts to input image)1:1/16:9/9:16/4:3/3:4/3:2/2:3
string
required
Initiator Task IDUser-defined task identifier, required
Response
string
Initiator task ID, can be used to query the result
string
Initial status, fixed as
"pending"number
Estimated credit consumption
string
Creation time (ISO format)
curl --request POST \
--url https://aireiter.com/api/openapi/submit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "grok_imagine_1_5",
"params": {
"image_url": "https://example.com/reference.jpg",
"prompt": "Animate this image",
"resolution": "480p",
"video_length": 5,
"aspect_ratio": "auto"
},
"out_task_id": "my_task_123456"
}'
import requests
url = "https://aireiter.com/api/openapi/submit"
payload = {
"model": "grok_imagine_1_5",
"params": {
"image_url": "https://example.com/reference.jpg",
"prompt": "Animate this image",
"resolution": "480p",
"video_length": 5,
"aspect_ratio": "auto"
},
"out_task_id": "my_task_123456"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
const url = "https://aireiter.com/api/openapi/submit";
const payload = {
model: "grok_imagine_1_5",
params: {
image_url: "https://example.com/reference.jpg",
prompt: "Animate this image",
resolution: "480p",
video_length: 5,
aspect_ratio: "auto"
},
out_task_id: "my_task_123456"
};
const headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
};
fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(payload)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
package main
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
func main() {
url := "https://aireiter.com/api/openapi/submit"
payload := map[string]interface{}{
"model": "grok_imagine_1_5",
"params": map[string]interface{}{
"image_url": "https://example.com/reference.jpg",
"prompt": "Animate this image",
"resolution": "480p",
"video_length": 5,
"aspect_ratio": "auto",
},
"out_task_id": "my_task_123456",
}
jsonData, _ := json.Marshal(payload)
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
req.Header.Set("Authorization", "Bearer <token>")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println(string(body))
}
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
public class Main {
public static void main(String[] args) {
try {
URL url = new URL("https://aireiter.com/api/openapi/submit");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("Authorization", "Bearer <token>");
conn.setRequestProperty("Content-Type", "application/json");
conn.setDoOutput(true);
String jsonPayload = "{\"model\":\"grok_imagine_1_5\",\"params\":{\"image_url\":\"https://example.com/reference.jpg\",\"prompt\":\"Animate this image\",\"resolution\":\"480p\",\"video_length\":5,\"aspect_ratio\":\"auto\"},\"out_task_id\":\"my_task_123456\"}";
OutputStream os = conn.getOutputStream();
os.write(jsonPayload.getBytes());
os.flush();
os.close();
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
StringBuilder response = new StringBuilder();
while ((line = br.readLine()) != null) {
response.append(line);
}
br.close();
System.out.println(response.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
}
<?php
$url = "https://aireiter.com/api/openapi/submit";
$payload = array(
"model" => "grok_imagine_1_5",
"params" => array(
"image_url" => "https://example.com/reference.jpg",
"prompt" => "Animate this image",
"resolution" => "480p",
"video_length" => 5,
"aspect_ratio" => "auto"
),
"out_task_id" => "my_task_123456"
);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"Authorization: Bearer <token>",
"Content-Type: application/json"
));
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
require 'net/http'
require 'json'
require 'uri'
url = URI.parse("https://aireiter.com/api/openapi/submit")
payload = {
model: "grok_imagine_1_5",
params: {
image_url: "https://example.com/reference.jpg",
prompt: "Animate this image",
resolution: "480p",
video_length: 5,
aspect_ratio: "auto"
},
out_task_id: "my_task_123456"
}
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url.path)
request["Authorization"] = "Bearer <token>"
request["Content-Type"] = "application/json"
request.body = payload.to_json
response = http.request(request)
puts response.body
import Foundation
let url = URL(string: "https://aireiter.com/api/openapi/submit")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("Bearer <token>", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
let payload: [String: Any] = [
"model": "grok_imagine_1_5",
"params": [
"image_url": "https://example.com/reference.jpg",
"prompt": "Animate this image",
"resolution": "480p",
"video_length": 5,
"aspect_ratio": "auto"
],
"out_task_id": "my_task_123456"
]
request.httpBody = try? JSONSerialization.data(withJSONObject: payload)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data {
print(String(data: data, encoding: .utf8) ?? "")
}
}
task.resume()
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
var url = "https://aireiter.com/api/openapi/submit";
var payload = "{\"model\":\"grok_imagine_1_5\",\"params\":{\"image_url\":\"https://example.com/reference.jpg\",\"prompt\":\"Animate this image\",\"resolution\":\"480p\",\"video_length\":5,\"aspect_ratio\":\"auto\"},\"out_task_id\":\"my_task_123456\"}";
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Add("Authorization", "Bearer <token>");
var content = new StringContent(payload, Encoding.UTF8, "application/json");
var response = await client.PostAsync(url, content);
var result = await response.Content.ReadAsStringAsync();
Console.WriteLine(result);
}
}
}
#include <stdio.h>
#include <curl/curl.h>
int main(void)
{
CURL *curl;
CURLcode res;
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, "https://aireiter.com/api/openapi/submit");
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer <token>");
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
const char *data = "{\"model\":\"grok_imagine_1_5\",\"params\":{\"image_url\":\"https://example.com/reference.jpg\",\"prompt\":\"Animate this image\",\"resolution\":\"480p\",\"video_length\":5,\"aspect_ratio\":\"auto\"},\"out_task_id\":\"my_task_123456\"}";
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data);
res = curl_easy_perform(curl);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSURL *url = [NSURL URLWithString:@"https://aireiter.com/api/openapi/submit"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:@"Bearer <token>" forHTTPHeaderField:@"Authorization"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
NSDictionary *payload = @{
@"model": @"grok_imagine_1_5",
@"params": @{
@"image_url": @"https://example.com/reference.jpg",
@"prompt": @"Animate this image",
@"resolution": @"480p",
@"video_length": @5,
@"aspect_ratio": @"auto"
},
@"out_task_id": @"my_task_123456"
};
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:payload options:0 error:nil];
[request setHTTPBody:jsonData];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
if (data) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}
}];
[task resume];
[[NSRunLoop currentRunLoop] run];
}
return 0;
}
open Lwt
open Cohttp
open Cohttp_lwt_unix
let url = "https://aireiter.com/api/openapi/submit"
let payload = {|{"model":"grok_imagine_1_5","params":{"image_url":"https://example.com/reference.jpg","prompt":"Animate this image","resolution":"480p","video_length":5,"aspect_ratio":"auto"},"out_task_id":"my_task_123456"}|}
let () =
let headers = Header.init ()
|> fun h -> Header.add h "Authorization" "Bearer <token>"
|> fun h -> Header.add h "Content-Type" "application/json" in
let body = Cohttp_lwt.Body.of_string payload in
let response = Client.post ~headers ~body (Uri.of_string url) >>= fun (resp, body) ->
body |> Cohttp_lwt.Body.to_string >|= fun body ->
print_endline body
in
Lwt_main.run response
import 'dart:convert';
import 'package:http/http.dart' as http;
void main() async {
var url = Uri.parse('https://aireiter.com/api/openapi/submit');
var payload = {
'model': 'grok_imagine_1_5',
'params': {
'image_url': 'https://example.com/reference.jpg',
'prompt': 'Animate this image',
'resolution': '480p',
'video_length': 5,
'aspect_ratio': 'auto'
},
'out_task_id': 'my_task_123456'
};
var response = await http.post(
url,
headers: {
'Authorization': 'Bearer <token>',
'Content-Type': 'application/json',
},
body: jsonEncode(payload),
);
print(response.body);
}
library(httr)
library(jsonlite)
url <- "https://aireiter.com/api/openapi/submit"
payload <- list(
model = "grok_imagine_1_5",
params = list(
image_url = "https://example.com/reference.jpg",
prompt = "Animate this image",
resolution = "480p",
video_length = 5,
aspect_ratio = "auto"
),
out_task_id = "my_task_123456"
)
response <- POST(
url,
add_headers(
Authorization = "Bearer <token>",
`Content-Type` = "application/json"
),
body = toJSON(payload, auto_unbox = TRUE),
encode = "json"
)
cat(content(response, "text"))
{
"statusCode": 200,
"message": "",
"data": {
"out_task_id": "my_task_123456",
"status": "pending",
"estimated_credits": 90,
"created_at": "2026-06-25T06:03:28.242Z"
}
}
{
"statusCode": 400,
"message": "Invalid request parameters",
"ok": false
}
{
"error": {
"code": 401,
"message": "Authentication failed, please check your API key"
}
}
{
"error": {
"code": 433,
"message": "Insufficient account balance, please recharge and try again"
}
}
{
"error": {
"code": 500,
"message": "Internal server error, please try again later"
}
}