Classify the pose of an uploaded reference image
Characters
Classify an uploaded ref
Detect the pose of an image you uploaded via /v1/characters/uploads/init.
POST
Classify the pose of an uploaded reference image
POST /v1/characters/uploads/classify runs pose detection on an uploaded reference image and returns a label (portrait, front, side, back, or other) plus a confidence score. Call it after the PUT to upload_url finishes and before POST /v1/characters if you want to label or de-duplicate refs in your own UI.
This endpoint is optional. The platform does not require classification before consuming an upload_id — refs without a labeled pose default to other.
When to use
- You’re building an upload UI where customers can review which pose was detected before committing.
- You want to reject a duplicate
frontupload before the user submits the form. - You want to display the detected pose alongside the uploaded thumbnail.
POST /v1/characters directly with upload_ids.
Example
Limits
- Rate limit: bucket
characters_post— 30 requests/min sustained, 60 burst per team. - Idempotent: yes — classify is a pure read of the uploaded bytes; calling twice returns the same answer (no duplicate cost).
Errors
| Code | HTTP | When |
|---|---|---|
upload_invalid | 400 | upload_id is unknown, expired, or already consumed by POST /v1/characters. |
resource_not_found | 404 | upload_id belongs to a different team. |
Common pitfalls
- Classify returns
otherfor poses that don’t match the canon — don’t surface “unknown” as an error in your UI; treat it as an acceptable label. - The confidence score is informative, not a gate. A low-confidence
frontis still a validfrontfor the synthesize layer. - Once
POST /v1/charactersconsumes the upload, calling classify on the sameupload_idreturns 400upload_invalid. Cache the classify result client-side if you need it later.
Authorizations
Your team API key (starts with al_live_).
Headers
Optional API version pin (YYYY-MM-DD). Defaults to your team's pinned version, or the system default 2026-05-15 for unauthenticated requests.
Pattern:
^\d{4}-\d{2}-\d{2}$Example:
"2026-05-15"
Body
application/json
Upload ticket ID returned by POST /v1/characters/uploads/init.
Example:
"upl_01HXMQ7Z3K8Y2NABCDEFGHJKMR"
Response
Classification result
Upload ticket ID echoed back.
Example:
"upl_01HXMQ7Z3K8Y2NABCDEFGHJKMR"
Detected pose for the uploaded image.
Available options:
portrait, front, side, back, other Example:
"front"
Classifier confidence score on the 0-1 range.
Required range:
0 <= x <= 1Example:
0.92

