Delete a character
Characters
Delete a character
Cancel-review a reviewing character or soft-delete any other state.
DELETE
Delete a character
DELETE /v1/characters/{id} removes a character. The branching is automatic, based on status:
reviewing→ hard-delete (cancel-review). The 4 generated refs are discarded, the row is removed entirely. Subsequent retrieval returns 404. Use this when synthesis produced refs you don’t want to keep.- Any other status (
ready,failed,synthesizing,deleted) → soft-delete. Setsdeleted_at, transitionsstatustodeleted. The row remains for ID stability (you can stillGET /v1/characters/{id}for audit), but it is excluded fromGET /v1/charactersand rejected byPOST /v1/imagesorPOST /v1/videos.
When to use
- Cancel-review: the synthesize flow produced refs you reject; you want the character gone, not archived.
- Soft-delete
ready: retire a character you no longer plan to use. Past generations that already reference it onGET /v1/images/{id}are unaffected, but the character can no longer be attached to new requests. - Soft-delete
failed: clean up a failed synthesis attempt you don’t want to retry. To retry instead, callPOST /v1/characters/{id}/resynthesize— no delete needed. Only fall back to delete + recreate (with freshupload_ids) if resynthesize returns422 uploads_expired.
Examples
Limits
- Rate limit: bucket
characters_post— 30 requests/min sustained, 60 burst per team.
Errors
Common pitfalls
- A
reviewingcharacter is hard-deleted — the row vanishes. SubsequentGET /v1/characters/{id}returns 404. If you cared about the refs, callPOST /v1/characters/{id}/savefirst. - Soft-deleting a
readycharacter does not affect generations you already produced — theiroutput_urlscontinue to work and the character ID still appears on pastGET /v1/images/{id}responses. - Calling DELETE a second time on the same character returns 404, since soft-deleted rows are filtered out for IDOR safety. Treat the first 200 as the only success signal you need.
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-07-16 for unauthenticated requests.
Pattern:
^\d{4}-\d{2}-\d{2}$Example:
"2026-07-16"
Path Parameters
Opaque character ID
Example:
"char_01HXMQ7Z3K8Y2NABCDEFGHJKMR"

