curl --request GET \
--url https://console.spatius.ai/v1/open/avatar-jobs \
--header 'X-API-Key: <api-key>' \
--header 'X-App-ID: <api-key>'import requests
url = "https://console.spatius.ai/v1/open/avatar-jobs"
headers = {
"X-App-ID": "<api-key>",
"X-API-Key": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-App-ID': '<api-key>', 'X-API-Key': '<api-key>'}};
fetch('https://console.spatius.ai/v1/open/avatar-jobs', 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://console.spatius.ai/v1/open/avatar-jobs",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>",
"X-App-ID: <api-key>"
],
]);
$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://console.spatius.ai/v1/open/avatar-jobs"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-App-ID", "<api-key>")
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://console.spatius.ai/v1/open/avatar-jobs")
.header("X-App-ID", "<api-key>")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://console.spatius.ai/v1/open/avatar-jobs")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-App-ID"] = '<api-key>'
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"jobs": [
{
"id": "6f1e2b3c-9a1d-4e5f-8b0a-2c4d6e8f0a1b",
"status": "succeeded",
"name": "Support Agent",
"avatarId": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d",
"createdAt": "2026-07-25T09:30:00Z",
"updatedAt": "2026-07-25T09:47:12Z",
"completedAt": "2026-07-25T09:47:12Z"
}
],
"pagination": {
"nextPageToken": "",
"totalCount": 1
}
}{
"error": {
"code": "invalid_request",
"message": "imageUrl is required",
"requestId": "b3f0c2d1-4a5b-4c6d-8e9f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "unauthorized",
"message": "Unauthorized.",
"requestId": "b3f0c2d1-4a5b-4c6d-8e9f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "forbidden",
"message": "API Avatar creation is disabled",
"requestId": "b3f0c2d1-4a5b-4c6d-8e9f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "rate_limit_exceeded",
"message": "Open API rate limit exceeded",
"requestId": "b3f0c2d1-4a5b-4c6d-8e9f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "internal_error",
"message": "An internal error occurred.",
"requestId": "b3f0c2d1-4a5b-4c6d-8e9f-0a1b2c3d4e5f"
}
}List Avatar jobs
Returns the Avatar creation jobs submitted by the authenticated account, newest first. Use the statuses query parameter to filter by job status.
curl --request GET \
--url https://console.spatius.ai/v1/open/avatar-jobs \
--header 'X-API-Key: <api-key>' \
--header 'X-App-ID: <api-key>'import requests
url = "https://console.spatius.ai/v1/open/avatar-jobs"
headers = {
"X-App-ID": "<api-key>",
"X-API-Key": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-App-ID': '<api-key>', 'X-API-Key': '<api-key>'}};
fetch('https://console.spatius.ai/v1/open/avatar-jobs', 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://console.spatius.ai/v1/open/avatar-jobs",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>",
"X-App-ID: <api-key>"
],
]);
$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://console.spatius.ai/v1/open/avatar-jobs"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-App-ID", "<api-key>")
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://console.spatius.ai/v1/open/avatar-jobs")
.header("X-App-ID", "<api-key>")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://console.spatius.ai/v1/open/avatar-jobs")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-App-ID"] = '<api-key>'
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"jobs": [
{
"id": "6f1e2b3c-9a1d-4e5f-8b0a-2c4d6e8f0a1b",
"status": "succeeded",
"name": "Support Agent",
"avatarId": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d",
"createdAt": "2026-07-25T09:30:00Z",
"updatedAt": "2026-07-25T09:47:12Z",
"completedAt": "2026-07-25T09:47:12Z"
}
],
"pagination": {
"nextPageToken": "",
"totalCount": 1
}
}{
"error": {
"code": "invalid_request",
"message": "imageUrl is required",
"requestId": "b3f0c2d1-4a5b-4c6d-8e9f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "unauthorized",
"message": "Unauthorized.",
"requestId": "b3f0c2d1-4a5b-4c6d-8e9f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "forbidden",
"message": "API Avatar creation is disabled",
"requestId": "b3f0c2d1-4a5b-4c6d-8e9f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "rate_limit_exceeded",
"message": "Open API rate limit exceeded",
"requestId": "b3f0c2d1-4a5b-4c6d-8e9f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "internal_error",
"message": "An internal error occurred.",
"requestId": "b3f0c2d1-4a5b-4c6d-8e9f-0a1b2c3d4e5f"
}
}Authorizations
Your Spatius App ID.
The API key bound to the App ID.
Query Parameters
Repeatable status filter. Only jobs in one of the given statuses are returned.
Lifecycle status of an Avatar creation job.
queued, processing, succeeded, failed Maximum number of items to return. Defaults to 20; the maximum is 99. A value above 99 falls back to the default of 20 rather than being capped, so request at most 99.
1 <= x <= 99Opaque token from the previous page's nextPageToken. Omit for the first page. Pass back exactly what the previous response returned rather than constructing a value. A token is only valid for the pagination.pageSize it was issued with; keep that value stable while paging, or start again from the first page.

