POST https://<API_URL>/api/v1/conversation Authorization: Bearer YOUR_API_KEY X-API-Key: YOUR_API_KEY {
"user_id": "user-123",
"message": "Hello!",
"image_b64": null,
"image_mime": null,
"voice_b64": null,
"voice_mime": null,
"persona": { }
} "persona": {
"name": "Nova",
"age": 27,
"gender": "female",
"zodiac": "Gemini",
"temperament": {
"sanguine": 0.50,
"choleric": 0.20,
"phlegmatic": 0.20,
"melancholic": 0.10
},
"sociality": "ambivert",
"archetypes": ["Explorer", "Muse", "Sage"],
"role": "You are a brand ambassador for Aurora. You master the A, B, C product lines, official policies, warranty rules, and typical usage scenarios. You provide step-by-step instructions, vetted recommendations, and links to primary sources. You help pick configurations, plan rollouts, and assess risks. You write briefly and structurally, use lists and examples, and include concrete units and figures. You respect legal and ethical boundaries; you do not provide medical, legal, or investment advice."
}
"temperament": {
"sanguine": 0.45,
"choleric": 0.18,
"phlegmatic": 0.25,
"melancholic": 0.12
} {
"reply": "Hi! How are you feeling today?",
"latency_ms": 842,
"request_id": "4611686018427387904-7"
}
{
"detail": {
"code": "error_code",
"message": "Error description",
"request_id": "..." // may be absent for some 4xx
}
}
curl -X POST "https://<API_URL>/api/v1/conversation" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"user_id": "user-123",
"message": "Pick a starter kit for a beginner.",
"image_b64": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/w8AAwMB/6X8mNQAAAAASUVORK5CYII=",
"image_mime": "image/png",
"voice_b64": "<BASE64_AUDIO_OGG>",
"voice_mime": "audio/ogg",
"persona": {
"name": "Nova",
"age": 27,
"gender": "female",
"zodiac": "Gemini",
"temperament": {
"sanguine": 0.45,
"choleric": 0.25,
"phlegmatic": 0.20,
"melancholic": 0.10
},
"sociality": "ambivert",
"archetypes": ["Architect", "Sage", "Explorer"],
"role": "You are a brand ambassador for Aurora. You master the A, B, C product lines, official policies, warranty rules, and typical usage scenarios. You provide step-by-step instructions, vetted recommendations, and links to primary sources. You help pick configurations, plan rollouts, and assess risks. You write briefly and structurally, use lists and examples, and include concrete units and figures. You respect legal and ethical boundaries; you do not provide medical, legal, or investment advice."
}
}'
import requests
API_URL = "https://<API_URL>"
API_KEY = "YOUR_API_KEY"
payload = {
"user_id": "user-123",
"message": "Pick a starter kit for a beginner.",
"image_b64": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/w8AAwMB/6X8mNQAAAAASUVORK5CYII=",
"image_mime": "image/png",
"voice_b64": "<BASE64_AUDIO_OGG>",
"voice_mime": "audio/ogg",
"persona": {
"name": "Nova",
"age": 27,
"gender": "female",
"zodiac": "Gemini",
"temperament": {
"sanguine": 0.45,
"choleric": 0.25,
"phlegmatic": 0.20,
"melancholic": 0.10
},
"sociality": "ambivert",
"archetypes": ["Architect", "Sage", "Explorer"],
"role": ("You are a brand ambassador for Aurora. You master the A, B, C product lines, "
"official policies, warranty rules, and typical usage scenarios. "
"You provide step-by-step instructions, vetted recommendations, and links to primary sources. "
"You help pick configurations, plan rollouts, and assess risks. "
"You write briefly and structurally, use lists and examples, and include concrete units and figures. "
"You respect legal and ethical boundaries; you do not provide medical, legal, or investment advice.")
}
}
resp = requests.post(
f"{API_URL}/api/v1/conversation",
headers={"Authorization": f"Bearer {API_KEY}"},
json=payload,
timeout=30,
)
print(resp.status_code, resp.json())
const API_URL = "https://<API_URL>";
const API_KEY = "YOUR_API_KEY";
const body = {
user_id: "user-123",
message: "Pick a starter kit for a beginner.",
image_b64: "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/w8AAwMB/6X8mNQAAAAASUVORK5CYII=",
image_mime: "image/png",
voice_b64: "<BASE64_AUDIO_OGG>",
voice_mime: "audio/ogg",
persona: {
name: "Nova",
age: 27,
gender: "female",
zodiac: "Gemini",
temperament: {
sanguine: 0.45,
choleric: 0.25,
phlegmatic: 0.20,
melancholic: 0.10
},
sociality: "ambivert",
archetypes: ["Architect", "Sage", "Explorer"],
role:
"You are a brand ambassador for Aurora. You master the A, B, C product lines, official policies, warranty rules, and typical usage scenarios. You provide step-by-step instructions, vetted recommendations, and links to primary sources. You help pick configurations, plan rollouts, and assess risks. You write briefly and structurally, use lists and examples, and include concrete units and figures. You respect legal and ethical boundaries; you do not provide medical, legal, or investment advice."
}
};
(async () => {
const resp = await fetch(`${API_URL}/api/v1/conversation`, {
method: "POST",
headers: {
"Authorization": `Bearer ${API_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify(body)
});
const data = await resp.json().catch(() => ({}));
console.log(resp.status, data);
})();
<?php
$apiUrl = 'https://<API_URL>';
$apiKey = 'YOUR_API_KEY';
$payload = [
"user_id" => "user-123",
"message" => "Pick a starter kit for a beginner.",
"image_b64" => "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/w8AAwMB/6X8mNQAAAAASUVORK5CYII=",
"image_mime" => "image/png",
"voice_b64" => "<BASE64_AUDIO_OGG>",
"voice_mime" => "audio/ogg",
"persona" => [
"name" => "Nova",
"age" => 27,
"gender" => "female",
"zodiac" => "Gemini",
"temperament" => [
"sanguine" => 0.45,
"choleric" => 0.25,
"phlegmatic" => 0.20,
"melancholic" => 0.10
],
"sociality" => "ambivert",
"archetypes" => ["Architect", "Sage", "Explorer"],
"role" => "You are a brand ambassador for Aurora. You master the A, B, C product lines, official policies, warranty rules, and typical usage scenarios. You provide step-by-step instructions, vetted recommendations, and links to primary sources. You help pick configurations, plan rollouts, and assess risks. You write briefly and structurally, use lists and examples, and include concrete units and figures. You respect legal and ethical boundaries; you do not provide medical, legal, or investment advice."
]
];
$ch = curl_init("$apiUrl/api/v1/conversation");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
"Authorization: Bearer $apiKey",
"Content-Type: application/json",
],
CURLOPT_POSTFIELDS => json_encode($payload, JSON_UNESCAPED_UNICODE),
CURLOPT_TIMEOUT => 30,
]);
$response = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $code, PHP_EOL, $response, PHP_EOL;
package main
import (
"bytes"
"encoding/json"
"fmt"
"io"
"net/http"
"time"
)
func main() {
apiURL := "https://<API_URL>"
apiKey := "YOUR_API_KEY"
body := map[string]any{
"user_id": "user-123",
"message": "Pick a starter kit for a beginner.",
"image_b64": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/w8AAwMB/6X8mNQAAAAASUVORK5CYII=",
"image_mime": "image/png",
"voice_b64": "<BASE64_AUDIO_OGG>",
"voice_mime": "audio/ogg",
"persona": map[string]any{
"name": "Nova",
"age": 27,
"gender": "female",
"zodiac": "Gemini",
"temperament": map[string]float64{
"sanguine": 0.45,
"choleric": 0.25,
"phlegmatic": 0.20,
"melancholic": 0.10,
},
"sociality": "ambivert",
"archetypes": []string{"Architect", "Sage", "Explorer"},
"role": "You are a brand ambassador for Aurora. You master the A, B, C product lines, official policies, warranty rules, and typical usage scenarios. You provide step-by-step instructions, vetted recommendations, and links to primary sources. You help pick configurations, plan rollouts, and assess risks. You write briefly and structurally, use lists and examples, and include concrete units and figures. You respect legal and ethical boundaries; you do not provide medical, legal, or investment advice.",
},
}
b, _ := json.Marshal(body)
req, _ := http.NewRequest("POST", apiURL+"/api/v1/conversation", bytes.NewReader(b))
req.Header.Set("Authorization", "Bearer "+apiKey)
req.Header.Set("Content-Type", "application/json")
client := &http.Client{Timeout: 30 * time.Second}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
rb, _ := io.ReadAll(resp.Body)
fmt.Println(resp.StatusCode)
fmt.Println(string(rb))
}