Get generation status
curl --request GET \
--url https://hub.oxen.ai/api/ai/queue/{generation_id}import requests
url = "https://hub.oxen.ai/api/ai/queue/{generation_id}"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://hub.oxen.ai/api/ai/queue/{generation_id}', 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://hub.oxen.ai/api/ai/queue/{generation_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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://hub.oxen.ai/api/ai/queue/{generation_id}"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://hub.oxen.ai/api/ai/queue/{generation_id}")
.asString();require 'uri'
require 'net/http'
url = URI("https://hub.oxen.ai/api/ai/queue/{generation_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"enqueued_at": 123,
"generation_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"media_type": "image",
"model_name": "<string>",
"status": "queued",
"audios": [
{
"draft_expires_at": "<string>",
"draft_task_id": "<string>",
"url": "<string>"
}
],
"completed_at": 123,
"error_message": "<string>",
"error_provider": "<string>",
"error_provider_code": "<string>",
"error_retryable": true,
"error_source": "user",
"images": [
{
"draft_expires_at": "<string>",
"draft_task_id": "<string>",
"url": "<string>"
}
],
"result_url": "<string>",
"retried_from_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"started_at": 123,
"target_directory": "<string>",
"target_namespace": "<string>",
"target_repo": "<string>",
"videos": [
{
"draft_expires_at": "<string>",
"draft_task_id": "<string>",
"url": "<string>"
}
]
}{}API Reference
Get generation status
Retrieves metadata for a single queued generation.
GET
/
api
/
ai
/
queue
/
{generation_id}
Get generation status
curl --request GET \
--url https://hub.oxen.ai/api/ai/queue/{generation_id}import requests
url = "https://hub.oxen.ai/api/ai/queue/{generation_id}"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://hub.oxen.ai/api/ai/queue/{generation_id}', 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://hub.oxen.ai/api/ai/queue/{generation_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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://hub.oxen.ai/api/ai/queue/{generation_id}"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://hub.oxen.ai/api/ai/queue/{generation_id}")
.asString();require 'uri'
require 'net/http'
url = URI("https://hub.oxen.ai/api/ai/queue/{generation_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"enqueued_at": 123,
"generation_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"media_type": "image",
"model_name": "<string>",
"status": "queued",
"audios": [
{
"draft_expires_at": "<string>",
"draft_task_id": "<string>",
"url": "<string>"
}
],
"completed_at": 123,
"error_message": "<string>",
"error_provider": "<string>",
"error_provider_code": "<string>",
"error_retryable": true,
"error_source": "user",
"images": [
{
"draft_expires_at": "<string>",
"draft_task_id": "<string>",
"url": "<string>"
}
],
"result_url": "<string>",
"retried_from_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"started_at": 123,
"target_directory": "<string>",
"target_namespace": "<string>",
"target_repo": "<string>",
"videos": [
{
"draft_expires_at": "<string>",
"draft_task_id": "<string>",
"url": "<string>"
}
]
}{}Path Parameters
Response
Generation details
Compact status payload for a single queued generation, used by the workbench to poll progress. For the full payload (cost, user, etc.), see /api/ai/generations/:id.
Unix timestamp
Available options:
image, video Available options:
queued, processing, succeeded, failed, cancelled Show child attributes
Show child attributes
Unix timestamp
Upstream provider the failure came from
Provider's own error code, when it gave one
Whether retrying the same request could plausibly succeed
Where a failure originated, so a provider refusal reads differently from an Oxen fault
Available options:
user, provider_policy, provider, oxen Show child attributes
Show child attributes
Id of the generation this row is a kill & retry of, when applicable
Unix timestamp
Show child attributes
Show child attributes