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/images.
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 failed synthesis attempts you don’t intend to retry viaresynthesize.
Examples
Limits
- Rate limit: bucket
characters_post— 30 requests/min sustained, 60 burst per team.
Errors
| Code | HTTP | When |
|---|---|---|
resource_not_found | 404 | Unknown ID or cross-team. The 404 is intentional — cross-team existence is never leaked. |
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-05-15 for unauthenticated requests.
Pattern:
^\d{4}-\d{2}-\d{2}$Example:
"2026-05-15"
Path Parameters
Opaque character ID
Example:
"char_01HXMQ7Z3K8Y2NABCDEFGHJKMR"

