DELETE /v1/characters/{id}/refs/{view} empties one of the eight named views on a draft, so the next POST /v1/characters/{id}/build renders that view instead of keeping the photo you filed. The response is the full character with the updated views[] and a recalculated build — the emptied view is back in build.missing_views, and build.cost_credits has gone up by one view’s price.Drafts only. Any other status returns 400 character_status_invalid with param: character_id — replace the view with a new upload instead of removing it.Never charges, and idempotent: a view that holds no reference returns 200 with the character unchanged.
import os, requestsr = requests.delete( f"https://api.aurous-labs.com/v1/characters/{character_id}/refs/upper_back", headers={"X-Api-Key": os.environ["AUROUS_API_KEY"]},).json()print(next(v for v in r["views"] if v["view"] == "upper_back")["status"]) # missing
One of head_front, upper_front, lower_front, upper_back, lower_back, full_left, full_front, full_right. Anything else is 400 invalid_format (param: "view") — and the same 400 fires whether or not the character exists, so it is not an existence probe.
So a character whose build failed can have a view replaced (PUT) but not removed, until the next successful build. Nothing was lost: the references you uploaded are stored on the character, not as expiring upload tickets, and POST /v1/characters/{id}/build accepts failed precisely so a retry needs no re-upload.
Cost: free. Removing a view renders nothing and charges nothing; it raises what the next build will cost, because there is one more view to render.
Rate limit: bucket characters_post — 30 requests/min sustained, 60 burst per team. Shared with the other cheap character writes (draft create, uploads init/classify, PATCH, DELETE /v1/characters/{id}, save).
Idempotency: no Idempotency-Key is needed. The operation is naturally idempotent — removing an already-empty view is a 200 with the character unchanged.
view is not one of the eight names. param is view.
character_status_invalid
400
The character is not a draft. param is character_id; the message names the current status and the statuses this operation accepts.
invalid_api_key
401
Missing, malformed, or revoked X-Api-Key.
insufficient_scope
403
The key does not carry the write scope.
resource_not_found
404
Unknown character id, soft-deleted, or cross-team. The 404 is intentional — cross-team existence is never leaked.
character_busy
409
A render is in flight; retry after Retry-After seconds.
too_many_requests
429
Burst > 60 or sustained > 30/min.
These changes ship on the existing 2026-08-26 contract. No Aurous-Version pin isolates them: the version catalogue carries image and video pricing pointers only, not character pricing or the size of the reference set. Pinning an earlier Aurous-Version restores neither the smaller reference set nor the previous price. A character created before 2026-09-14 keeps the references it already has — add either of the two newer views on demand with POST /v1/characters/{id}/refs/{view}/regenerate; every character created on or after that date carries eight.
This removes a view, not the character. To delete the character itself use DELETE /v1/characters/{id}, which hard-deletes a draft.
Removing a view raisesbuild.cost_credits — you have given the platform one more view to render. Re-read build after every change rather than caching a quote.
The 200 on an already-empty view is deliberate, so a retry after a dropped connection is safe. Don’t treat it as “the view existed”.
Removing the view your cover pointed at clears the cover; the head view is the default cover when none is set.
Lifecycle state. draft: references are being assembled; nothing has been charged and the character cannot be used for generation. New lifecycle states may be added in future — treat any status other than ready as "not yet usable". synthesizing: references are being built. ready: usable on POST /v1/images — both create flows advance here on their own. reviewing: reached only after POST /:id/resynthesize or POST /:id/build; call POST /:id/save to return to ready. failed: the build failed; error_message carries the reason and POST /:id/build (builder characters) or POST /:id/resynthesize retries. deleted: soft-deleted (filtered out of the list endpoint).
What the reference set is rendered as — nude unless you chose clothed, or — when you omitted nudity — your team's default is clothed. An explicit value always wins. Fixed once the references are built.
Reference images, one per view the character has. A character built today has eight; an older one can have fewer than eight (typically six, some of the oldest four). Do not assume a count — read views[], the canonical read model for new integrations, or build.missing_views. refs[] lists only the references that exist.
One entry per named view, in canonical order — every reference that maps to a named view, keyed by view, plus what is missing or was rejected. A reference from before named views existed (refs[].view is other) appears only in refs[].
Machine-readable failure code from the most recent synthesize/resynthesize attempt. One of synthesis_failed, synthesis_timeout, provider_unavailable — a closed set to switch on, not customer-facing prose. Null when the most recent attempt succeeded (or none has run yet). Set on failed, but NOT failed-exclusive: a failed resynthesize restores the character to its prior working status (reviewing) rather than overwriting a good generation, so a reviewing row can carry a non-null code here — check this field for failure, not status. Cleared on the next resynthesize attempt and on success.
API contract version applied at the time this row was minted (D25 — frozen for replay across future version bumps).
Example:
"2026-08-26"
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Aurous Labs","colors":{"primary":"#7C3AED","light":"#A78BFA","dark":"#5B21B6"},"logo":{"light":"https://mintcdn.com/mayatech/yW79tCRlCpJDDgoM/logo-light.png?fit=max\u0026auto=format\u0026n=yW79tCRlCpJDDgoM\u0026q=85\u0026s=f3dfa1506dde2b022b4496c2c2f55104","dark":"https://mintcdn.com/mayatech/yW79tCRlCpJDDgoM/logo-dark.png?fit=max\u0026auto=format\u0026n=yW79tCRlCpJDDgoM\u0026q=85\u0026s=fb6dc85c1a2cb23d84e6d8efccdde751"},"favicon":"https://mintcdn.com/mayatech/yW79tCRlCpJDDgoM/favicon.png?fit=max\u0026auto=format\u0026n=yW79tCRlCpJDDgoM\u0026q=85\u0026s=374677cfa3da0cfdc4461950d5e6ec73","api":{"openapi":"api-reference/openapi.json"},"navbar":{"links":[{"href":"https://app.aurous-labs.com/dashboard","label":"Dashboard"}],"primary":{"type":"button","label":"Get an API key","href":"https://app.aurous-labs.com/auth/register"}},"footer":{"socials":{"twitter":"https://twitter.com/aurouslabs"}},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"mayatech","hasAudioNarration":false,"actualSubdomain":"mayatech","customDomains":["docs.aurous-labs.com"],"gitSource":{"type":"github","owner":"mayatech88","repo":"onlygold","deployBranch":"main","contentDirectory":"apps/docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6adafc5af4b49ade1f1e2d25","collectionId":"0680f6e9-0a65-4ffe-bb73-02062bd8fd63","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6adafc5af4b49ade1f1e2d25"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6adafc5af4b49ade1f1e2d25","clientVersion":"0.0.4045","searchFilterCounts":[{"language":"default","tag":"API Reference","count":82},{"language":"default","tag":"Characters","count":17},{"language":"default","tag":"Chat completions","count":13},{"language":"default","tag":"Embeddings","count":10},{"language":"default","tag":"Webhooks","count":8},{"language":"default","tag":"Images","count":7},{"language":"default","tag":"Seedance (raw)","count":7},{"language":"default","tag":"Guides","count":6},{"language":"default","tag":"Usage analytics","count":5},{"language":"default","tag":"Concepts","count":4}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/characters/delete-ref","slug":"/api-reference/characters/delete-ref","pageMetadata":{"title":"Remove a view from a draft","description":"Empty one named view on a draft so the next build renders it instead of keeping your photo.","openapi":"DELETE /v1/characters/{id}/refs/{view}","href":"/api-reference/characters/delete-ref"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Empty one named view on a draft so the next build renders it instead of keeping your photo.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,em:`em`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,CodeGroup,Heading,Note,Table}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!CodeGroup)_missingMdxReference(`CodeGroup`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[_jsx(_components.code,{children:`DELETE /v1/characters/{id}/refs/{view}`}),` empties `,_jsx(_components.strong,{children:`one`}),` of the eight named views on a `,_jsx(_components.code,{children:`draft`}),`, so the next `,_jsx(_components.a,{href:`/api-reference/characters/build-character`,children:_jsx(_components.code,{children:`POST /v1/characters/{id}/build`})}),` renders that view instead of keeping the photo you filed. The response is the full character with the updated `,_jsx(_components.code,{children:`views[]`}),` and a recalculated `,_jsx(_components.code,{children:`build`}),` — the emptied view is back in `,_jsx(_components.code,{children:`build.missing_views`}),`, and `,_jsx(_components.code,{children:`build.cost_credits`}),` has gone up by one view’s price.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Drafts only.`}),` Any other status returns `,_jsx(_components.code,{children:`400 character_status_invalid`}),` with `,_jsx(_components.code,{children:`param: character_id`}),` — replace the view with a new upload instead of removing it.`]}),`\n`,_jsxs(_components.p,{children:[`Never charges, and `,_jsx(_components.strong,{children:`idempotent`}),`: a view that holds no reference returns `,_jsx(_components.code,{children:`200`}),` with the character unchanged.`]}),`\n`,_jsx(Heading,{level:`2`,id:`when-to-use`,children:`When to use`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`You filed the wrong photo into a view and would rather the platform render it.`}),`\n`,_jsx(_components.li,{children:`You want to shrink an assembled draft back toward “let the platform do it” before building.`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`To `,_jsx(_components.em,{children:`replace`}),` a view rather than empty it, `,_jsx(_components.code,{children:`PUT`}),` a new photo into it — see `,_jsx(_components.a,{href:`/api-reference/characters/put-ref`,children:`Put a photo into a view`}),`. That works on `,_jsx(_components.code,{children:`draft`}),`, `,_jsx(_components.code,{children:`failed`}),`, `,_jsx(_components.code,{children:`reviewing`}),` and `,_jsx(_components.code,{children:`ready`}),` alike.`]}),`\n`,_jsx(Heading,{level:`2`,id:`examples`,children:`Examples`}),`\n`,_jsxs(CodeGroup,{children:[_jsx(CodeBlock,{filename:`cURL`,numberOfLines:`2`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -X`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` DELETE`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://api.aurous-labs.com/v1/characters/char_01HXMQ7Z3K8Y2VNABCDEFGHJKM/refs/upper_back`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"X-Api-Key: `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$AUROUS_API_KEY`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`})]}),`\n`]})})}),_jsx(CodeBlock,{filename:`Node.js`,numberOfLines:`7`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`7`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` character`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` fetch`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" `https://api.aurous-labs.com/v1/characters/\"}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:\"${\"}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`id`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\"/refs/upper_back`\"}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`method:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"DELETE\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`headers:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"X-Api-Key\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` process`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`env`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`AUROUS_API_KEY`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`!`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`).`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`then`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`((`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`r`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`=>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` r`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`json`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`());`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`console`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`log`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`character`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`views`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`find`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`((`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`v`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`=>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` v`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`view`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` ===`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"upper_back\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`).`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`status`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`); `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// \"missing\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`console`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`log`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`character`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`build`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`missing_views`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`includes`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"upper_back\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)); `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// true`})]}),`\n`]})})}),_jsx(CodeBlock,{filename:`Python`,numberOfLines:`8`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`8`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` os, requests`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`r `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` requests.delete(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` f`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://api.aurous-labs.com/v1/characters/`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`{`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`character_id`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/refs/upper_back\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` headers`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"X-Api-Key\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: os.environ[`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"AUROUS_API_KEY\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]},`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`).json()`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`print`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`next`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(v `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`for`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` v `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`in`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` r[`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"views\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`] `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`if`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` v[`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"view\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`] `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`==`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"upper_back\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)[`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"status\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]) `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# missing`})]}),`\n`]})})})]}),`\n`,_jsx(Heading,{level:`2`,id:`path-parameters`,children:`Path parameters`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Parameter`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`id`})}),_jsxs(_components.td,{children:[`Opaque character id (`,_jsx(_components.code,{children:`char_…`}),`).`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`view`})}),_jsxs(_components.td,{children:[`One of `,_jsx(_components.code,{children:`head_front`}),`, `,_jsx(_components.code,{children:`upper_front`}),`, `,_jsx(_components.code,{children:`lower_front`}),`, `,_jsx(_components.code,{children:`upper_back`}),`, `,_jsx(_components.code,{children:`lower_back`}),`, `,_jsx(_components.code,{children:`full_left`}),`, `,_jsx(_components.code,{children:`full_front`}),`, `,_jsx(_components.code,{children:`full_right`}),`. Anything else is `,_jsx(_components.code,{children:`400 invalid_format`}),` (`,_jsx(_components.code,{children:`param: \"view\"`}),`) — and the same 400 fires whether or not the character exists, so it is not an existence probe.`]})]})]})]}),`\n`,_jsx(_components.p,{children:`There is no request body.`}),`\n`,_jsxs(Heading,{level:`2`,id:`removal-is-draft-only`,children:[`Removal is `,_jsx(_components.code,{children:`draft`}),`-only`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsxs(_components.th,{children:[`Character `,_jsx(_components.code,{children:`status`})]}),_jsx(_components.th,{children:_jsx(_components.code,{children:`DELETE /refs/{view}`})})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`draft`})}),_jsx(_components.td,{children:`Allowed.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`synthesizing`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`409 character_busy`}),` with `,_jsx(_components.code,{children:`Retry-After`}),` — a render is in flight.`]})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`failed`}),`, `,_jsx(_components.code,{children:`reviewing`}),`, `,_jsx(_components.code,{children:`ready`}),`, anything else`]}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`400 character_status_invalid`}),`, `,_jsx(_components.code,{children:`param: character_id`}),`.`]})]})]})]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`So a character whose build `,_jsx(_components.strong,{children:`failed`}),` can have a view `,_jsx(_components.strong,{children:`replaced`}),` (`,_jsx(_components.code,{children:`PUT`}),`) but not `,_jsx(_components.strong,{children:`removed`}),`, until the next successful build. Nothing was lost: the references you uploaded are stored on the character, not as expiring upload tickets, and `,_jsx(_components.a,{href:`/api-reference/characters/build-character`,children:_jsx(_components.code,{children:`POST /v1/characters/{id}/build`})}),` accepts `,_jsx(_components.code,{children:`failed`}),` precisely so a retry needs no re-upload.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`limits`,children:`Limits`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Cost`}),`: free. Removing a view renders nothing and charges nothing; it raises what the next build will cost, because there is one more view to render.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Rate limit`}),`: bucket `,_jsx(_components.code,{children:`characters_post`}),` — 30 requests/min sustained, 60 burst per team. Shared with the other cheap character writes (draft create, uploads init/classify, `,_jsx(_components.code,{children:`PATCH`}),`, `,_jsx(_components.code,{children:`DELETE /v1/characters/{id}`}),`, save).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Idempotency`}),`: no `,_jsx(_components.code,{children:`Idempotency-Key`}),` is needed. The operation is naturally idempotent — removing an already-empty view is a `,_jsx(_components.code,{children:`200`}),` with the character unchanged.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`errors`,children:`Errors`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Code`}),_jsx(_components.th,{children:`HTTP`}),_jsx(_components.th,{children:`When`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`invalid_format`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:`400`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`view`}),` is not one of the eight names. `,_jsx(_components.code,{children:`param`}),` is `,_jsx(_components.code,{children:`view`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`character_status_invalid`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:`400`}),_jsxs(_components.td,{children:[`The character is not a `,_jsx(_components.code,{children:`draft`}),`. `,_jsx(_components.code,{children:`param`}),` is `,_jsx(_components.code,{children:`character_id`}),`; the message names the current status and the statuses this operation accepts.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`invalid_api_key`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:`401`}),_jsxs(_components.td,{children:[`Missing, malformed, or revoked `,_jsx(_components.code,{children:`X-Api-Key`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`insufficient_scope`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:`403`}),_jsxs(_components.td,{children:[`The key does not carry the `,_jsx(_components.code,{children:`write`}),` scope.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`resource_not_found`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:`404`}),_jsx(_components.td,{children:`Unknown character id, soft-deleted, or cross-team. The 404 is intentional — cross-team existence is never leaked.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`character_busy`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:`409`}),_jsxs(_components.td,{children:[`A render is in flight; retry after `,_jsx(_components.code,{children:`Retry-After`}),` seconds.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`too_many_requests`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:`429`}),_jsx(_components.td,{children:`Burst > 60 or sustained > 30/min.`})]})]})]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`These changes ship on the existing `,_jsx(_components.code,{children:`2026-08-26`}),` contract. No `,_jsx(_components.code,{children:`Aurous-Version`}),` pin isolates them: the version catalogue carries image and video pricing pointers only, not character pricing or the size of the reference set. Pinning an earlier `,_jsx(_components.code,{children:`Aurous-Version`}),` restores neither the smaller reference set nor the previous price. A character created before 2026-09-14 keeps the references it already has — add either of the two newer views on demand with `,_jsx(_components.a,{href:`/api-reference/characters/regenerate-view`,children:_jsx(_components.code,{children:`POST /v1/characters/{id}/refs/{view}/regenerate`})}),`; every character created on or after that date carries eight.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`common-pitfalls`,children:`Common pitfalls`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`This removes `,_jsx(_components.strong,{children:`a view`}),`, not the character. To delete the character itself use `,_jsx(_components.a,{href:`/api-reference/characters/delete-character`,children:_jsx(_components.code,{children:`DELETE /v1/characters/{id}`})}),`, which hard-deletes a `,_jsx(_components.code,{children:`draft`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Removing a view `,_jsx(_components.strong,{children:`raises`}),` `,_jsx(_components.code,{children:`build.cost_credits`}),` — you have given the platform one more view to render. Re-read `,_jsx(_components.code,{children:`build`}),` after every change rather than caching a quote.`]}),`\n`,_jsxs(_components.li,{children:[`The `,_jsx(_components.code,{children:`200`}),` on an already-empty view is deliberate, so a retry after a dropped connection is safe. Don’t treat it as “the view existed”.`]}),`\n`,_jsx(_components.li,{children:`Removing the view your cover pointed at clears the cover; the head view is the default cover when none is set.`}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Remove a view from a draft","description":"Empty one named view on a draft so the next build renders it instead of keeping your photo.","openapi":"DELETE /v1/characters/{id}/refs/{view}","href":"/api-reference/characters/delete-ref"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"When to use","slug":"when-to-use","depth":2,"children":[]},{"title":"Examples","slug":"examples","depth":2,"children":[]},{"title":"Path parameters","slug":"path-parameters","depth":2,"children":[]},{"title":"Removal is draft-only","slug":"removal-is-draft-only","depth":2,"children":[]},{"title":"Limits","slug":"limits","depth":2,"children":[]},{"title":"Errors","slug":"errors","depth":2,"children":[]},{"title":"Common pitfalls","slug":"common-pitfalls","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"description":"Empty one named view on a draft so the next build renders it instead of keeping your photo.","operationId":"V1CharactersController_deleteReference","parameters":["779c54a1-b361-4ccd-b2e8-1c28bc84906f","300be34d-4a5f-40eb-a02a-f8a7bf711afa","ab879f70-39f7-4bc5-9709-fbfb35f58885"],"responses":{"200":"731d2521-43db-4b46-a82e-b783545cb372","400":"41a1b717-ecff-4926-ae1e-e0732380cbbe","401":"3843798e-e629-4d77-97b9-d2ee94a27c22","403":"14fe7b98-a850-44d3-8771-ef53690ef9ef","404":"882efc5d-2019-46c4-9962-2157abb18f49","409":"922a33c9-8af1-4936-be31-7e82b722c437","429":"e582d6ed-91ad-478c-b553-fabee52f5a6b","503":"e20f6752-61d7-477b-b8d0-42b1234c089d"},"security":["765c76ab-1405-4bab-a9ed-04ea7b9e324e"],"summary":"Remove a view from a draft","tags":["Public API (v1) — Characters"],"method":"delete","type":"path","servers":["3c5b35fe-5556-4c2f-b6fe-ccd0ce11e7d4","06ffff55-b13c-4345-afa1-017ab3f24f1d"],"path":"/v1/characters/{id}/refs/{view}","baseUrlOptions":["https://api.aurous-labs.com","https://api.preprod.aurous-labs.com"],"title":"Remove a view from a draft","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"779c54a1-b361-4ccd-b2e8-1c28bc84906f":{"name":"id","required":true,"in":"path","description":"Opaque character ID","schema":{"example":"char_01HXMQ7Z3K8Y2NABCDEFGHJKMR","type":"string","isRequired":true,"description":"Opaque character ID","uniqueKey":"","typeLabel":"string"}},"300be34d-4a5f-40eb-a02a-f8a7bf711afa":{"name":"view","required":true,"in":"path","description":"The view to empty","schema":{"type":"string","enum":["head_front","upper_front","lower_front","upper_back","lower_back","full_left","full_front","full_right"],"isRequired":true,"description":"The view to empty","uniqueKey":"","typeLabel":"enum\u003cstring>"}},"ab879f70-39f7-4bc5-9709-fbfb35f58885":{"name":"Aurous-Version","in":"header","required":false,"description":"Optional API version pin (YYYY-MM-DD). Omit the header to receive the platform default, currently `2026-08-26`.","schema":{"type":"string","example":"2026-08-26","pattern":"^\\d{4}-\\d{2}-\\d{2}$","isRequired":false,"description":"Optional API version pin (YYYY-MM-DD). Omit the header to receive the platform default, currently `2026-08-26`.","uniqueKey":"","typeLabel":"string"}}},"responses":{"731d2521-43db-4b46-a82e-b783545cb372":{"description":"View emptied (or already empty); updated character returned","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Opaque character ID.","example":"char_01HXMQ7Z3K8Y2NABCDEFGHJKMR","isRequired":true,"uniqueKey":"id","typeLabel":"string"},"object":{"type":"string","description":"Discriminator","example":"character","enum":["character"],"isRequired":true,"uniqueKey":"object","typeLabel":"enum\u003cstring>"},"name":{"type":"string","description":"Display name.","example":"Aurora the Adventurer","isRequired":true,"uniqueKey":"name","typeLabel":"string"},"status":{"type":"string","description":"Lifecycle state. `draft`: references are being assembled; nothing has been charged and the character cannot be used for generation. New lifecycle states may be added in future — treat any status other than `ready` as \"not yet usable\". `synthesizing`: references are being built. `ready`: usable on POST /v1/images — both create flows advance here on their own. `reviewing`: reached only after POST /:id/resynthesize or POST /:id/build; call POST /:id/save to return to `ready`. `failed`: the build failed; `error_message` carries the reason and POST /:id/build (builder characters) or POST /:id/resynthesize retries. `deleted`: soft-deleted (filtered out of the list endpoint).","example":"ready","enum":["draft","synthesizing","reviewing","ready","failed","deleted"],"isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"nudity":{"type":"string","description":"What the reference set is rendered as — `nude` unless you chose `clothed`, or — when you omitted `nudity` — your team's default is `clothed`. An explicit value always wins. Fixed once the references are built.","enum":["nude","clothed"],"example":"clothed","isRequired":true,"uniqueKey":"nudity","typeLabel":"enum\u003cstring>"},"refs":{"description":"Reference images, one per view the character has. A character built today has eight; an older one can have fewer than eight (typically six, some of the oldest four). Do not assume a count — read `views[]`, the canonical read model for new integrations, or `build.missing_views`. `refs[]` lists only the references that exist.","type":"array","items":{"type":"object","properties":{"pose":{"type":"string","description":"Pose label for this reference image.","enum":["portrait","front","side","back","other"],"example":"front","isRequired":true,"uniqueKey":"refs.items.[INDEX].pose","typeLabel":"enum\u003cstring>"},"view":{"type":"string","description":"One of the eight named views, or `other` for rows created before named views existed. Prefer `view` over `pose` — `pose` is the original five-value label kept for compatibility.","enum":["head_front","upper_front","lower_front","upper_back","lower_back","full_left","full_front","full_right","other"],"example":"full_front","isRequired":true,"uniqueKey":"refs.items.[INDEX].view","typeLabel":"enum\u003cstring>"},"source":{"type":"string","description":"`uploaded` — a photo you supplied for this view with PUT /v1/characters/{id}/refs/{view}, used as-is and never re-rendered (a build skips it, and a per-view regenerate refuses it with 400 `reference_uploaded`). `generated` — rendered by the platform, whether by a create, a build or a regenerate. Both values occur today.","enum":["uploaded","generated"],"example":"generated","isRequired":true,"uniqueKey":"refs.items.[INDEX].source","typeLabel":"enum\u003cstring>"},"url":{"type":"string","description":"Time-limited signed URL for the ref image, on the platform's storage host. TTL is 24h — re-fetch the character (GET /v1/characters/{id}) to mint a fresh URL set when one expires. Treat the host as opaque and do not allowlist by hostname: it is not the API host and it is not part of the contract. Download the bytes, or re-read the character for a fresh URL.","example":"https://storage-host.example/storage/v1/object/sign/characters/full_front.jpg?token=eyJhbGciOi...","isRequired":true,"uniqueKey":"refs.items.[INDEX].url","typeLabel":"string"}},"required":["pose","view","source","url"],"uniqueKey":"refs.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"refs","typeLabel":"object[]"},"views":{"description":"One entry per named view, in canonical order — every reference that maps to a named view, keyed by view, plus what is missing or was rejected. A reference from before named views existed (`refs[].view` is `other`) appears only in `refs[]`.","type":"array","items":{"type":"object","properties":{"view":{"type":"string","description":"The view this slot represents. Always one of the eight; never `other`.","enum":["head_front","upper_front","lower_front","upper_back","lower_back","full_left","full_front","full_right"],"example":"full_front","isRequired":true,"uniqueKey":"views.items.[INDEX].view","typeLabel":"enum\u003cstring>"},"status":{"type":"string","description":"Slot state. `generated` — holds a platform render. `uploaded` — holds a photo you supplied with PUT /v1/characters/{id}/refs/{view}. `rejected` — your most recent photo for this slot was refused (see `reason`) and no accepted reference took its place; it is surfaced while the character is a `draft` and expires 24 h after the attempt, at which point the slot reads `missing` again. `missing` — empty; it is what a build renders. This is an OPEN set: new states may be added, so treat an unrecognized value as `missing`.","enum":["uploaded","generated","rejected","missing"],"example":"generated","isRequired":true,"uniqueKey":"views.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"url":{"oneOf":[{"type":"string","description":"Time-limited signed URL (24 h TTL) on the platform's storage host when `status` is `uploaded` or `generated`; `null` otherwise. Treat the host as opaque and do not allowlist by hostname — it is not the API host and it is not part of the contract.","example":null,"uniqueKey":"views.items.[INDEX].url.oneOf.0","typeLabel":"string"},{"type":"null","description":"Time-limited signed URL (24 h TTL) on the platform's storage host when `status` is `uploaded` or `generated`; `null` otherwise. Treat the host as opaque and do not allowlist by hostname — it is not the API host and it is not part of the contract.","example":null,"uniqueKey":"views.items.[INDEX].url.oneOf.1","typeLabel":"null"}],"uniqueKey":"views.items.[INDEX].url","typeLabel":"string | null"},"nudity":{"oneOf":[{"type":"string","description":"Whether this specific reference shows nudity. On a `clothed` character EVERY view reads `clothed`, uploaded or generated — the read model reports the set's rendering intent there. On a `nude` character a generated view reads `nude` and an UPLOADED view reports what the photo itself shows, which is how a mixed set arises: a clothed body photo filed onto a `nude` character is accepted deliberately and reads `clothed` while the character's own `nudity` stays `nude`. Compare the two to detect a mixed set. (The reverse is refused at intake: a nude photo on a `clothed` character is 422 `reference_unfit` with `reason: \"nudity_mismatch\"` — except on `head_front`, which carries no nudity rule.) `null` when the slot has no reference.","enum":["nude","clothed"],"example":"clothed","uniqueKey":"views.items.[INDEX].nudity.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Whether this specific reference shows nudity. On a `clothed` character EVERY view reads `clothed`, uploaded or generated — the read model reports the set's rendering intent there. On a `nude` character a generated view reads `nude` and an UPLOADED view reports what the photo itself shows, which is how a mixed set arises: a clothed body photo filed onto a `nude` character is accepted deliberately and reads `clothed` while the character's own `nudity` stays `nude`. Compare the two to detect a mixed set. (The reverse is refused at intake: a nude photo on a `clothed` character is 422 `reference_unfit` with `reason: \"nudity_mismatch\"` — except on `head_front`, which carries no nudity rule.) `null` when the slot has no reference.","enum":["nude","clothed"],"example":"clothed","uniqueKey":"views.items.[INDEX].nudity.oneOf.1","typeLabel":"null"}],"uniqueKey":"views.items.[INDEX].nudity","typeLabel":"enum\u003cstring> | null"},"reason":{"oneOf":[{"type":"string","description":"Why the most recent upload for this slot was refused. Present only when `status` is `rejected`. The same set as the `reason` on a 422 `reference_unfit`, plus the two byte-level codes (`invalid_format`, `value_out_of_range`) a photo can be refused for before the fit rules run — those two are error codes rather than fit reasons, so the 422 itself carries no `reason` for them. Branch on the value and treat anything unrecognized as a generic refusal.","enum":["too_small","extreme_aspect","no_person","multiple_people","no_face","wrong_view","nudity_mismatch","invalid_format","value_out_of_range"],"example":null,"uniqueKey":"views.items.[INDEX].reason.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Why the most recent upload for this slot was refused. Present only when `status` is `rejected`. The same set as the `reason` on a 422 `reference_unfit`, plus the two byte-level codes (`invalid_format`, `value_out_of_range`) a photo can be refused for before the fit rules run — those two are error codes rather than fit reasons, so the 422 itself carries no `reason` for them. Branch on the value and treat anything unrecognized as a generic refusal.","enum":["too_small","extreme_aspect","no_person","multiple_people","no_face","wrong_view","nudity_mismatch","invalid_format","value_out_of_range"],"example":null,"uniqueKey":"views.items.[INDEX].reason.oneOf.1","typeLabel":"null"}],"uniqueKey":"views.items.[INDEX].reason","typeLabel":"enum\u003cstring> | null"},"detected_view":{"oneOf":[{"type":"string","description":"Which view the refused photo actually looked like. Present only when `reason` is `wrong_view` — offer the customer that slot instead of asking for a new photo: the same upload ticket can be re-sent to that view without re-uploading. `null` on every other slot.","enum":["head_front","upper_front","lower_front","upper_back","lower_back","full_left","full_front","full_right","other"],"example":null,"uniqueKey":"views.items.[INDEX].detected_view.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Which view the refused photo actually looked like. Present only when `reason` is `wrong_view` — offer the customer that slot instead of asking for a new photo: the same upload ticket can be re-sent to that view without re-uploading. `null` on every other slot.","enum":["head_front","upper_front","lower_front","upper_back","lower_back","full_left","full_front","full_right","other"],"example":null,"uniqueKey":"views.items.[INDEX].detected_view.oneOf.1","typeLabel":"null"}],"uniqueKey":"views.items.[INDEX].detected_view","typeLabel":"enum\u003cstring> | null"},"made_from":{"oneOf":[{"description":"Which of your references this view was rendered from, by view name. `null` for a view you uploaded (it was not rendered from anything) and for a `missing` or `rejected` slot; `[]` for a generated view whose provenance was not recorded (rows predating provenance). Otherwise the view names it was conditioned on.","example":["head_front","full_front"],"type":"array","items":{"type":"string","uniqueKey":"views.items.[INDEX].made_from.oneOf.0.items.[INDEX]","typeLabel":"string"},"uniqueKey":"views.items.[INDEX].made_from.oneOf.0","typeLabel":"string[]"},{"description":"Which of your references this view was rendered from, by view name. `null` for a view you uploaded (it was not rendered from anything) and for a `missing` or `rejected` slot; `[]` for a generated view whose provenance was not recorded (rows predating provenance). Otherwise the view names it was conditioned on.","example":["head_front","full_front"],"type":"null","items":{"type":"string"},"uniqueKey":"views.items.[INDEX].made_from.oneOf.1","typeLabel":"null"}],"uniqueKey":"views.items.[INDEX].made_from","typeLabel":"string[] | null"}},"required":["view","status"],"uniqueKey":"views.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"views","typeLabel":"object[]"},"build":{"type":"object","description":"What a build would render and cost right now. Always present.","required":["missing_views","cost_credits","per_view_credits"],"properties":{"missing_views":{"type":"array","description":"Views with no reference, in canonical view order — what a build (or the equivalent per-view regenerates) would render right now.","example":["full_front","full_right"],"items":{"type":"string","enum":["head_front","upper_front","lower_front","upper_back","lower_back","full_left","full_front","full_right"],"uniqueKey":"build.missing_views.items.[INDEX]","typeLabel":"enum\u003cstring>"},"isRequired":true,"uniqueKey":"build.missing_views","typeLabel":"enum\u003cstring>[]"},"cost_credits":{"type":"number","description":"Credits the next build (or the equivalent per-view regenerates) will charge: `per_view_credits` × `missing_views.length`. Server-computed, and derived from the references that exist RIGHT NOW — so it is meaningful once the character is `ready` or `reviewing`. While it is `synthesizing` no view has been persisted yet, so this quotes every view still to come, not the remaining work.","isRequired":true,"uniqueKey":"build.cost_credits","typeLabel":"number"},"per_view_credits":{"type":"number","description":"Current price of one generated view, in credits (also the per-view regenerate price). Read it; never hard-code it — it is configuration, not a constant. On a `character.completed` webhook payload a `0` here means the price could not be read at the moment the event was emitted, not that views are free — re-read `GET /v1/characters/{id}` for the live value.","isRequired":true,"uniqueKey":"build.per_view_credits","typeLabel":"number"}},"isRequired":true,"uniqueKey":"build","typeLabel":"object"},"created_at":{"type":"string","description":"Creation timestamp (ISO 8601).","example":"2026-05-08T10:00:00Z","isRequired":true,"uniqueKey":"created_at","typeLabel":"string"},"updated_at":{"type":"string","description":"Last-update timestamp (ISO 8601).","example":"2026-05-08T10:00:00Z","isRequired":true,"uniqueKey":"updated_at","typeLabel":"string"},"client_reference_id":{"oneOf":[{"type":"string","description":"Caller-supplied reference echoed back (the value sent on create). Null if unset.","example":"bot_8472","uniqueKey":"client_reference_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Caller-supplied reference echoed back (the value sent on create). Null if unset.","example":"bot_8472","uniqueKey":"client_reference_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"client_reference_id","typeLabel":"string | null"},"attributes":{"oneOf":[{"type":"object","description":"Character attributes. Null when unset.","properties":{"gender":{"oneOf":[{"type":"string","example":"female","uniqueKey":"attributes.oneOf.0.gender.oneOf.0","typeLabel":"string"},{"type":"null","example":"female","uniqueKey":"attributes.oneOf.0.gender.oneOf.1","typeLabel":"null"}],"uniqueKey":"attributes.oneOf.0.gender","typeLabel":"string | null"},"age":{"oneOf":[{"type":"number","example":28,"uniqueKey":"attributes.oneOf.0.age.oneOf.0","typeLabel":"number"},{"type":"null","example":28,"uniqueKey":"attributes.oneOf.0.age.oneOf.1","typeLabel":"null"}],"uniqueKey":"attributes.oneOf.0.age","typeLabel":"number | null"},"ethnicity":{"oneOf":[{"type":"string","example":"east-asian","uniqueKey":"attributes.oneOf.0.ethnicity.oneOf.0","typeLabel":"string"},{"type":"null","example":"east-asian","uniqueKey":"attributes.oneOf.0.ethnicity.oneOf.1","typeLabel":"null"}],"uniqueKey":"attributes.oneOf.0.ethnicity","typeLabel":"string | null"},"hair_color":{"oneOf":[{"type":"string","example":"black","uniqueKey":"attributes.oneOf.0.hair_color.oneOf.0","typeLabel":"string"},{"type":"null","example":"black","uniqueKey":"attributes.oneOf.0.hair_color.oneOf.1","typeLabel":"null"}],"uniqueKey":"attributes.oneOf.0.hair_color","typeLabel":"string | null"},"hair_style":{"oneOf":[{"type":"string","example":"shoulder-length straight","uniqueKey":"attributes.oneOf.0.hair_style.oneOf.0","typeLabel":"string"},{"type":"null","example":"shoulder-length straight","uniqueKey":"attributes.oneOf.0.hair_style.oneOf.1","typeLabel":"null"}],"uniqueKey":"attributes.oneOf.0.hair_style","typeLabel":"string | null"},"eye_color":{"oneOf":[{"type":"string","example":"brown","uniqueKey":"attributes.oneOf.0.eye_color.oneOf.0","typeLabel":"string"},{"type":"null","example":"brown","uniqueKey":"attributes.oneOf.0.eye_color.oneOf.1","typeLabel":"null"}],"uniqueKey":"attributes.oneOf.0.eye_color","typeLabel":"string | null"},"body_type":{"oneOf":[{"type":"string","example":"athletic","uniqueKey":"attributes.oneOf.0.body_type.oneOf.0","typeLabel":"string"},{"type":"null","example":"athletic","uniqueKey":"attributes.oneOf.0.body_type.oneOf.1","typeLabel":"null"}],"uniqueKey":"attributes.oneOf.0.body_type","typeLabel":"string | null"},"additional_details":{"oneOf":[{"type":"string","description":"Free-text catch-all for attributes outside the typed fields.","example":"small scar above right eyebrow; warm smile","uniqueKey":"attributes.oneOf.0.additional_details.oneOf.0","typeLabel":"string"},{"type":"null","description":"Free-text catch-all for attributes outside the typed fields.","example":"small scar above right eyebrow; warm smile","uniqueKey":"attributes.oneOf.0.additional_details.oneOf.1","typeLabel":"null"}],"uniqueKey":"attributes.oneOf.0.additional_details","typeLabel":"string | null"}},"uniqueKey":"attributes.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"attributes.oneOf.1","typeLabel":"null"}],"uniqueKey":"attributes","typeLabel":"object | null"},"error_message":{"oneOf":[{"type":"string","description":"Machine-readable failure code from the most recent synthesize/resynthesize attempt. One of `synthesis_failed`, `synthesis_timeout`, `provider_unavailable` — a closed set to switch on, not customer-facing prose. Null when the most recent attempt succeeded (or none has run yet). Set on `failed`, but NOT failed-exclusive: a failed *resynthesize* restores the character to its prior working status (`reviewing`) rather than overwriting a good generation, so a `reviewing` row can carry a non-null code here — check this field for failure, not `status`. Cleared on the next resynthesize attempt and on success.","example":null,"uniqueKey":"error_message.oneOf.0","typeLabel":"string"},{"type":"null","description":"Machine-readable failure code from the most recent synthesize/resynthesize attempt. One of `synthesis_failed`, `synthesis_timeout`, `provider_unavailable` — a closed set to switch on, not customer-facing prose. Null when the most recent attempt succeeded (or none has run yet). Set on `failed`, but NOT failed-exclusive: a failed *resynthesize* restores the character to its prior working status (`reviewing`) rather than overwriting a good generation, so a `reviewing` row can carry a non-null code here — check this field for failure, not `status`. Cleared on the next resynthesize attempt and on success.","example":null,"uniqueKey":"error_message.oneOf.1","typeLabel":"null"}],"uniqueKey":"error_message","typeLabel":"string | null"},"aurous_version":{"type":"string","description":"API contract version applied at the time this row was minted (D25 — frozen for replay across future version bumps).","example":"2026-08-26","uniqueKey":"aurous_version","typeLabel":"string"}},"required":["id","object","name","status","nudity","refs","views","build","created_at","updated_at"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"id":"char_01HXMQ7Z3K8Y2NABCDEFGHJKMR","object":"character","name":"Aurora the Adventurer","status":"ready","nudity":"clothed","refs":[{"pose":"front","view":"full_front","source":"generated","url":"https://storage-host.example/storage/v1/object/sign/characters/full_front.jpg?token=eyJhbGciOi..."}],"views":[{"view":"full_front","status":"generated","url":null,"nudity":"clothed","reason":null,"detected_view":null,"made_from":["head_front","full_front"]}],"build":{"missing_views":["full_front","full_right"],"cost_credits":123,"per_view_credits":123},"created_at":"2026-05-08T10:00:00Z","updated_at":"2026-05-08T10:00:00Z","client_reference_id":"bot_8472","attributes":{"gender":"female","age":28,"ethnicity":"east-asian","hair_color":"black","hair_style":"shoulder-length straight","eye_color":"brown","body_type":"athletic","additional_details":"small scar above right eyebrow; warm smile"},"error_message":null,"aurous_version":"2026-08-26"}}},"exampleType":"generated"}},"headers":{"Aurous-Request-Id":{"description":"Server-minted request id. Quote this in support tickets.","schema":{"type":"string","example":"req_01HXMQ7Z3K8Y2NABCDEFGHJKMP"}},"Aurous-Version":{"description":"API version pin applied to this response (YYYY-MM-DD).","schema":{"type":"string","example":"2026-08-26"}},"X-RateLimit-Limit":{"description":"Bucket capacity (max tokens) for this endpoint class.","schema":{"type":"integer","example":120}},"X-RateLimit-Remaining":{"description":"Tokens remaining after this request.","schema":{"type":"integer","example":119}},"X-RateLimit-Reset":{"description":"Epoch seconds when the bucket would be full again, assuming no further requests.","schema":{"type":"integer","example":1700000060}}},"exampleType":"generated"},"41a1b717-ecff-4926-ae1e-e0732380cbbe":{"description":"Unknown view (`invalid_format`, param `view`) or the character is not a `draft` (`character_status_invalid`, param `character_id`)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","description":"Error payload","required":["type","code","message","doc_url","request_id"],"properties":{"type":{"type":"string","description":"Broad error category","example":"invalid_request","enum":["invalid_request","authentication","not_found","rate_limit","server_error"],"isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"code":{"type":"string","description":"Stable error code (programmatic discriminator). Closed-beta gate emits one of `account_pending`, `account_rejected`, `account_suspended` on 403.","example":"balance_too_low","enum":["invalid_request","missing_field","invalid_format","value_out_of_range","unsupported_lora_for_mode","generation_not_cancellable","prompt_blocked","reference_blocked","output_moderation_rejected","unknown_version","mutually_exclusive_input","character_not_ready","parameter_invalid_combination","character_status_invalid","character_busy","nudity_not_allowed","reference_unfit","reference_uploaded","build_requires_identity","style_retired","parameter_invalid","too_many_reference_images","action_not_available","upload_invalid","balance_too_low","idempotency_key_in_use","api_key_not_found","payload_too_large","missing_api_key","invalid_api_key","revoked_api_key","resource_not_found","forbidden_resource","account_pending","account_rejected","account_suspended","already_approved","already_rejected","already_suspended","invalid_reinstate_target","invalid_suspend_target","payment_not_reviewable","page_out_of_date","trial_already_used","cannot_moderate_admin","too_many_requests","concurrency_limit_exceeded","tpm_rate_limit_exceeded","internal_error","provider_unavailable","reference_check_unavailable","provider_timeout","provider_not_configured","invalid_time_range","invalid_bucket_width","too_many_buckets","too_many_group_by","invalid_filter","invalid_page_token","export_too_large","user_already_exists","self_invite_forbidden","invite_link_failed","invite_rate_limited","model_not_found","model_disabled","model_wrong_kind","max_tokens_exceeds_hard_cap","chat_model_misconfigured","embeddings_input_too_large","embeddings_unsupported_dimensions","pricing_frozen","provider_rate_limited","chat_provider_request_invalid","chat_provider_auth_failed","chat_provider_unavailable","max_input_tokens_exceeded","chat_provider_unknown_error","embeddings_provider_unknown_error","embeddings_batch_not_supported","embeddings_input_too_many_items","embeddings_video_unsupported","encoding_format_unsupported","missing_max_tokens_no_model_default","chat_cancel_target_not_found","chat_completion_not_found","chat_cancel_target_already_terminal","chat_cancel_target_not_cancellable","tool_choice_required_unsupported","response_format_too_large","response_format_too_deep","invalid_cursor","invalid_cursor_for_endpoint","model_slug_exists","output_expired","output_not_available","content_filtered","image_generation_failed","reference_media_invalid","reference_media_cap_reached","reference_fetch_failed","unsupported_auth_method","insufficient_scope","uploads_expired","character_resynthesize_in_progress","provider_unknown_error","first_frame_too_small"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Human-readable message","example":"Team available balance is 1.5 credits, generation requires 2.0.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"doc_url":{"type":"string","description":"Documentation link for this error code","example":"https://docs.aurous-labs.com/errors#balance_too_low","isRequired":true,"uniqueKey":"error.doc_url","typeLabel":"string"},"request_id":{"type":"string","description":"Echoes Aurous-Request-Id — quote in support tickets","example":"req_01HXMQ7Z3K8Y2VNABCDEFGHJKM","isRequired":true,"uniqueKey":"error.request_id","typeLabel":"string"},"param":{"oneOf":[{"type":"object","description":"Field name when the error is parameter-scoped","example":"prompt","uniqueKey":"error.param.oneOf.0","typeLabel":"object"},{"type":"null","description":"Field name when the error is parameter-scoped","example":"prompt","uniqueKey":"error.param.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.param","typeLabel":"object | null"},"reason":{"oneOf":[{"type":"string","description":"Sub-code refining `code`, for codes that document one. Present today only on `reference_unfit`; `null` otherwise. Branch on `code` first and treat an unrecognized `reason` as a generic failure of that code.","enum":["too_small","extreme_aspect","no_person","multiple_people","no_face","wrong_view","nudity_mismatch"],"example":"wrong_view","uniqueKey":"error.reason.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Sub-code refining `code`, for codes that document one. Present today only on `reference_unfit`; `null` otherwise. Branch on `code` first and treat an unrecognized `reason` as a generic failure of that code.","enum":["too_small","extreme_aspect","no_person","multiple_people","no_face","wrong_view","nudity_mismatch"],"example":"wrong_view","uniqueKey":"error.reason.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.reason","typeLabel":"enum\u003cstring> | null"},"detected_view":{"oneOf":[{"type":"string","description":"Present only on `reference_unfit` with `reason: \"wrong_view\"`: the view the rejected image actually depicts. Offer the customer that view instead of asking for a new photo — the same upload can be re-sent to it.","enum":["head_front","upper_front","lower_front","upper_back","lower_back","full_left","full_front","full_right","other"],"example":"full_left","uniqueKey":"error.detected_view.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Present only on `reference_unfit` with `reason: \"wrong_view\"`: the view the rejected image actually depicts. Offer the customer that view instead of asking for a new photo — the same upload can be re-sent to it.","enum":["head_front","upper_front","lower_front","upper_back","lower_back","full_left","full_front","full_right","other"],"example":"full_left","uniqueKey":"error.detected_view.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.detected_view","typeLabel":"enum\u003cstring> | null"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"invalid_request","code":"balance_too_low","message":"Team available balance is 1.5 credits, generation requires 2.0.","doc_url":"https://docs.aurous-labs.com/errors#balance_too_low","request_id":"req_01HXMQ7Z3K8Y2VNABCDEFGHJKM","param":"prompt","reason":"wrong_view","detected_view":"full_left"}}}},"exampleType":"generated"}},"headers":{"Aurous-Request-Id":{"description":"Server-minted request id. Quote this in support tickets.","schema":{"type":"string","example":"req_01HXMQ7Z3K8Y2NABCDEFGHJKMP"}},"Aurous-Version":{"description":"API version pin applied to this response (YYYY-MM-DD).","schema":{"type":"string","example":"2026-08-26"}},"X-RateLimit-Limit":{"description":"Bucket capacity (max tokens) for this endpoint class.","schema":{"type":"integer","example":120}},"X-RateLimit-Remaining":{"description":"Tokens remaining after this request.","schema":{"type":"integer","example":119}},"X-RateLimit-Reset":{"description":"Epoch seconds when the bucket would be full again, assuming no further requests.","schema":{"type":"integer","example":1700000060}}},"exampleType":"generated"},"3843798e-e629-4d77-97b9-d2ee94a27c22":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","description":"Error payload","required":["type","code","message","doc_url","request_id"],"properties":{"type":{"type":"string","description":"Broad error category","example":"invalid_request","enum":["invalid_request","authentication","not_found","rate_limit","server_error"],"isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"code":{"type":"string","description":"Stable error code (programmatic discriminator). Closed-beta gate emits one of `account_pending`, `account_rejected`, `account_suspended` on 403.","example":"balance_too_low","enum":["invalid_request","missing_field","invalid_format","value_out_of_range","unsupported_lora_for_mode","generation_not_cancellable","prompt_blocked","reference_blocked","output_moderation_rejected","unknown_version","mutually_exclusive_input","character_not_ready","parameter_invalid_combination","character_status_invalid","character_busy","nudity_not_allowed","reference_unfit","reference_uploaded","build_requires_identity","style_retired","parameter_invalid","too_many_reference_images","action_not_available","upload_invalid","balance_too_low","idempotency_key_in_use","api_key_not_found","payload_too_large","missing_api_key","invalid_api_key","revoked_api_key","resource_not_found","forbidden_resource","account_pending","account_rejected","account_suspended","already_approved","already_rejected","already_suspended","invalid_reinstate_target","invalid_suspend_target","payment_not_reviewable","page_out_of_date","trial_already_used","cannot_moderate_admin","too_many_requests","concurrency_limit_exceeded","tpm_rate_limit_exceeded","internal_error","provider_unavailable","reference_check_unavailable","provider_timeout","provider_not_configured","invalid_time_range","invalid_bucket_width","too_many_buckets","too_many_group_by","invalid_filter","invalid_page_token","export_too_large","user_already_exists","self_invite_forbidden","invite_link_failed","invite_rate_limited","model_not_found","model_disabled","model_wrong_kind","max_tokens_exceeds_hard_cap","chat_model_misconfigured","embeddings_input_too_large","embeddings_unsupported_dimensions","pricing_frozen","provider_rate_limited","chat_provider_request_invalid","chat_provider_auth_failed","chat_provider_unavailable","max_input_tokens_exceeded","chat_provider_unknown_error","embeddings_provider_unknown_error","embeddings_batch_not_supported","embeddings_input_too_many_items","embeddings_video_unsupported","encoding_format_unsupported","missing_max_tokens_no_model_default","chat_cancel_target_not_found","chat_completion_not_found","chat_cancel_target_already_terminal","chat_cancel_target_not_cancellable","tool_choice_required_unsupported","response_format_too_large","response_format_too_deep","invalid_cursor","invalid_cursor_for_endpoint","model_slug_exists","output_expired","output_not_available","content_filtered","image_generation_failed","reference_media_invalid","reference_media_cap_reached","reference_fetch_failed","unsupported_auth_method","insufficient_scope","uploads_expired","character_resynthesize_in_progress","provider_unknown_error","first_frame_too_small"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Human-readable message","example":"Team available balance is 1.5 credits, generation requires 2.0.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"doc_url":{"type":"string","description":"Documentation link for this error code","example":"https://docs.aurous-labs.com/errors#balance_too_low","isRequired":true,"uniqueKey":"error.doc_url","typeLabel":"string"},"request_id":{"type":"string","description":"Echoes Aurous-Request-Id — quote in support tickets","example":"req_01HXMQ7Z3K8Y2VNABCDEFGHJKM","isRequired":true,"uniqueKey":"error.request_id","typeLabel":"string"},"param":{"oneOf":[{"type":"object","description":"Field name when the error is parameter-scoped","example":"prompt","uniqueKey":"error.param.oneOf.0","typeLabel":"object"},{"type":"null","description":"Field name when the error is parameter-scoped","example":"prompt","uniqueKey":"error.param.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.param","typeLabel":"object | null"},"reason":{"oneOf":[{"type":"string","description":"Sub-code refining `code`, for codes that document one. Present today only on `reference_unfit`; `null` otherwise. Branch on `code` first and treat an unrecognized `reason` as a generic failure of that code.","enum":["too_small","extreme_aspect","no_person","multiple_people","no_face","wrong_view","nudity_mismatch"],"example":"wrong_view","uniqueKey":"error.reason.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Sub-code refining `code`, for codes that document one. Present today only on `reference_unfit`; `null` otherwise. Branch on `code` first and treat an unrecognized `reason` as a generic failure of that code.","enum":["too_small","extreme_aspect","no_person","multiple_people","no_face","wrong_view","nudity_mismatch"],"example":"wrong_view","uniqueKey":"error.reason.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.reason","typeLabel":"enum\u003cstring> | null"},"detected_view":{"oneOf":[{"type":"string","description":"Present only on `reference_unfit` with `reason: \"wrong_view\"`: the view the rejected image actually depicts. Offer the customer that view instead of asking for a new photo — the same upload can be re-sent to it.","enum":["head_front","upper_front","lower_front","upper_back","lower_back","full_left","full_front","full_right","other"],"example":"full_left","uniqueKey":"error.detected_view.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Present only on `reference_unfit` with `reason: \"wrong_view\"`: the view the rejected image actually depicts. Offer the customer that view instead of asking for a new photo — the same upload can be re-sent to it.","enum":["head_front","upper_front","lower_front","upper_back","lower_back","full_left","full_front","full_right","other"],"example":"full_left","uniqueKey":"error.detected_view.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.detected_view","typeLabel":"enum\u003cstring> | null"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"invalid_request","code":"balance_too_low","message":"Team available balance is 1.5 credits, generation requires 2.0.","doc_url":"https://docs.aurous-labs.com/errors#balance_too_low","request_id":"req_01HXMQ7Z3K8Y2VNABCDEFGHJKM","param":"prompt","reason":"wrong_view","detected_view":"full_left"}}}},"exampleType":"generated"}},"headers":{"Aurous-Request-Id":{"description":"Server-minted request id. Quote this in support tickets.","schema":{"type":"string","example":"req_01HXMQ7Z3K8Y2NABCDEFGHJKMP"}},"Aurous-Version":{"description":"API version pin applied to this response (YYYY-MM-DD).","schema":{"type":"string","example":"2026-08-26"}},"X-RateLimit-Limit":{"description":"Bucket capacity (max tokens) for this endpoint class.","schema":{"type":"integer","example":120}},"X-RateLimit-Remaining":{"description":"Tokens remaining after this request.","schema":{"type":"integer","example":119}},"X-RateLimit-Reset":{"description":"Epoch seconds when the bucket would be full again, assuming no further requests.","schema":{"type":"integer","example":1700000060}}},"exampleType":"generated"},"14fe7b98-a850-44d3-8771-ef53690ef9ef":{"description":"Account not approved for closed beta. error.code is one of `account_pending`, `account_rejected`, `account_suspended`. There is no retry — contact support to be approved.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","description":"Error payload","required":["type","code","message","doc_url","request_id"],"properties":{"type":{"type":"string","description":"Broad error category","example":"invalid_request","enum":["invalid_request","authentication","not_found","rate_limit","server_error"],"isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"code":{"type":"string","description":"Stable error code (programmatic discriminator). Closed-beta gate emits one of `account_pending`, `account_rejected`, `account_suspended` on 403.","example":"balance_too_low","enum":["invalid_request","missing_field","invalid_format","value_out_of_range","unsupported_lora_for_mode","generation_not_cancellable","prompt_blocked","reference_blocked","output_moderation_rejected","unknown_version","mutually_exclusive_input","character_not_ready","parameter_invalid_combination","character_status_invalid","character_busy","nudity_not_allowed","reference_unfit","reference_uploaded","build_requires_identity","style_retired","parameter_invalid","too_many_reference_images","action_not_available","upload_invalid","balance_too_low","idempotency_key_in_use","api_key_not_found","payload_too_large","missing_api_key","invalid_api_key","revoked_api_key","resource_not_found","forbidden_resource","account_pending","account_rejected","account_suspended","already_approved","already_rejected","already_suspended","invalid_reinstate_target","invalid_suspend_target","payment_not_reviewable","page_out_of_date","trial_already_used","cannot_moderate_admin","too_many_requests","concurrency_limit_exceeded","tpm_rate_limit_exceeded","internal_error","provider_unavailable","reference_check_unavailable","provider_timeout","provider_not_configured","invalid_time_range","invalid_bucket_width","too_many_buckets","too_many_group_by","invalid_filter","invalid_page_token","export_too_large","user_already_exists","self_invite_forbidden","invite_link_failed","invite_rate_limited","model_not_found","model_disabled","model_wrong_kind","max_tokens_exceeds_hard_cap","chat_model_misconfigured","embeddings_input_too_large","embeddings_unsupported_dimensions","pricing_frozen","provider_rate_limited","chat_provider_request_invalid","chat_provider_auth_failed","chat_provider_unavailable","max_input_tokens_exceeded","chat_provider_unknown_error","embeddings_provider_unknown_error","embeddings_batch_not_supported","embeddings_input_too_many_items","embeddings_video_unsupported","encoding_format_unsupported","missing_max_tokens_no_model_default","chat_cancel_target_not_found","chat_completion_not_found","chat_cancel_target_already_terminal","chat_cancel_target_not_cancellable","tool_choice_required_unsupported","response_format_too_large","response_format_too_deep","invalid_cursor","invalid_cursor_for_endpoint","model_slug_exists","output_expired","output_not_available","content_filtered","image_generation_failed","reference_media_invalid","reference_media_cap_reached","reference_fetch_failed","unsupported_auth_method","insufficient_scope","uploads_expired","character_resynthesize_in_progress","provider_unknown_error","first_frame_too_small"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Human-readable message","example":"Team available balance is 1.5 credits, generation requires 2.0.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"doc_url":{"type":"string","description":"Documentation link for this error code","example":"https://docs.aurous-labs.com/errors#balance_too_low","isRequired":true,"uniqueKey":"error.doc_url","typeLabel":"string"},"request_id":{"type":"string","description":"Echoes Aurous-Request-Id — quote in support tickets","example":"req_01HXMQ7Z3K8Y2VNABCDEFGHJKM","isRequired":true,"uniqueKey":"error.request_id","typeLabel":"string"},"param":{"oneOf":[{"type":"object","description":"Field name when the error is parameter-scoped","example":"prompt","uniqueKey":"error.param.oneOf.0","typeLabel":"object"},{"type":"null","description":"Field name when the error is parameter-scoped","example":"prompt","uniqueKey":"error.param.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.param","typeLabel":"object | null"},"reason":{"oneOf":[{"type":"string","description":"Sub-code refining `code`, for codes that document one. Present today only on `reference_unfit`; `null` otherwise. Branch on `code` first and treat an unrecognized `reason` as a generic failure of that code.","enum":["too_small","extreme_aspect","no_person","multiple_people","no_face","wrong_view","nudity_mismatch"],"example":"wrong_view","uniqueKey":"error.reason.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Sub-code refining `code`, for codes that document one. Present today only on `reference_unfit`; `null` otherwise. Branch on `code` first and treat an unrecognized `reason` as a generic failure of that code.","enum":["too_small","extreme_aspect","no_person","multiple_people","no_face","wrong_view","nudity_mismatch"],"example":"wrong_view","uniqueKey":"error.reason.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.reason","typeLabel":"enum\u003cstring> | null"},"detected_view":{"oneOf":[{"type":"string","description":"Present only on `reference_unfit` with `reason: \"wrong_view\"`: the view the rejected image actually depicts. Offer the customer that view instead of asking for a new photo — the same upload can be re-sent to it.","enum":["head_front","upper_front","lower_front","upper_back","lower_back","full_left","full_front","full_right","other"],"example":"full_left","uniqueKey":"error.detected_view.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Present only on `reference_unfit` with `reason: \"wrong_view\"`: the view the rejected image actually depicts. Offer the customer that view instead of asking for a new photo — the same upload can be re-sent to it.","enum":["head_front","upper_front","lower_front","upper_back","lower_back","full_left","full_front","full_right","other"],"example":"full_left","uniqueKey":"error.detected_view.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.detected_view","typeLabel":"enum\u003cstring> | null"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"invalid_request","code":"balance_too_low","message":"Team available balance is 1.5 credits, generation requires 2.0.","doc_url":"https://docs.aurous-labs.com/errors#balance_too_low","request_id":"req_01HXMQ7Z3K8Y2VNABCDEFGHJKM","param":"prompt","reason":"wrong_view","detected_view":"full_left"}}}},"exampleType":"generated"}},"headers":{"Aurous-Request-Id":{"description":"Server-minted request id. Quote this in support tickets.","schema":{"type":"string","example":"req_01HXMQ7Z3K8Y2NABCDEFGHJKMP"}},"Aurous-Version":{"description":"API version pin applied to this response (YYYY-MM-DD).","schema":{"type":"string","example":"2026-08-26"}},"X-RateLimit-Limit":{"description":"Bucket capacity (max tokens) for this endpoint class.","schema":{"type":"integer","example":120}},"X-RateLimit-Remaining":{"description":"Tokens remaining after this request.","schema":{"type":"integer","example":119}},"X-RateLimit-Reset":{"description":"Epoch seconds when the bucket would be full again, assuming no further requests.","schema":{"type":"integer","example":1700000060}}},"exampleType":"generated"},"882efc5d-2019-46c4-9962-2157abb18f49":{"description":"Character not found / cross-team","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","description":"Error payload","required":["type","code","message","doc_url","request_id"],"properties":{"type":{"type":"string","description":"Broad error category","example":"invalid_request","enum":["invalid_request","authentication","not_found","rate_limit","server_error"],"isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"code":{"type":"string","description":"Stable error code (programmatic discriminator). Closed-beta gate emits one of `account_pending`, `account_rejected`, `account_suspended` on 403.","example":"balance_too_low","enum":["invalid_request","missing_field","invalid_format","value_out_of_range","unsupported_lora_for_mode","generation_not_cancellable","prompt_blocked","reference_blocked","output_moderation_rejected","unknown_version","mutually_exclusive_input","character_not_ready","parameter_invalid_combination","character_status_invalid","character_busy","nudity_not_allowed","reference_unfit","reference_uploaded","build_requires_identity","style_retired","parameter_invalid","too_many_reference_images","action_not_available","upload_invalid","balance_too_low","idempotency_key_in_use","api_key_not_found","payload_too_large","missing_api_key","invalid_api_key","revoked_api_key","resource_not_found","forbidden_resource","account_pending","account_rejected","account_suspended","already_approved","already_rejected","already_suspended","invalid_reinstate_target","invalid_suspend_target","payment_not_reviewable","page_out_of_date","trial_already_used","cannot_moderate_admin","too_many_requests","concurrency_limit_exceeded","tpm_rate_limit_exceeded","internal_error","provider_unavailable","reference_check_unavailable","provider_timeout","provider_not_configured","invalid_time_range","invalid_bucket_width","too_many_buckets","too_many_group_by","invalid_filter","invalid_page_token","export_too_large","user_already_exists","self_invite_forbidden","invite_link_failed","invite_rate_limited","model_not_found","model_disabled","model_wrong_kind","max_tokens_exceeds_hard_cap","chat_model_misconfigured","embeddings_input_too_large","embeddings_unsupported_dimensions","pricing_frozen","provider_rate_limited","chat_provider_request_invalid","chat_provider_auth_failed","chat_provider_unavailable","max_input_tokens_exceeded","chat_provider_unknown_error","embeddings_provider_unknown_error","embeddings_batch_not_supported","embeddings_input_too_many_items","embeddings_video_unsupported","encoding_format_unsupported","missing_max_tokens_no_model_default","chat_cancel_target_not_found","chat_completion_not_found","chat_cancel_target_already_terminal","chat_cancel_target_not_cancellable","tool_choice_required_unsupported","response_format_too_large","response_format_too_deep","invalid_cursor","invalid_cursor_for_endpoint","model_slug_exists","output_expired","output_not_available","content_filtered","image_generation_failed","reference_media_invalid","reference_media_cap_reached","reference_fetch_failed","unsupported_auth_method","insufficient_scope","uploads_expired","character_resynthesize_in_progress","provider_unknown_error","first_frame_too_small"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Human-readable message","example":"Team available balance is 1.5 credits, generation requires 2.0.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"doc_url":{"type":"string","description":"Documentation link for this error code","example":"https://docs.aurous-labs.com/errors#balance_too_low","isRequired":true,"uniqueKey":"error.doc_url","typeLabel":"string"},"request_id":{"type":"string","description":"Echoes Aurous-Request-Id — quote in support tickets","example":"req_01HXMQ7Z3K8Y2VNABCDEFGHJKM","isRequired":true,"uniqueKey":"error.request_id","typeLabel":"string"},"param":{"oneOf":[{"type":"object","description":"Field name when the error is parameter-scoped","example":"prompt","uniqueKey":"error.param.oneOf.0","typeLabel":"object"},{"type":"null","description":"Field name when the error is parameter-scoped","example":"prompt","uniqueKey":"error.param.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.param","typeLabel":"object | null"},"reason":{"oneOf":[{"type":"string","description":"Sub-code refining `code`, for codes that document one. Present today only on `reference_unfit`; `null` otherwise. Branch on `code` first and treat an unrecognized `reason` as a generic failure of that code.","enum":["too_small","extreme_aspect","no_person","multiple_people","no_face","wrong_view","nudity_mismatch"],"example":"wrong_view","uniqueKey":"error.reason.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Sub-code refining `code`, for codes that document one. Present today only on `reference_unfit`; `null` otherwise. Branch on `code` first and treat an unrecognized `reason` as a generic failure of that code.","enum":["too_small","extreme_aspect","no_person","multiple_people","no_face","wrong_view","nudity_mismatch"],"example":"wrong_view","uniqueKey":"error.reason.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.reason","typeLabel":"enum\u003cstring> | null"},"detected_view":{"oneOf":[{"type":"string","description":"Present only on `reference_unfit` with `reason: \"wrong_view\"`: the view the rejected image actually depicts. Offer the customer that view instead of asking for a new photo — the same upload can be re-sent to it.","enum":["head_front","upper_front","lower_front","upper_back","lower_back","full_left","full_front","full_right","other"],"example":"full_left","uniqueKey":"error.detected_view.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Present only on `reference_unfit` with `reason: \"wrong_view\"`: the view the rejected image actually depicts. Offer the customer that view instead of asking for a new photo — the same upload can be re-sent to it.","enum":["head_front","upper_front","lower_front","upper_back","lower_back","full_left","full_front","full_right","other"],"example":"full_left","uniqueKey":"error.detected_view.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.detected_view","typeLabel":"enum\u003cstring> | null"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"invalid_request","code":"balance_too_low","message":"Team available balance is 1.5 credits, generation requires 2.0.","doc_url":"https://docs.aurous-labs.com/errors#balance_too_low","request_id":"req_01HXMQ7Z3K8Y2VNABCDEFGHJKM","param":"prompt","reason":"wrong_view","detected_view":"full_left"}}}},"exampleType":"generated"}},"headers":{"Aurous-Request-Id":{"description":"Server-minted request id. Quote this in support tickets.","schema":{"type":"string","example":"req_01HXMQ7Z3K8Y2NABCDEFGHJKMP"}},"Aurous-Version":{"description":"API version pin applied to this response (YYYY-MM-DD).","schema":{"type":"string","example":"2026-08-26"}},"X-RateLimit-Limit":{"description":"Bucket capacity (max tokens) for this endpoint class.","schema":{"type":"integer","example":120}},"X-RateLimit-Remaining":{"description":"Tokens remaining after this request.","schema":{"type":"integer","example":119}},"X-RateLimit-Reset":{"description":"Epoch seconds when the bucket would be full again, assuming no further requests.","schema":{"type":"integer","example":1700000060}}},"exampleType":"generated"},"922a33c9-8af1-4936-be31-7e82b722c437":{"description":"A render is in flight (`character_busy`, retry after `Retry-After` seconds)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","description":"Error payload","required":["type","code","message","doc_url","request_id"],"properties":{"type":{"type":"string","description":"Broad error category","example":"invalid_request","enum":["invalid_request","authentication","not_found","rate_limit","server_error"],"isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"code":{"type":"string","description":"Stable error code (programmatic discriminator). Closed-beta gate emits one of `account_pending`, `account_rejected`, `account_suspended` on 403.","example":"balance_too_low","enum":["invalid_request","missing_field","invalid_format","value_out_of_range","unsupported_lora_for_mode","generation_not_cancellable","prompt_blocked","reference_blocked","output_moderation_rejected","unknown_version","mutually_exclusive_input","character_not_ready","parameter_invalid_combination","character_status_invalid","character_busy","nudity_not_allowed","reference_unfit","reference_uploaded","build_requires_identity","style_retired","parameter_invalid","too_many_reference_images","action_not_available","upload_invalid","balance_too_low","idempotency_key_in_use","api_key_not_found","payload_too_large","missing_api_key","invalid_api_key","revoked_api_key","resource_not_found","forbidden_resource","account_pending","account_rejected","account_suspended","already_approved","already_rejected","already_suspended","invalid_reinstate_target","invalid_suspend_target","payment_not_reviewable","page_out_of_date","trial_already_used","cannot_moderate_admin","too_many_requests","concurrency_limit_exceeded","tpm_rate_limit_exceeded","internal_error","provider_unavailable","reference_check_unavailable","provider_timeout","provider_not_configured","invalid_time_range","invalid_bucket_width","too_many_buckets","too_many_group_by","invalid_filter","invalid_page_token","export_too_large","user_already_exists","self_invite_forbidden","invite_link_failed","invite_rate_limited","model_not_found","model_disabled","model_wrong_kind","max_tokens_exceeds_hard_cap","chat_model_misconfigured","embeddings_input_too_large","embeddings_unsupported_dimensions","pricing_frozen","provider_rate_limited","chat_provider_request_invalid","chat_provider_auth_failed","chat_provider_unavailable","max_input_tokens_exceeded","chat_provider_unknown_error","embeddings_provider_unknown_error","embeddings_batch_not_supported","embeddings_input_too_many_items","embeddings_video_unsupported","encoding_format_unsupported","missing_max_tokens_no_model_default","chat_cancel_target_not_found","chat_completion_not_found","chat_cancel_target_already_terminal","chat_cancel_target_not_cancellable","tool_choice_required_unsupported","response_format_too_large","response_format_too_deep","invalid_cursor","invalid_cursor_for_endpoint","model_slug_exists","output_expired","output_not_available","content_filtered","image_generation_failed","reference_media_invalid","reference_media_cap_reached","reference_fetch_failed","unsupported_auth_method","insufficient_scope","uploads_expired","character_resynthesize_in_progress","provider_unknown_error","first_frame_too_small"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Human-readable message","example":"Team available balance is 1.5 credits, generation requires 2.0.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"doc_url":{"type":"string","description":"Documentation link for this error code","example":"https://docs.aurous-labs.com/errors#balance_too_low","isRequired":true,"uniqueKey":"error.doc_url","typeLabel":"string"},"request_id":{"type":"string","description":"Echoes Aurous-Request-Id — quote in support tickets","example":"req_01HXMQ7Z3K8Y2VNABCDEFGHJKM","isRequired":true,"uniqueKey":"error.request_id","typeLabel":"string"},"param":{"oneOf":[{"type":"object","description":"Field name when the error is parameter-scoped","example":"prompt","uniqueKey":"error.param.oneOf.0","typeLabel":"object"},{"type":"null","description":"Field name when the error is parameter-scoped","example":"prompt","uniqueKey":"error.param.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.param","typeLabel":"object | null"},"reason":{"oneOf":[{"type":"string","description":"Sub-code refining `code`, for codes that document one. Present today only on `reference_unfit`; `null` otherwise. Branch on `code` first and treat an unrecognized `reason` as a generic failure of that code.","enum":["too_small","extreme_aspect","no_person","multiple_people","no_face","wrong_view","nudity_mismatch"],"example":"wrong_view","uniqueKey":"error.reason.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Sub-code refining `code`, for codes that document one. Present today only on `reference_unfit`; `null` otherwise. Branch on `code` first and treat an unrecognized `reason` as a generic failure of that code.","enum":["too_small","extreme_aspect","no_person","multiple_people","no_face","wrong_view","nudity_mismatch"],"example":"wrong_view","uniqueKey":"error.reason.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.reason","typeLabel":"enum\u003cstring> | null"},"detected_view":{"oneOf":[{"type":"string","description":"Present only on `reference_unfit` with `reason: \"wrong_view\"`: the view the rejected image actually depicts. Offer the customer that view instead of asking for a new photo — the same upload can be re-sent to it.","enum":["head_front","upper_front","lower_front","upper_back","lower_back","full_left","full_front","full_right","other"],"example":"full_left","uniqueKey":"error.detected_view.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Present only on `reference_unfit` with `reason: \"wrong_view\"`: the view the rejected image actually depicts. Offer the customer that view instead of asking for a new photo — the same upload can be re-sent to it.","enum":["head_front","upper_front","lower_front","upper_back","lower_back","full_left","full_front","full_right","other"],"example":"full_left","uniqueKey":"error.detected_view.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.detected_view","typeLabel":"enum\u003cstring> | null"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"invalid_request","code":"balance_too_low","message":"Team available balance is 1.5 credits, generation requires 2.0.","doc_url":"https://docs.aurous-labs.com/errors#balance_too_low","request_id":"req_01HXMQ7Z3K8Y2VNABCDEFGHJKM","param":"prompt","reason":"wrong_view","detected_view":"full_left"}}}},"exampleType":"generated"}},"headers":{"Aurous-Request-Id":{"description":"Server-minted request id. Quote this in support tickets.","schema":{"type":"string","example":"req_01HXMQ7Z3K8Y2NABCDEFGHJKMP"}},"Aurous-Version":{"description":"API version pin applied to this response (YYYY-MM-DD).","schema":{"type":"string","example":"2026-08-26"}},"X-RateLimit-Limit":{"description":"Bucket capacity (max tokens) for this endpoint class.","schema":{"type":"integer","example":120}},"X-RateLimit-Remaining":{"description":"Tokens remaining after this request.","schema":{"type":"integer","example":119}},"X-RateLimit-Reset":{"description":"Epoch seconds when the bucket would be full again, assuming no further requests.","schema":{"type":"integer","example":1700000060}},"Retry-After":{"description":"Seconds to wait before retrying. Present on 429 (rate limit), on 503 provider_unavailable, and on 409 character_busy. Prefer this over computing X-RateLimit-Reset − now.","schema":{"type":"integer","example":12}}},"exampleType":"generated"},"e582d6ed-91ad-478c-b553-fabee52f5a6b":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","description":"Error payload","required":["type","code","message","doc_url","request_id"],"properties":{"type":{"type":"string","description":"Broad error category","example":"invalid_request","enum":["invalid_request","authentication","not_found","rate_limit","server_error"],"isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"code":{"type":"string","description":"Stable error code (programmatic discriminator). Closed-beta gate emits one of `account_pending`, `account_rejected`, `account_suspended` on 403.","example":"balance_too_low","enum":["invalid_request","missing_field","invalid_format","value_out_of_range","unsupported_lora_for_mode","generation_not_cancellable","prompt_blocked","reference_blocked","output_moderation_rejected","unknown_version","mutually_exclusive_input","character_not_ready","parameter_invalid_combination","character_status_invalid","character_busy","nudity_not_allowed","reference_unfit","reference_uploaded","build_requires_identity","style_retired","parameter_invalid","too_many_reference_images","action_not_available","upload_invalid","balance_too_low","idempotency_key_in_use","api_key_not_found","payload_too_large","missing_api_key","invalid_api_key","revoked_api_key","resource_not_found","forbidden_resource","account_pending","account_rejected","account_suspended","already_approved","already_rejected","already_suspended","invalid_reinstate_target","invalid_suspend_target","payment_not_reviewable","page_out_of_date","trial_already_used","cannot_moderate_admin","too_many_requests","concurrency_limit_exceeded","tpm_rate_limit_exceeded","internal_error","provider_unavailable","reference_check_unavailable","provider_timeout","provider_not_configured","invalid_time_range","invalid_bucket_width","too_many_buckets","too_many_group_by","invalid_filter","invalid_page_token","export_too_large","user_already_exists","self_invite_forbidden","invite_link_failed","invite_rate_limited","model_not_found","model_disabled","model_wrong_kind","max_tokens_exceeds_hard_cap","chat_model_misconfigured","embeddings_input_too_large","embeddings_unsupported_dimensions","pricing_frozen","provider_rate_limited","chat_provider_request_invalid","chat_provider_auth_failed","chat_provider_unavailable","max_input_tokens_exceeded","chat_provider_unknown_error","embeddings_provider_unknown_error","embeddings_batch_not_supported","embeddings_input_too_many_items","embeddings_video_unsupported","encoding_format_unsupported","missing_max_tokens_no_model_default","chat_cancel_target_not_found","chat_completion_not_found","chat_cancel_target_already_terminal","chat_cancel_target_not_cancellable","tool_choice_required_unsupported","response_format_too_large","response_format_too_deep","invalid_cursor","invalid_cursor_for_endpoint","model_slug_exists","output_expired","output_not_available","content_filtered","image_generation_failed","reference_media_invalid","reference_media_cap_reached","reference_fetch_failed","unsupported_auth_method","insufficient_scope","uploads_expired","character_resynthesize_in_progress","provider_unknown_error","first_frame_too_small"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Human-readable message","example":"Team available balance is 1.5 credits, generation requires 2.0.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"doc_url":{"type":"string","description":"Documentation link for this error code","example":"https://docs.aurous-labs.com/errors#balance_too_low","isRequired":true,"uniqueKey":"error.doc_url","typeLabel":"string"},"request_id":{"type":"string","description":"Echoes Aurous-Request-Id — quote in support tickets","example":"req_01HXMQ7Z3K8Y2VNABCDEFGHJKM","isRequired":true,"uniqueKey":"error.request_id","typeLabel":"string"},"param":{"oneOf":[{"type":"object","description":"Field name when the error is parameter-scoped","example":"prompt","uniqueKey":"error.param.oneOf.0","typeLabel":"object"},{"type":"null","description":"Field name when the error is parameter-scoped","example":"prompt","uniqueKey":"error.param.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.param","typeLabel":"object | null"},"reason":{"oneOf":[{"type":"string","description":"Sub-code refining `code`, for codes that document one. Present today only on `reference_unfit`; `null` otherwise. Branch on `code` first and treat an unrecognized `reason` as a generic failure of that code.","enum":["too_small","extreme_aspect","no_person","multiple_people","no_face","wrong_view","nudity_mismatch"],"example":"wrong_view","uniqueKey":"error.reason.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Sub-code refining `code`, for codes that document one. Present today only on `reference_unfit`; `null` otherwise. Branch on `code` first and treat an unrecognized `reason` as a generic failure of that code.","enum":["too_small","extreme_aspect","no_person","multiple_people","no_face","wrong_view","nudity_mismatch"],"example":"wrong_view","uniqueKey":"error.reason.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.reason","typeLabel":"enum\u003cstring> | null"},"detected_view":{"oneOf":[{"type":"string","description":"Present only on `reference_unfit` with `reason: \"wrong_view\"`: the view the rejected image actually depicts. Offer the customer that view instead of asking for a new photo — the same upload can be re-sent to it.","enum":["head_front","upper_front","lower_front","upper_back","lower_back","full_left","full_front","full_right","other"],"example":"full_left","uniqueKey":"error.detected_view.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Present only on `reference_unfit` with `reason: \"wrong_view\"`: the view the rejected image actually depicts. Offer the customer that view instead of asking for a new photo — the same upload can be re-sent to it.","enum":["head_front","upper_front","lower_front","upper_back","lower_back","full_left","full_front","full_right","other"],"example":"full_left","uniqueKey":"error.detected_view.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.detected_view","typeLabel":"enum\u003cstring> | null"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"invalid_request","code":"balance_too_low","message":"Team available balance is 1.5 credits, generation requires 2.0.","doc_url":"https://docs.aurous-labs.com/errors#balance_too_low","request_id":"req_01HXMQ7Z3K8Y2VNABCDEFGHJKM","param":"prompt","reason":"wrong_view","detected_view":"full_left"}}}},"exampleType":"generated"}},"headers":{"Aurous-Request-Id":{"description":"Server-minted request id. Quote this in support tickets.","schema":{"type":"string","example":"req_01HXMQ7Z3K8Y2NABCDEFGHJKMP"}},"Aurous-Version":{"description":"API version pin applied to this response (YYYY-MM-DD).","schema":{"type":"string","example":"2026-08-26"}},"X-RateLimit-Limit":{"description":"Bucket capacity (max tokens) for this endpoint class.","schema":{"type":"integer","example":120}},"X-RateLimit-Remaining":{"description":"Tokens remaining after this request.","schema":{"type":"integer","example":119}},"X-RateLimit-Reset":{"description":"Epoch seconds when the bucket would be full again, assuming no further requests.","schema":{"type":"integer","example":1700000060}},"Retry-After":{"description":"Seconds to wait before retrying. Present on 429 (rate limit), on 503 provider_unavailable, and on 409 character_busy. Prefer this over computing X-RateLimit-Reset − now.","schema":{"type":"integer","example":12}}},"exampleType":"generated"},"e20f6752-61d7-477b-b8d0-42b1234c089d":{"description":"Character generation is temporarily unavailable, or the platform could not verify your account/billing state or prepare the request (for example, reference images) before dispatch — error.code is `provider_unavailable` in every case. Retry after the number of seconds in the `Retry-After` header.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","description":"Error payload","required":["type","code","message","doc_url","request_id"],"properties":{"type":{"type":"string","description":"Broad error category","example":"invalid_request","enum":["invalid_request","authentication","not_found","rate_limit","server_error"],"isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"code":{"type":"string","description":"Stable error code (programmatic discriminator). Closed-beta gate emits one of `account_pending`, `account_rejected`, `account_suspended` on 403.","example":"balance_too_low","enum":["invalid_request","missing_field","invalid_format","value_out_of_range","unsupported_lora_for_mode","generation_not_cancellable","prompt_blocked","reference_blocked","output_moderation_rejected","unknown_version","mutually_exclusive_input","character_not_ready","parameter_invalid_combination","character_status_invalid","character_busy","nudity_not_allowed","reference_unfit","reference_uploaded","build_requires_identity","style_retired","parameter_invalid","too_many_reference_images","action_not_available","upload_invalid","balance_too_low","idempotency_key_in_use","api_key_not_found","payload_too_large","missing_api_key","invalid_api_key","revoked_api_key","resource_not_found","forbidden_resource","account_pending","account_rejected","account_suspended","already_approved","already_rejected","already_suspended","invalid_reinstate_target","invalid_suspend_target","payment_not_reviewable","page_out_of_date","trial_already_used","cannot_moderate_admin","too_many_requests","concurrency_limit_exceeded","tpm_rate_limit_exceeded","internal_error","provider_unavailable","reference_check_unavailable","provider_timeout","provider_not_configured","invalid_time_range","invalid_bucket_width","too_many_buckets","too_many_group_by","invalid_filter","invalid_page_token","export_too_large","user_already_exists","self_invite_forbidden","invite_link_failed","invite_rate_limited","model_not_found","model_disabled","model_wrong_kind","max_tokens_exceeds_hard_cap","chat_model_misconfigured","embeddings_input_too_large","embeddings_unsupported_dimensions","pricing_frozen","provider_rate_limited","chat_provider_request_invalid","chat_provider_auth_failed","chat_provider_unavailable","max_input_tokens_exceeded","chat_provider_unknown_error","embeddings_provider_unknown_error","embeddings_batch_not_supported","embeddings_input_too_many_items","embeddings_video_unsupported","encoding_format_unsupported","missing_max_tokens_no_model_default","chat_cancel_target_not_found","chat_completion_not_found","chat_cancel_target_already_terminal","chat_cancel_target_not_cancellable","tool_choice_required_unsupported","response_format_too_large","response_format_too_deep","invalid_cursor","invalid_cursor_for_endpoint","model_slug_exists","output_expired","output_not_available","content_filtered","image_generation_failed","reference_media_invalid","reference_media_cap_reached","reference_fetch_failed","unsupported_auth_method","insufficient_scope","uploads_expired","character_resynthesize_in_progress","provider_unknown_error","first_frame_too_small"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Human-readable message","example":"Team available balance is 1.5 credits, generation requires 2.0.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"doc_url":{"type":"string","description":"Documentation link for this error code","example":"https://docs.aurous-labs.com/errors#balance_too_low","isRequired":true,"uniqueKey":"error.doc_url","typeLabel":"string"},"request_id":{"type":"string","description":"Echoes Aurous-Request-Id — quote in support tickets","example":"req_01HXMQ7Z3K8Y2VNABCDEFGHJKM","isRequired":true,"uniqueKey":"error.request_id","typeLabel":"string"},"param":{"oneOf":[{"type":"object","description":"Field name when the error is parameter-scoped","example":"prompt","uniqueKey":"error.param.oneOf.0","typeLabel":"object"},{"type":"null","description":"Field name when the error is parameter-scoped","example":"prompt","uniqueKey":"error.param.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.param","typeLabel":"object | null"},"reason":{"oneOf":[{"type":"string","description":"Sub-code refining `code`, for codes that document one. Present today only on `reference_unfit`; `null` otherwise. Branch on `code` first and treat an unrecognized `reason` as a generic failure of that code.","enum":["too_small","extreme_aspect","no_person","multiple_people","no_face","wrong_view","nudity_mismatch"],"example":"wrong_view","uniqueKey":"error.reason.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Sub-code refining `code`, for codes that document one. Present today only on `reference_unfit`; `null` otherwise. Branch on `code` first and treat an unrecognized `reason` as a generic failure of that code.","enum":["too_small","extreme_aspect","no_person","multiple_people","no_face","wrong_view","nudity_mismatch"],"example":"wrong_view","uniqueKey":"error.reason.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.reason","typeLabel":"enum\u003cstring> | null"},"detected_view":{"oneOf":[{"type":"string","description":"Present only on `reference_unfit` with `reason: \"wrong_view\"`: the view the rejected image actually depicts. Offer the customer that view instead of asking for a new photo — the same upload can be re-sent to it.","enum":["head_front","upper_front","lower_front","upper_back","lower_back","full_left","full_front","full_right","other"],"example":"full_left","uniqueKey":"error.detected_view.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Present only on `reference_unfit` with `reason: \"wrong_view\"`: the view the rejected image actually depicts. Offer the customer that view instead of asking for a new photo — the same upload can be re-sent to it.","enum":["head_front","upper_front","lower_front","upper_back","lower_back","full_left","full_front","full_right","other"],"example":"full_left","uniqueKey":"error.detected_view.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.detected_view","typeLabel":"enum\u003cstring> | null"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"invalid_request","code":"balance_too_low","message":"Team available balance is 1.5 credits, generation requires 2.0.","doc_url":"https://docs.aurous-labs.com/errors#balance_too_low","request_id":"req_01HXMQ7Z3K8Y2VNABCDEFGHJKM","param":"prompt","reason":"wrong_view","detected_view":"full_left"}}}},"exampleType":"generated"}},"headers":{"Aurous-Request-Id":{"description":"Server-minted request id. Quote this in support tickets.","schema":{"type":"string","example":"req_01HXMQ7Z3K8Y2NABCDEFGHJKMP"}},"Aurous-Version":{"description":"API version pin applied to this response (YYYY-MM-DD).","schema":{"type":"string","example":"2026-08-26"}},"X-RateLimit-Limit":{"description":"Bucket capacity (max tokens) for this endpoint class.","schema":{"type":"integer","example":120}},"X-RateLimit-Remaining":{"description":"Tokens remaining after this request.","schema":{"type":"integer","example":119}},"X-RateLimit-Reset":{"description":"Epoch seconds when the bucket would be full again, assuming no further requests.","schema":{"type":"integer","example":1700000060}},"Retry-After":{"description":"Seconds to wait before retrying. Present on 429 (rate limit), on 503 provider_unavailable, and on 409 character_busy. Prefer this over computing X-RateLimit-Reset − now.","schema":{"type":"integer","example":12}}},"exampleType":"generated"}},"security":{"765c76ab-1405-4bab-a9ed-04ea7b9e324e":{"api-key":{"type":"apiKey","in":"header","name":"X-Api-Key","description":"Your team API key (starts with `al_live_`).","scopes":[],"schemeName":"api-key"}}},"servers":{"3c5b35fe-5556-4c2f-b6fe-ccd0ce11e7d4":{"url":"https://api.aurous-labs.com","description":"Production"},"06ffff55-b13c-4345-afa1-017ab3f24f1d":{"url":"https://api.preprod.aurous-labs.com","description":"Preprod (staging)"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"X-Api-Key","description":"Your team API key (starts with `al_live_`).","scopes":[],"schemeName":"api-key"},"schema":{"title":"X-Api-Key","type":"string","description":"Your team API key (starts with `al_live_`).","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"api-key","name":"X-Api-Key"}],"title":"api-key"}]},"originalFileLocation":"api-reference/openapi.json"},"subdomain":"mayatech","siteName":"Aurous Labs","title":"Remove a view from a draft - Aurous Labs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-17T15:24:41.669Z","originalFileLocation":"api-reference/characters/delete-ref.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Empty one named view on a draft so the next build renders it instead of keeping your photo.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Aurous Labs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/mayatech/EexJ-zapST-7nua7/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/mayatech/EexJ-zapST-7nua7/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/mayatech/EexJ-zapST-7nua7/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/mayatech/EexJ-zapST-7nua7/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/mayatech/EexJ-zapST-7nua7/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/mayatech/EexJ-zapST-7nua7/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/mayatech/EexJ-zapST-7nua7/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/mayatech/EexJ-zapST-7nua7/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/mayatech/EexJ-zapST-7nua7/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Remove a view from a draft - Aurous Labs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Empty one named view on a draft so the next build renders it instead of keeping your photo.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Aurous Labs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.aurous-labs.com/api-reference/characters/delete-ref\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://mayatech.mintlify.app/_mintlify/api/og/v2?division=Characters\u0026amp;title=Remove+a+view+from+a+draft\u0026amp;description=Empty+one+named+view+on+a+draft+so+the+next+build+renders+it+instead+of+keeping+your+photo.\u0026amp;theme=a84e348be4cda03ca3be04c0\u0026amp;signature=6a56b63a18c7546d677cbcfefb93966ea3c1d9ec47b06c75826b53ae7e2dc8be\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Remove a view from a draft - Aurous Labs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Empty one named view on a draft so the next build renders it instead of keeping your photo.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://mayatech.mintlify.app/_mintlify/api/og/v2?division=Characters\u0026amp;title=Remove+a+view+from+a+draft\u0026amp;description=Empty+one+named+view+on+a+draft+so+the+next+build+renders+it+instead+of+keeping+your+photo.\u0026amp;theme=a84e348be4cda03ca3be04c0\u0026amp;signature=6a56b63a18c7546d677cbcfefb93966ea3c1d9ec47b06c75826b53ae7e2dc8be\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/mayatech/EexJ-zapST-7nua7/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Aurous Labs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#7C3AED\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.aurous-labs.com/api-reference/characters/delete-ref\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/characters/delete-ref.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.aurous-labs.com/#organization\",\"name\":\"Aurous Labs\",\"url\":\"https://docs.aurous-labs.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/mayatech/yW79tCRlCpJDDgoM/logo-light.png?fit=max\u0026auto=format\u0026n=yW79tCRlCpJDDgoM\u0026q=85\u0026s=f3dfa1506dde2b022b4496c2c2f55104\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.aurous-labs.com#website\",\"name\":\"Aurous Labs\",\"url\":\"https://docs.aurous-labs.com\",\"publisher\":{\"@id\":\"https://docs.aurous-labs.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.aurous-labs.com/api-reference/characters/delete-ref#webpage\",\"url\":\"https://docs.aurous-labs.com/api-reference/characters/delete-ref\",\"name\":\"Remove a view from a draft\",\"description\":\"Empty one named view on a draft so the next build renders it instead of keeping your photo.\",\"dateModified\":\"2026-09-17T15:24:41.669Z\",\"isPartOf\":{\"@id\":\"https://docs.aurous-labs.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.aurous-labs.com/api-reference/characters/delete-ref#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.aurous-labs.com/api-reference/characters/delete-ref#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"API Reference\",\"item\":\"https://docs.aurous-labs.com/api-reference/openapi\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Characters\",\"item\":\"https://docs.aurous-labs.com/api-reference/characters/views-and-lifecycle\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Remove a view from a draft\",\"item\":\"https://docs.aurous-labs.com/api-reference/characters/delete-ref\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.aurous-labs.com/api-reference/characters/delete-ref#apireference\",\"headline\":\"Remove a view from a draft\",\"name\":\"Remove a view from a draft\",\"description\":\"Empty one named view on a draft so the next build renders it instead of keeping your photo.\",\"url\":\"https://docs.aurous-labs.com/api-reference/characters/delete-ref\",\"mainEntityOfPage\":{\"@id\":\"https://docs.aurous-labs.com/api-reference/characters/delete-ref#webpage\"},\"dateModified\":\"2026-09-17T15:24:41.669Z\",\"publisher\":{\"@id\":\"https://docs.aurous-labs.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.aurous-labs.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Aurous Labs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Aurous Labs","nav":{"global":null,"groups":[{"group":"Get started","pages":[{"title":"Quickstart","href":"/quickstart"},{"title":"Authentication","href":"/authentication"}]},{"group":"Guides","pages":[{"title":"Drop in for OpenAI","href":"/guides/openai-drop-in"},{"title":"Choose a model","href":"/guides/model-comparison"},{"title":"How we count tokens","href":"/guides/how-we-count-tokens"},{"title":"Cost transparency","href":"/guides/cost-transparency"},{"title":"Error handling","href":"/guides/error-handling"},{"title":"Composition acts","href":"/guides/actions"}]},{"group":"Concepts","pages":[{"title":"Errors","href":"/errors"},{"title":"Idempotency","href":"/idempotency"},{"title":"Rate limits","href":"/rate-limits"},{"title":"Webhooks","href":"/webhooks"}]},{"group":"API Reference","pages":[{"title":"API Reference","href":"/api-reference/openapi"},{"group":"Images","pages":[{"title":"Models \u0026 pricing","href":"/api-reference/images/models-and-pricing"},{"title":"Create an image","openapi":"POST /v1/images","href":"/api-reference/images/create-image"},{"title":"List your generation history","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/images","href":"/api-reference/public-api-v1/list-your-generation-history"},{"title":"Retrieve an image","openapi":"GET /v1/images/{id}","href":"/api-reference/images/retrieve-image"},{"title":"Cancel a pending or processing generation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/images/{id}/cancel","href":"/api-reference/public-api-v1/cancel-a-pending-or-processing-generation"},{"title":"Estimate the credit cost of an image generation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/images/estimate","href":"/api-reference/public-api-v1/estimate-the-credit-cost-of-an-image-generation"},{"title":"Get a single generated image","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/images/{id}/output/{n}","href":"/api-reference/images-proxy/get-a-single-generated-image"}]},{"group":"Chat completions","pages":[{"title":"Chat completions","href":"/api-reference/chat/overview"},{"title":"Streaming","href":"/api-reference/chat/streaming"},{"title":"Tools and function calling","href":"/api-reference/chat/tools"},{"title":"Multimodal input","href":"/api-reference/chat/multimodal"},{"title":"Reasoning effort","href":"/api-reference/chat/reasoning"},{"title":"Structured output","href":"/api-reference/chat/structured-output"},{"title":"Chat idempotency","href":"/api-reference/chat/idempotency"},{"title":"Chat cancellation","href":"/api-reference/chat/cancellation"},{"title":"Pricing","href":"/api-reference/chat/pricing"},{"title":"Create a chat completion","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/chat/completions","href":"/api-reference/chat/create-a-chat-completion"},{"title":"Retrieve a stored chat completion","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/chat/completions/{id}","href":"/api-reference/chat/retrieve-a-stored-chat-completion"},{"title":"Cancel an in-flight chat completion","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/chat/completions/{id}/cancel","href":"/api-reference/chat/cancel-an-in-flight-chat-completion"},{"title":"List chat, embedding, video, and image models","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/models","href":"/api-reference/models/list-chat-embedding-video-and-image-models"}]},{"group":"Embeddings","pages":[{"title":"Embeddings","href":"/api-reference/embeddings/overview"},{"title":"Multimodal embeddings","href":"/api-reference/embeddings/multimodal"},{"title":"Output Dimensions","href":"/api-reference/embeddings/dimensions"},{"title":"Embedding limits","href":"/api-reference/embeddings/limits"},{"title":"URL fetching for image_url","href":"/api-reference/embeddings/url-fetching"},{"title":"OpenAI batch input is not supported","href":"/api-reference/embeddings/openai-batch-incompat"},{"title":"Pricing","href":"/api-reference/embeddings/pricing"},{"title":"Estimate Cost Before Embedding","href":"/api-reference/embeddings/estimate"},{"title":"Create embeddings","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/embeddings","href":"/api-reference/embeddings/create-embeddings"},{"title":"Estimate embedding credits","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/embeddings/estimate","href":"/api-reference/embeddings/estimate-embedding-credits"}]},{"group":"Characters","pages":[{"title":"Views and lifecycle","href":"/api-reference/characters/views-and-lifecycle"},{"title":"List character views","openapi":"GET /v1/characters/views","href":"/api-reference/characters/list-views"},{"title":"Mint a character upload URL","openapi":"POST /v1/characters/uploads/init","href":"/api-reference/characters/upload-init"},{"title":"Classify an uploaded ref","openapi":"POST /v1/characters/uploads/classify","href":"/api-reference/characters/upload-classify"},{"title":"Create a character draft","openapi":"POST /v1/characters/drafts","href":"/api-reference/characters/create-draft"},{"title":"Put a photo into a view","description":"File one of your own photos as the reference for one named view, after a fit check.","openapi":"PUT /v1/characters/{id}/refs/{view}","href":"/api-reference/characters/put-ref"},{"title":"Remove a view from a draft","openapi":"DELETE /v1/characters/{id}/refs/{view}","href":"/api-reference/characters/delete-ref"},{"title":"Build a character","description":"Render every view the character is still missing, leaving the photos you uploaded untouched.","openapi":"POST /v1/characters/{id}/build","href":"/api-reference/characters/build-character"},{"title":"Create a character","openapi":"POST /v1/characters","href":"/api-reference/characters/create-character"},{"title":"List characters","openapi":"GET /v1/characters","href":"/api-reference/characters/list-characters"},{"title":"Retrieve a character","openapi":"GET /v1/characters/{id}","href":"/api-reference/characters/retrieve-character"},{"title":"Update a character","openapi":"PATCH /v1/characters/{id}","href":"/api-reference/characters/update-character"},{"title":"Delete a character","openapi":"DELETE /v1/characters/{id}","href":"/api-reference/characters/delete-character"},{"title":"Regenerate a single ref pose","openapi":"POST /v1/characters/{id}/refs/regenerate","href":"/api-reference/characters/regenerate-ref"},{"title":"Regenerate a view","openapi":"POST /v1/characters/{id}/refs/{view}/regenerate","href":"/api-reference/characters/regenerate-view"},{"title":"Save a reviewing character","openapi":"POST /v1/characters/{id}/save","href":"/api-reference/characters/save-character"},{"title":"Resynthesize a character","openapi":"POST /v1/characters/{id}/resynthesize","href":"/api-reference/characters/resynthesize-character"}]},{"group":"Videos","pages":[{"title":"Create a video","openapi":"POST /v1/videos","href":"/api-reference/videos/create-video"},{"title":"Estimate the credit cost of a video generation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/videos/estimate","href":"/api-reference/public-api-v1/estimate-the-credit-cost-of-a-video-generation"},{"title":"Get the generated video","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/videos/{id}/output","href":"/api-reference/videos-proxy/get-the-generated-video"}]},{"group":"Seedance (raw)","pages":[{"title":"Seedance raw API","href":"/api-reference/seedance/overview"},{"title":"Models \u0026 pricing","href":"/api-reference/seedance/models-and-pricing"},{"title":"Create a task","href":"/api-reference/seedance/create-task"},{"title":"Retrieve a task","href":"/api-reference/seedance/retrieve-task"},{"title":"List tasks","href":"/api-reference/seedance/list-tasks"},{"title":"Cancel or delete a task","href":"/api-reference/seedance/cancel-delete"},{"title":"Differences from the native API","href":"/api-reference/seedance/differences"}]},{"group":"Files","pages":[{"title":"Upload a reference file","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/files","href":"/api-reference/public-api-v1/upload-a-reference-file"},{"title":"Get a file (re-mints a fresh 1h signed URL)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/files/{id}","href":"/api-reference/public-api-v1/get-a-file-re-mints-a-fresh-1h-signed-url"},{"title":"Immediately purge a file","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/files/{id}","href":"/api-reference/public-api-v1/immediately-purge-a-file"}]},{"group":"LoRAs","pages":[{"title":"List available LoRA styles","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/loras","href":"/api-reference/public-api-v1/list-available-lora-styles"},{"title":"Get a LoRA style by ID or slug","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/loras/{id}","href":"/api-reference/public-api-v1/get-a-lora-style-by-id-or-slug"},{"title":"List available video models","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/video_loras","href":"/api-reference/public-api-v1/list-available-video-models"},{"title":"Get a video model by ID or slug","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/video_loras/{id}","href":"/api-reference/public-api-v1/get-a-video-model-by-id-or-slug"}]},{"group":"Composition acts","pages":[{"title":"List available composition acts","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/actions","href":"/api-reference/public-api-v1/list-available-composition-acts"},{"title":"Get a composition act by ID","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/actions/{id}","href":"/api-reference/public-api-v1/get-a-composition-act-by-id"}]},{"group":"Webhooks","pages":[{"title":"Register a webhook endpoint","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/webhook_endpoints","href":"/api-reference/public-api-v1/register-a-webhook-endpoint"},{"title":"List webhook endpoints","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/webhook_endpoints","href":"/api-reference/public-api-v1/list-webhook-endpoints"},{"title":"Get a webhook endpoint","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/webhook_endpoints/{id}","href":"/api-reference/public-api-v1/get-a-webhook-endpoint"},{"title":"Update a webhook endpoint","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/webhook_endpoints/{id}","href":"/api-reference/public-api-v1/update-a-webhook-endpoint"},{"title":"Delete a webhook endpoint","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/webhook_endpoints/{id}","href":"/api-reference/public-api-v1/delete-a-webhook-endpoint"},{"title":"Fire a synthetic test delivery","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/webhook_endpoints/{id}/test","href":"/api-reference/public-api-v1/fire-a-synthetic-test-delivery"},{"title":"Rotate the signing secret","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/webhook_endpoints/{id}/rotate_secret","href":"/api-reference/public-api-v1/rotate-the-signing-secret"},{"title":"List delivery attempts for a webhook endpoint","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/webhook_endpoints/{id}/deliveries","href":"/api-reference/public-api-v1/list-delivery-attempts-for-a-webhook-endpoint"}]},{"group":"Usage analytics","pages":[{"title":"Usage analytics","href":"/api-reference/usage/overview"},{"title":"Usage pagination","href":"/api-reference/usage/pagination"},{"title":"Per-request usage event stream","href":"/api-reference/usage/event-stream"},{"title":"Aggregated usage metrics","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/usage","href":"/api-reference/public-api-v1/aggregated-usage-metrics"},{"title":"List credit-ledger events","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/usage/events","href":"/api-reference/public-api-v1/list-credit-ledger-events"}]},{"group":"Account","pages":[{"title":"Get your team info","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/team","href":"/api-reference/public-api-v1/get-your-team-info"},{"title":"Get credit balance","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/balance","href":"/api-reference/public-api-v1/get-credit-balance"}]}]},{"group":"Resources","pages":[{"title":"Changelog","href":"/changelog"}]}]},"basePath":"","title":"Remove a view from a draft - Aurous Labs","buildId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","deploymentId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DCDCdBVX.js","utils-ME8dDnLe.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-0e84ACsd.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-wgRBj-ia.js","snippetPresets-C11Sgb-o.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-C0lapOpP.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-ZeRQV8fF.js","shallow-BupWh095.js","getApiPlaygroundDisplay-BnYQO2Ss.js","CodeSnippet-RKKOc8c_.js","CodeSnippets-Drf_m8wS.js","Page-Bevw23-4.js","getPastedJson-u6QiPzNZ.js","icon-Bb-CBSxO.js","MethodPill-F7l5AI7V.js","DuplicateIcon-IiAXkdSg.js","createIcon-FliI8EBc.js","DynamicMarkdown-B62XqCSI.js","SectionHeading-Dj31pT03.js","axios-vUo_bRtp.js","Markdown-BOgQCTwD.js","clsx-BIWXJmsZ.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-DKZWslLH.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-UDqbR6xh.js"]}