curl --request GET \
--url https://api.aurous-labs.com/v1/models \
--header 'X-Api-Key: <api-key>'import requests
url = "https://api.aurous-labs.com/v1/models"
headers = {"X-Api-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-Api-Key': '<api-key>'}};
fetch('https://api.aurous-labs.com/v1/models', 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://api.aurous-labs.com/v1/models",
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>"
],
]);
$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://api.aurous-labs.com/v1/models"
req, _ := http.NewRequest("GET", url, nil)
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://api.aurous-labs.com/v1/models")
.header("X-Api-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aurous-labs.com/v1/models")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Api-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"object": "list",
"data": [
{
"object": "model",
"id": "aurous-chat-pro",
"created": 1716076800,
"owned_by": "aurous",
"kind": "chat",
"display_name": "Aurous Chat Pro",
"description": "Flagship multimodal chat model with 256K context.",
"chat_pricing": {
"input": {
"credits_per_M": 75
},
"output": {
"credits_per_M": 75
}
},
"embedding_pricing": {
"text": {
"credits_per_M": 75
},
"visual": {
"credits_per_M": 75
}
},
"video_pricing": {
"unit": "credits_per_M_tokens",
"rates": [
{
"resolutions": [
"720p"
],
"video_input": false,
"credits_per_M": 1138.8889
}
]
},
"image_pricing": {
"unit": "credits_per_image",
"tiers": [
{
"tier": "standard",
"max_output_px": 2360000,
"credits_per_image": 6.5
}
],
"reference_images": "free"
},
"aurous_metadata": {
"context_window": 256000,
"default_max_output_tokens": 4096,
"max_output_tokens_hard_cap": 128000,
"capabilities": [
"streaming",
"tools",
"structured_output"
],
"deprecated_at": null,
"replaced_by_slug": null,
"dimensions": [
256,
512,
1024
],
"max_input_items": 96,
"resolutions": [
"480p",
"720p",
"1080p",
"4k"
],
"duration": {
"min": 4,
"max": 15,
"adaptive": true
},
"fps": 24,
"aliases": [
"seedance-2.0",
"seedance-2.0-pro"
]
}
}
]
}{
"error": {
"type": "invalid_request",
"code": "balance_too_low",
"message": "Team available balance is 1.5 credits, generation requires 2.0.",
"doc_url": "https://docs.aurous-labs.com/errors#balance_too_low",
"request_id": "req_01HXMQ7Z3K8Y2VNABCDEFGHJKM",
"param": "prompt"
}
}{
"error": {
"type": "invalid_request",
"code": "balance_too_low",
"message": "Team available balance is 1.5 credits, generation requires 2.0.",
"doc_url": "https://docs.aurous-labs.com/errors#balance_too_low",
"request_id": "req_01HXMQ7Z3K8Y2VNABCDEFGHJKM",
"param": "prompt"
}
}{
"error": {
"type": "invalid_request",
"code": "balance_too_low",
"message": "Team available balance is 1.5 credits, generation requires 2.0.",
"doc_url": "https://docs.aurous-labs.com/errors#balance_too_low",
"request_id": "req_01HXMQ7Z3K8Y2VNABCDEFGHJKM",
"param": "prompt"
}
}{
"error": {
"type": "invalid_request",
"code": "balance_too_low",
"message": "Team available balance is 1.5 credits, generation requires 2.0.",
"doc_url": "https://docs.aurous-labs.com/errors#balance_too_low",
"request_id": "req_01HXMQ7Z3K8Y2VNABCDEFGHJKM",
"param": "prompt"
}
}List chat, embedding, video, and image models
Returns the catalog of chat, embedding, video, and image models available to your team. Shape mirrors OpenAI’s GET /v1/models envelope ({ object: "list", data: [...] }) so SDK clients that already speak OpenAI drop in unchanged. Platform-specific fields (capability tags, lifecycle pointers) live under aurous_metadata on each entry. Per-model pricing lives on top-level chat_pricing (chat models), embedding_pricing (embedding models), video_pricing (video models), or image_pricing (image models) — the unused siblings are null. Video rates are a matrix in credits per million VIDEO tokens, keyed by output resolution and whether the request includes video input; listed video rates use standard (non-team) pricing. Image rates are a small closed tier list in credits per generated image, keyed by output pixel count; listed image rates also use standard (non-team) pricing. Customers can compute credits-per-1K by dividing the published credits_per_M value by 1000. New model kinds may be added over time — clients should skip entries with an unrecognized kind rather than failing to parse the response. When the catalog is empty the response is 200 with data: [] — never 404. No query, path, or body parameters are accepted.
Chat, embedding, image, and video rates are all NOT frozen per Aurous-Version — they track the most recently published rate version for each model, because provider economics and per-model markup are tuned more often than the API contract changes. The receipt echoed on every chat / embedding response (and the cost breakdown on every image / video generation) carries the exact rate that applied at dispatch or hold time, so audit trails remain stable even as the underlying rate card changes. Aurous-Version still governs request/response shapes — pin it for stable shapes, but call the relevant estimate or models endpoint for a current price immediately before you generate.
curl --request GET \
--url https://api.aurous-labs.com/v1/models \
--header 'X-Api-Key: <api-key>'import requests
url = "https://api.aurous-labs.com/v1/models"
headers = {"X-Api-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-Api-Key': '<api-key>'}};
fetch('https://api.aurous-labs.com/v1/models', 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://api.aurous-labs.com/v1/models",
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>"
],
]);
$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://api.aurous-labs.com/v1/models"
req, _ := http.NewRequest("GET", url, nil)
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://api.aurous-labs.com/v1/models")
.header("X-Api-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aurous-labs.com/v1/models")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Api-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"object": "list",
"data": [
{
"object": "model",
"id": "aurous-chat-pro",
"created": 1716076800,
"owned_by": "aurous",
"kind": "chat",
"display_name": "Aurous Chat Pro",
"description": "Flagship multimodal chat model with 256K context.",
"chat_pricing": {
"input": {
"credits_per_M": 75
},
"output": {
"credits_per_M": 75
}
},
"embedding_pricing": {
"text": {
"credits_per_M": 75
},
"visual": {
"credits_per_M": 75
}
},
"video_pricing": {
"unit": "credits_per_M_tokens",
"rates": [
{
"resolutions": [
"720p"
],
"video_input": false,
"credits_per_M": 1138.8889
}
]
},
"image_pricing": {
"unit": "credits_per_image",
"tiers": [
{
"tier": "standard",
"max_output_px": 2360000,
"credits_per_image": 6.5
}
],
"reference_images": "free"
},
"aurous_metadata": {
"context_window": 256000,
"default_max_output_tokens": 4096,
"max_output_tokens_hard_cap": 128000,
"capabilities": [
"streaming",
"tools",
"structured_output"
],
"deprecated_at": null,
"replaced_by_slug": null,
"dimensions": [
256,
512,
1024
],
"max_input_items": 96,
"resolutions": [
"480p",
"720p",
"1080p",
"4k"
],
"duration": {
"min": 4,
"max": 15,
"adaptive": true
},
"fps": 24,
"aliases": [
"seedance-2.0",
"seedance-2.0-pro"
]
}
}
]
}{
"error": {
"type": "invalid_request",
"code": "balance_too_low",
"message": "Team available balance is 1.5 credits, generation requires 2.0.",
"doc_url": "https://docs.aurous-labs.com/errors#balance_too_low",
"request_id": "req_01HXMQ7Z3K8Y2VNABCDEFGHJKM",
"param": "prompt"
}
}{
"error": {
"type": "invalid_request",
"code": "balance_too_low",
"message": "Team available balance is 1.5 credits, generation requires 2.0.",
"doc_url": "https://docs.aurous-labs.com/errors#balance_too_low",
"request_id": "req_01HXMQ7Z3K8Y2VNABCDEFGHJKM",
"param": "prompt"
}
}{
"error": {
"type": "invalid_request",
"code": "balance_too_low",
"message": "Team available balance is 1.5 credits, generation requires 2.0.",
"doc_url": "https://docs.aurous-labs.com/errors#balance_too_low",
"request_id": "req_01HXMQ7Z3K8Y2VNABCDEFGHJKM",
"param": "prompt"
}
}{
"error": {
"type": "invalid_request",
"code": "balance_too_low",
"message": "Team available balance is 1.5 credits, generation requires 2.0.",
"doc_url": "https://docs.aurous-labs.com/errors#balance_too_low",
"request_id": "req_01HXMQ7Z3K8Y2VNABCDEFGHJKM",
"param": "prompt"
}
}Authorizations
Your team API key (starts with al_live_).
Headers
Optional API version pin (YYYY-MM-DD). Omit the header to receive the platform default, currently 2026-08-26.
^\d{4}-\d{2}-\d{2}$"2026-08-26"
Response
List of available chat, embedding, video, and image models.

