Regenerate a single ref pose
Re-run synthesis for one pose without re-doing the other three.
POST /v1/characters/{id}/refs/regenerate re-runs the synthesize pipeline for one pose, leaving the other refs intact. Use it when three of the four synthesized refs look right but the fourth needs another try.
The endpoint returns 200 with the updated character resource (Stripe pattern — the resource exists and this is a state transition, not a new-resource creation). The character transitions to status: synthesizing while the new ref mints; poll GET /v1/characters/{id} until status returns to reviewing (then call POST /v1/characters/{id}/save) or ready.
This endpoint costs credits — one generation per call. Estimate cost via POST /v1/images/estimate on the equivalent prompt if you need a budget guardrail in your UI.
When to use
- The synthesize flow produced three good refs and one bad one; you want to fix only the bad one.
- A
failedregen needs another attempt without touching other poses.
POST /v1/characters/{id}/resynthesize instead.
Body
| Field | Required | Description |
|---|---|---|
pose | yes | One of portrait, front, side, back, other. |
prompt_override | no | Forward-compat slot. Currently a no-op — the orchestrator does not honor it yet. Safe to omit. |
Examples
Limits
- Rate limit: bucket
characters_synthesize— 6 requests/min sustained, 12 burst per team. Shared with synthesize-flow create and resynthesize. - Idempotency: pass
Idempotency-Key(any opaque value, 1–256 chars). Same key + same body within 24h replays the cached response. Same key + different body returns409 idempotency_key_in_use. See Idempotency.
Idempotency-Key — this endpoint dispatches a paid generation,
so a network retry without a key can double-charge.Errors
| Code | HTTP | When |
|---|---|---|
invalid_request_error | 400 | pose is not one of the canonical 5, or character is in a non-regen state. |
insufficient_credits | 402 | Team credits < the regen cost. |
resource_not_found | 404 | Unknown ID, soft-deleted character, or cross-team. |
idempotency_key_in_use | 409 | Same Idempotency-Key used with a different body, or previously used on a different route. |
rate_limit_exceeded | 429 | Burst > 12 or sustained > 6/min. |
Common pitfalls
- The pose enum is locked at v1.0 to
portrait,front,side,back,other. Anything else is400 invalid_request_error. - After regen, the character is
synthesizingagain. Polling resumes the same way as for fresh synthesis. - Regenerating from
readyis allowed and moves the character back tosynthesizing— existing generations that already reference the old ref are unaffected; only future requests pick up the new pose.
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.
^\d{4}-\d{2}-\d{2}$"2026-05-15"
Stripe-style idempotency key (1-256 chars). Same key + same canonical-JSON body returns the cached response with Aurous-Idempotent-Replayed: true. Same key against a different route (e.g. previously used on /v1/images) returns 409 invalid_request / idempotency_key_in_use. Replay window is 24 hours. Absent header is treated as non-idempotent (each call processes anew).
Path Parameters
Opaque character ID
"char_01HXMQ7Z3K8Y2NABCDEFGHJKMR"
Body
Which pose to regenerate. Must be one of the canonical V1 poses: portrait (head/shoulders), front (full-body facing camera), side (full-body in profile), back (full-body away from camera), or other.
portrait, front, side, back, other "front"
Optional prompt override for this single pose. Falls back to the character.attributes-derived prompt when omitted.
"soft studio lighting, neutral background"
Response
Ref pose regenerated; updated character returned
Opaque character ID.
"char_01HXMQ7Z3K8Y2NABCDEFGHJKMR"
Discriminator
character "character"
Display name.
"Aurora the Adventurer"
Lifecycle state. synthesizing: synthesize flow running. reviewing: synthesize completed, awaiting POST /:id/save. ready: usable on POST /v1/images. failed: synthesize failed; use POST /:id/resynthesize to retry. deleted: soft-deleted (filtered out of list endpoint).
synthesizing, reviewing, ready, failed, deleted "ready"
Reference images (typically 4 poses).
Creation timestamp (ISO 8601).
"2026-05-08T10:00:00Z"
Last-update timestamp (ISO 8601).
"2026-05-08T10:00:00Z"
Caller-supplied reference echoed back (the value sent on create). Null if unset.
"bot_8472"
Character attributes. Null when unset.
Error message when status is failed. Null otherwise.
null
API contract version applied at the time this row was minted (D25 — frozen for replay across future version bumps).
"2026-05-15"

