curl --request POST \
--url https://api.aurous-labs.com/v1/embeddings \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <api-key>' \
--data '
{
"model": "aurous-embed-vision-1.0",
"input": "<string>",
"dimensions": 1024,
"encoding_format": "float",
"user": "<string>"
}
'import requests
url = "https://api.aurous-labs.com/v1/embeddings"
payload = {
"model": "aurous-embed-vision-1.0",
"input": "<string>",
"dimensions": 1024,
"encoding_format": "float",
"user": "<string>"
}
headers = {
"X-Api-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Api-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
model: 'aurous-embed-vision-1.0',
input: '<string>',
dimensions: 1024,
encoding_format: 'float',
user: '<string>'
})
};
fetch('https://api.aurous-labs.com/v1/embeddings', 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/embeddings",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'model' => 'aurous-embed-vision-1.0',
'input' => '<string>',
'dimensions' => 1024,
'encoding_format' => 'float',
'user' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.aurous-labs.com/v1/embeddings"
payload := strings.NewReader("{\n \"model\": \"aurous-embed-vision-1.0\",\n \"input\": \"<string>\",\n \"dimensions\": 1024,\n \"encoding_format\": \"float\",\n \"user\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Api-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.aurous-labs.com/v1/embeddings")
.header("X-Api-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"aurous-embed-vision-1.0\",\n \"input\": \"<string>\",\n \"dimensions\": 1024,\n \"encoding_format\": \"float\",\n \"user\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aurous-labs.com/v1/embeddings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Api-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"model\": \"aurous-embed-vision-1.0\",\n \"input\": \"<string>\",\n \"dimensions\": 1024,\n \"encoding_format\": \"float\",\n \"user\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"object": "list",
"data": [
{
"index": 0,
"object": "embedding",
"embedding": [
0.0123,
-0.0456,
0.0789
]
}
],
"model": "aurous-embed-vision-1.0",
"usage": {
"prompt_tokens": 7000,
"total_tokens": 7000,
"credits_charged": 0.19125,
"breakdown": {
"input": {
"text": 0.09375,
"visual": 0.0975,
"video": 0
},
"model": "aurous-embed-vision-1.0"
}
}
}{
"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"
}
}{
"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"
}
}Create embeddings
Create embeddings from text and/or visual content (images, video). Multimodal input is combined into a SINGLE embedding (the underlying model concatenates parts into one document representation). For OpenAI-style N→N batch embedding, loop client-side: send one request per item.
Returns the OpenAI-compatible envelope (object: "list", data: [{ embedding, index, object }], model, usage) plus the Aurous usage extension carrying credits_charged and a per-modality breakdown (input: { text, visual, video }) so you can correlate charge to input. credits_charged is authoritative. Idempotency-Key is always honored.
curl --request POST \
--url https://api.aurous-labs.com/v1/embeddings \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <api-key>' \
--data '
{
"model": "aurous-embed-vision-1.0",
"input": "<string>",
"dimensions": 1024,
"encoding_format": "float",
"user": "<string>"
}
'import requests
url = "https://api.aurous-labs.com/v1/embeddings"
payload = {
"model": "aurous-embed-vision-1.0",
"input": "<string>",
"dimensions": 1024,
"encoding_format": "float",
"user": "<string>"
}
headers = {
"X-Api-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Api-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
model: 'aurous-embed-vision-1.0',
input: '<string>',
dimensions: 1024,
encoding_format: 'float',
user: '<string>'
})
};
fetch('https://api.aurous-labs.com/v1/embeddings', 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/embeddings",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'model' => 'aurous-embed-vision-1.0',
'input' => '<string>',
'dimensions' => 1024,
'encoding_format' => 'float',
'user' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.aurous-labs.com/v1/embeddings"
payload := strings.NewReader("{\n \"model\": \"aurous-embed-vision-1.0\",\n \"input\": \"<string>\",\n \"dimensions\": 1024,\n \"encoding_format\": \"float\",\n \"user\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Api-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.aurous-labs.com/v1/embeddings")
.header("X-Api-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"aurous-embed-vision-1.0\",\n \"input\": \"<string>\",\n \"dimensions\": 1024,\n \"encoding_format\": \"float\",\n \"user\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aurous-labs.com/v1/embeddings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Api-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"model\": \"aurous-embed-vision-1.0\",\n \"input\": \"<string>\",\n \"dimensions\": 1024,\n \"encoding_format\": \"float\",\n \"user\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"object": "list",
"data": [
{
"index": 0,
"object": "embedding",
"embedding": [
0.0123,
-0.0456,
0.0789
]
}
],
"model": "aurous-embed-vision-1.0",
"usage": {
"prompt_tokens": 7000,
"total_tokens": 7000,
"credits_charged": 0.19125,
"breakdown": {
"input": {
"text": 0.09375,
"visual": 0.0975,
"video": 0
},
"model": "aurous-embed-vision-1.0"
}
}
}{
"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"
}
}{
"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
Stripe-style idempotency key. Replays return the cached response with Aurous-Idempotent-Replayed: true. Same key + different canonical body returns 409 idempotency_key_in_use. Replay window is 24 hours.
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"
Body
Public model slug (e.g. "aurous-embed-vision-1.0"). Pass exactly as listed by GET /v1/models.
"aurous-embed-vision-1.0"
Input — accepts a string OR an array of content parts ({type: "text"|"image_url"|"video_url"}) for multimodal. String-array (string[]) batch input is NOT accepted on v1: the underlying model concatenates batched text into a single embedding, so a customer expecting OpenAI-style N→N would get one combined vector. Loop client-side or pass a multimodal-parts array (returns one combined embedding).
Output vector dimensions. Most models return a fixed dimension and reject this parameter. If the model does not support dimensions, the request returns 400 embeddings_unsupported_dimensions.
1024
Vector encoding format. Accepted for OpenAI SDK compatibility (the Node SDK sends base64 by default); v1 always returns float vectors regardless of the value sent. base64 support (returning base64-encoded float buffers) is reserved for a future release.
float, base64 End-user identifier for your records (optional). Stored on the inference row; no Aurous-side behavior. Mirrors OpenAI compat.
256Response
Embedding created.
OpenAI envelope discriminator.
list Embedding items. Always a single-element array on v1.
Show child attributes
Show child attributes
Model slug used for this request (echoed from the request).
"aurous-embed-vision-1.0"
Token + credit accounting for this request.
Show child attributes
Show child attributes

