Query Task
curl --request GET \
--url https://www.token-nova.com/v1/video/query \
--header 'Authorization: Bearer <token>'import requests
url = "https://www.token-nova.com/v1/video/query"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://www.token-nova.com/v1/video/query', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://www.token-nova.com/v1/video/query",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://www.token-nova.com/v1/video/query"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://www.token-nova.com/v1/video/query")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://www.token-nova.com/v1/video/query")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "grok:05c8e247-7e64-472a-acb1-e7f2de5d0d04",
"status": "processing",
"video_url": null,
"status_update_time": 1762780400,
"progress": 50
}
{
"id": "grok:05c8e247-7e64-472a-acb1-e7f2de5d0d04",
"status": "completed",
"video_url": "https://example.com/output.mp4",
"status_update_time": 1762780536,
"progress": 100,
"prompt": "cat fish --mode=custom",
"ratio": "3:2",
"model": "grok-3",
"thumbnail_url": "https://example.com/thumb.webp"
}
Unified Video
Query Task
Use GET /v1/video/query to query Grok unified video task status and results.
GET
https://www.token-nova.com
/
v1
/
video
/
query
Query Task
curl --request GET \
--url https://www.token-nova.com/v1/video/query \
--header 'Authorization: Bearer <token>'import requests
url = "https://www.token-nova.com/v1/video/query"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://www.token-nova.com/v1/video/query', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://www.token-nova.com/v1/video/query",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://www.token-nova.com/v1/video/query"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://www.token-nova.com/v1/video/query")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://www.token-nova.com/v1/video/query")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "grok:05c8e247-7e64-472a-acb1-e7f2de5d0d04",
"status": "processing",
"video_url": null,
"status_update_time": 1762780400,
"progress": 50
}
{
"id": "grok:05c8e247-7e64-472a-acb1-e7f2de5d0d04",
"status": "completed",
"video_url": "https://example.com/output.mp4",
"status_update_time": 1762780536,
"progress": 100,
"prompt": "cat fish --mode=custom",
"ratio": "3:2",
"model": "grok-3",
"thumbnail_url": "https://example.com/thumb.webp"
}
Query Task
After a Grok unified video task is submitted, query its progress and results viaGET /v1/video/query. The query parameter uses id, whose value is the task ID returned by Create Video.
- The route entry point is
GET /v1/video/query. - The task ID is passed via the Query parameter
id, and its format is usuallygrok:.... - After completion,
video_urlwill include an accessible URL; while processing, it may benull.
Method and Path
GET /v1/video/query?id={task_id}
Request Example
curl "https://www.token-nova.com/v1/video/query?id=grok:48a67431-0708-46d1-9ab9-83cb84700153" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"
import requests
resp = requests.get(
"https://www.token-nova.com/v1/video/query",
params={"id": "grok:48a67431-0708-46d1-9ab9-83cb84700153"},
headers={
"Authorization": "Bearer YOUR_API_KEY",
"Accept": "application/json",
},
timeout=30,
)
print(resp.json())
const params = new URLSearchParams({
id: "grok:48a67431-0708-46d1-9ab9-83cb84700153",
});
const response = await fetch(
`https://www.token-nova.com/v1/video/query?${params.toString()}`,
{
headers: {
Authorization: "Bearer YOUR_API_KEY",
Accept: "application/json",
},
}
);
console.log(await response.json());
Response Example
{
"id": "grok:05c8e247-7e64-472a-acb1-e7f2de5d0d04",
"status": "processing",
"video_url": null,
"status_update_time": 1762780400,
"progress": 50
}
{
"id": "grok:05c8e247-7e64-472a-acb1-e7f2de5d0d04",
"status": "completed",
"video_url": "https://example.com/output.mp4",
"status_update_time": 1762780536,
"progress": 100,
"prompt": "cat fish --mode=custom",
"ratio": "3:2",
"model": "grok-3",
"thumbnail_url": "https://example.com/thumb.webp"
}
asset_id, video_file_id, and trace_id; please refer to the actual response.
Authentication
Authorization: Bearer YOUR_API_KEY
Query Parameters
string
required
Task ID, which is the same as the
id returned by the creation API.Response
string
Task ID.
string
Task status. Common values include
processing, completed, failed, and unknown.string | null
Video result URL. May be
null when the task is not yet complete.integer
The most recent status update time (Unix timestamp).
integer
Task progress percentage, included in some responses.
string
Echo of the submitted prompt.
string
Echo of the video ratio, for example
3:2.string
Thumbnail URL, may appear after completion.
