Get a signed PUT URL for one character reference image.
Documentation Index
Fetch the complete documentation index at: https://docs.aurous-labs.com/llms.txt
Use this file to discover all available pages before exploring further.
POST /v1/characters/uploads/init is the first step of the upload flow for creating a character. It returns a short-lived signed PUT URL plus an opaque upload_id. Upload your image bytes to that URL, then pass the upload_id to POST /v1/characters (or call POST /v1/characters/uploads/classify first to detect the pose).
You typically call this endpoint once per reference image. A character supports 1–6 refs.
upload-classify).generate: true + attributes to POST /v1/characters (the synthesize flow).
POST /v1/characters/uploads/init → { upload_id, upload_url, expires_at }.PUT <upload_url> with the image bytes (any well-formed PUT, no extra headers required).POST /v1/characters/uploads/classify with the same upload_id to detect the pose.POST /v1/characters with { upload_ids: [upl_..., ...] } to consume the uploads and create the character.characters_post — 30 requests/min sustained, 60 burst per team.upload_id is no longer accepted on POST /v1/characters.upload_url is not authenticated — the signature is in the query string. Do not add X-Api-Key to the PUT.Your team API key (starts with al_live_).
Optional API version pin (YYYY-MM-DD). Defaults to your team's pinned version, or the system default 2026-05-15 for unauthenticated requests.
^\d{4}-\d{2}-\d{2}$"2026-05-15"
Original filename (used for Content-Disposition; not stored as the storage key).
1 - 120"front-portrait.jpg"
File extension. Must match content_type; mismatched combinations return 400.
jpeg, jpg, png, webp "jpg"
MIME type. Must match extension; mismatched combinations return 400.
image/jpeg, image/png, image/webp "image/jpeg"
Upload ticket minted
Upload ticket ID. Use as upload_id on POST /v1/characters/uploads/classify and POST /v1/characters.
"upl_01HXMQ7Z3K8Y2NABCDEFGHJKMR"
Pre-signed PUT URL — upload bytes via HTTP PUT with the headers from upload_headers. The URL expires at expires_at.
"https://aurous.storage/.../upload?signature=…"
HTTP headers to include on the PUT request (Content-Type matches the request payload).
{ "Content-Type": "image/jpeg" }Upload URL expiration (ISO 8601). Re-mint via /uploads/init if you need to retry past this point.
"2026-05-08T10:15:00Z"