Cancels a generation that has not yet completed. Returns the cancelled generation resource. On a generation already in cancelled state this is a no-op (idempotent). On a generation already in succeeded or failed this returns 400 invalid_request / generation_not_cancellable (terminal states cannot be undone). Hold-released or refund-applied credits are reflected on the next GET /v1/balance.
POST
/
v1
/
images
/
{id}
/
cancel
Cancel a pending or processing generation
curl --request POST \ --url https://api.aurous-labs.com/v1/images/{id}/cancel \ --header 'X-Api-Key: <api-key>'
Discriminator — always inference. Mirrors OpenAI's object-field convention so SDK clients can branch on the resource type without inspecting the ID prefix. A single canonical value (inference) covers both image and video generations; use media_type to distinguish the rendering kind.
Current generation status. Lifecycle: pending (created, awaiting dispatch) → processing (running) → one of the terminal values succeeded / failed / cancelled. Additional terminal values may be introduced in future API versions and will be announced via the changelog before they appear on the wire.
The text prompt used for generation, echoing the prompt submitted on the request. null when the generation was created without one — for example a video driven by a pinned video model (video_lora_id alone, or with a cast). Always read this field as nullable.
Example:
"A golden sunset over mountains, cinematic lighting"
Generated image proxy URLs. Each URL is anonymous-read (no auth header required) and may be cached at the edge. Outputs are kept for up to 30 days after generation (an output that could not be copied expires with the provider link: ~7 days for images, ~24 hours for videos). Save what you want to keep for longer. URLs return 410 Gone after expiry.
Generated video proxy URL (only present on media_type: video). The token in the URL is valid for 1 hour; fetch the generation again for a fresh URL. Outputs are kept for up to 30 days after generation (an output that could not be copied expires with the provider link: ~7 days for images, ~24 hours for videos).
The reference image URLs you supplied as visual anchors for this generation, echoed back (snapshotted at inference time). Present only when the generation was driven by your own reference images (reference_image_urls or reference subjects). Omitted entirely for character-driven generations — a character's reference images are managed platform assets and are never echoed.
Machine-readable failure reason when status is failed, for the cases where you need to branch in code. null on every successful generation, on failures recorded before this field existed, and on failure paths that have no stable code — error_message is human-facing copy that is re-tuned over time, so never pattern-match it. Currently emitted: generation_interrupted, reference_preparation_failed, content_filtered, generation_failed, first_frame_too_small (an https://first_frame_url attached to a video model whose dimensions were below the minimum — a file_<ulid> frame is rejected with the same code as a 400 before any credits are held; see Errors), reference_blocked (a supplied reference image was declined by a content check — the same code POST requests receive synchronously when our own pre-generation check rejects a reference; here it surfaces asynchronously on a failed generation instead, see Errors), and output_moderation_rejected (a content check declined the rendered output itself, after generation — always async, since there is nothing to check before the output exists; the hold is fully refunded (cost.refunded: true) and no output URLs are ever produced for that id, see Errors). The set is additive: new codes may appear, so treat an unrecognized value as a generic failure, keep a default branch in your switch statement, and fall back to error_message.
Per-generation cost breakdown — same shape as the estimated_cost returned by POST /v1/{images,videos}/estimate. May be null for older rows from before this field existed; populated for all new generations. The amount reflects the committed charge for terminal-status rows — 0 (with refunded: true) on a failed generation, since the reserved hold was released, never charged.
Resolved output image width in pixels (image generations only). This is the post-snap REQUESTED dimension: it may differ from a custom-requested width by up to 31 px due to multiple-of-32 snapping, and combined with height it is what determined the billing tier — output pixels (width × height) <= 2,360,000 bill the standard tier, above that the large tier (see GET /v1/models). It is NOT a guarantee of the delivered file: a request carrying subjects[], character_id, reference_image_urls or context_images renders under a 4,624,220 px (~4.6 MP) output ceiling and is scaled down to fit, preserving aspect ratio, so the delivered image is smaller than this value. Read the returned image for its true size.
Resolved output image height in pixels (image generations only). This is the post-snap REQUESTED dimension: it may differ from a custom-requested height by up to 31 px due to multiple-of-32 snapping, and combined with width it is what determined the billing tier — output pixels (width × height) <= 2,360,000 bill the standard tier, above that the large tier (see GET /v1/models). It is NOT a guarantee of the delivered file: a request carrying subjects[], character_id, reference_image_urls or context_images renders under a 4,624,220 px (~4.6 MP) output ceiling and is scaled down to fit, preserving aspect ratio, so the delivered image is smaller than this value. Read the returned image for its true size.
Number of images in the batch. Reflects the requested count while the generation is running; on a terminal status it reflects the number actually DELIVERED — when part of a batch fails you receive the successful images, this count re-stamps to match, and the difference is refunded automatically.
Named size preset applied to this generation. null when the request used custom width/height instead of a preset. Format is <tier>_<ratio> where tier is 1_5k, 2k, or 4k. Every 1_5k_* preset bills the standard pricing tier (output pixels <= 2,360,000); every 2k_*/4k_* preset bills the large tier — see GET /v1/models.
Inference mode dispatched. Images: t2i (text-to-image) — reference images and characters are supplementary inputs to the t2i flow, not a separate mode. Videos (this list also returns vid_* rows): t2v (text-to-video), i2v (image-to-video — frame-driven, subject-driven, or a pinned video model on its own), or r2v (reference mode — the generation was driven by a motion reference). r2v does NOT imply you supplied that reference: it covers BOTH your own clip sent as reference_video_url AND a platform-built reference, produced when a first frame rides with a video model (pinned via video_lora_id, or auto-matched from the image). On the platform-built variant reference_video_url is null — branch on that field, not on inference_type, to tell the two apart. Treat any value not listed here as opaque — the set grows over time.
CFG rescale factor the customer supplied on the request body, echoed back here. Range 0.0-1.0. Omitted when the customer did not supply a per-request value (the platform applied a precedence-chain default — LoRA, character override, or the global 0.7 — which is not exposed on the response).
Denoising strength the customer supplied on the request body, echoed back here. Range 0.0-1.0. Omitted when the customer did not supply a value or when the generation was a bare text-to-image request (denoise is only applied when reference images or a character are attached).
The random seed the model actually used for this image generation. Populated even when you omit seed on the request — the platform requests a random seed and records the concrete value the provider rolled, so you can reproduce the result by passing it back as seed. Available once status is succeeded; null before then and for failed/cancelled generations. For multi-image batches (image_count > 1) this is the seed of the first image (output_urls[0]); per-image seeds are not yet exposed. Image generations only.
Whether the generated video includes synchronized audio (video generations only). This is the audio setting actually applied. It normally matches your generate_audio, or the selected video model's default when you omit it, but the platform resolves the final value for the request. Read this field rather than assuming your request value.
Resolved reference-video task (video generations only). reference: the generation borrows the clip's motion for a new scene. extend: the generation continues the clip itself. null on every generation that did not supply reference_video_url (including all pre-existing rows). Additional task types may be introduced in future API versions — treat an unrecognized value as opaque.
Resolved extend direction (video generations only). Non-null only when video_task is extend; null otherwise (including every reference-mode and non-reference generation).
The reference video URL you submitted, echoed back VERBATIM as you sent it — never re-signed, never a storage path. null for generations that did not supply reference_video_url (including every dashboard-originated row, and including an inference_type: "r2v" generation whose motion reference the platform built from a first frame plus a pinned or matched video model — this field, not inference_type, is what distinguishes your own clip from a platform-built reference).
The video model (an id or slug from GET /v1/video_loras) behind this generation (video generations only) — either the video_lora_id you pinned on the request, or the model the platform auto-matched to your prompt when none was pinned. null for a plain (no video model) generation, and always null on image generations.
Ordered subjects composed into this generation (positional — entry N echoes entry N of the identity inputs sent on create; legacy character_id / reference_image_urls inputs are normalized into the same projection). Character entries carry the opaque char_<ulid>; reference entries echo only their image count, never URLs. Video generations echo their cast the same way (up to 2 entries), matching the subjects[] array accepted by POST /v1/videos. Character entries on generations created before cast snapshotting may carry character_id: null; the id is never substituted with an internal identifier. null for generations that did not compose subjects (plain prompt-only or style generations, and context-image generations). The engine is not exposed.
Count-only echo of the context_images[] sent on create — the number of loose reference images supplied, never the image URLs themselves. null for every generation that did not use context_images (plain prompt-only, style, subject, and video generations).
The composition act applied to this generation, echoed as { id, name }. An act is applied either because you pinned it with action_id or because act detection matched one automatically. id is the act identifier from GET /v1/actions; name is its display name (or null when the name was not recorded). null for every generation that did not apply an act — plain prompt-only, style, context-image, and video generations. A new, always-present, nullable key: existing integrations that do not read it are unaffected.
The prompt style applied to this generation, echoed as { id, name }. A style is applied either because you pinned it with lora_id or because style matching resolved one from your prompt — the echo always reflects the style that actually ran (a retired id that aliases to a successor echoes the successor). id is the lora_* identifier from GET /v1/loras and round-trips into lora_id. null for every generation without a style — including lora_id: null requests, retired styles that generate plain, video generations, and all rows minted before styles shipped. A new, always-present, nullable key: existing integrations that do not read it are unaffected.
Non-fatal request adjustments, present ONLY on the POST /v1/images 201 body (and the estimate response) — never on GET reads, list rows, or webhook payloads. Omitted entirely when empty. Current codes: parameter_ignored, style_retired_plain; new codes may be added without a version bump — ignore unknown codes. Idempotent replays return the original warnings verbatim.
Show child attributes
Example:
[ { "code": "style_retired_plain", "param": "lora_id", "message": "Style lora_06AAAAAAAAAAAAAAAAAAAAAAAA is retired and no longer applies a style — this request generates without one." } ]
Outcome of the prompt-optimization step, echoed for observability. Current values: no_request (the request did not invoke it), succeeded, identical, refused, transport_error, length_overflow; null on rows minted before this field existed. INFORMATIONAL and deliberately an OPEN set (no schema enum — codegen clients must not mint a closed union): do not branch control flow on it; new values may be added without a version bump.
Terminal-status timestamp (ISO 8601). NULL until the generation reaches a terminal state.
Example:
"2026-05-04T10:00:14Z"
{"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/public-api-v1/cancel-a-pending-or-processing-generation","slug":"/api-reference/public-api-v1/cancel-a-pending-or-processing-generation","pageMetadata":{"title":"Cancel a pending or processing generation","description":"Cancels a generation that has not yet completed. Returns the cancelled generation resource. On a generation already in `cancelled` state this is a no-op (idempotent). On a generation already in `succeeded` or `failed` this returns `400 invalid_request / generation_not_cancellable` (terminal states cannot be undone). Hold-released or refund-applied credits are reflected on the next `GET /v1/balance`.","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","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Cancels a generation that has not yet completed. Returns the cancelled generation resource. On a generation already in \", _jsx(_components.code, {\n children: \"cancelled\"\n }), \" state this is a no-op (idempotent). On a generation already in \", _jsx(_components.code, {\n children: \"succeeded\"\n }), \" or \", _jsx(_components.code, {\n children: \"failed\"\n }), \" this returns \", _jsx(_components.code, {\n children: \"400 invalid_request / generation_not_cancellable\"\n }), \" (terminal states cannot be undone). Hold-released or refund-applied credits are reflected on the next \", _jsx(_components.code, {\n children: \"GET /v1/balance\"\n }), \".\"]\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}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Cancel a pending or processing generation","description":"Cancels a generation that has not yet completed. Returns the cancelled generation resource. On a generation already in `cancelled` state this is a no-op (idempotent). On a generation already in `succeeded` or `failed` this returns `400 invalid_request / generation_not_cancellable` (terminal states cannot be undone). Hold-released or refund-applied credits are reflected on the next `GET /v1/balance`.","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","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"description":"Cancels a generation that has not yet completed. Returns the cancelled generation resource. On a generation already in `cancelled` state this is a no-op (idempotent). On a generation already in `succeeded` or `failed` this returns `400 invalid_request / generation_not_cancellable` (terminal states cannot be undone). Hold-released or refund-applied credits are reflected on the next `GET /v1/balance`.","operationId":"V1ImagesController_cancelGeneration","parameters":["8f52800e-b23e-467b-bf60-4a6a605ddf6a","0565b506-6cf4-4953-aaf7-edfbcb8d7bae"],"responses":{"200":"a30fddad-93bb-4fbd-ab5f-6deeae9ec866","400":"9ca0b57b-4376-41d7-9f58-9c7df990af37","401":"ecdbe44a-c8af-4272-9be6-325d70004300","403":"a482c273-cc56-4082-86b1-66dc1f9615fa","404":"1df249b7-6abe-40b6-a196-0e7fd6c6cc37","429":"4d6b36a4-85de-4f4b-9f9e-8865843de645","503":"557c1fb6-c645-490e-a73b-1e19fb9154f8"},"security":["e0b8ed5b-13f8-4649-87fc-328fde1bad7f"],"summary":"Cancel a pending or processing generation","tags":["Public API (v1)"],"method":"post","type":"path","servers":["3c5b35fe-5556-4c2f-b6fe-ccd0ce11e7d4","06ffff55-b13c-4345-afa1-017ab3f24f1d"],"path":"/v1/images/{id}/cancel","baseUrlOptions":["https://api.aurous-labs.com","https://api.preprod.aurous-labs.com"],"title":"Cancel a pending or processing generation","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"8f52800e-b23e-467b-bf60-4a6a605ddf6a":{"name":"id","required":true,"in":"path","description":"Opaque generation ID to cancel (img_* or vid_*)","schema":{"example":"img_01HXMQ7Z3K8Y2VNABCDEFGHJKM","type":"string","isRequired":true,"description":"Opaque generation ID to cancel (img_* or vid_*)","uniqueKey":"","typeLabel":"string"}},"0565b506-6cf4-4953-aaf7-edfbcb8d7bae":{"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":{"a30fddad-93bb-4fbd-ab5f-6deeae9ec866":{"description":"Cancelled generation resource","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","description":"Discriminator — always `inference`. Mirrors OpenAI's `object`-field convention so SDK clients can branch on the resource type without inspecting the ID prefix. A single canonical value (`inference`) covers both image and video generations; use `media_type` to distinguish the rendering kind.","example":"inference","enum":["inference"],"default":"inference","isRequired":true,"uniqueKey":"object","typeLabel":"enum\u003cstring>"},"id":{"type":"string","description":"Opaque generation ID","example":"img_01HXMQ7Z3K8Y2VNABCDEFGHJKM","isRequired":true,"uniqueKey":"id","typeLabel":"string"},"status":{"type":"string","description":"Current generation status. Lifecycle: `pending` (created, awaiting dispatch) → `processing` (running) → one of the terminal values `succeeded` / `failed` / `cancelled`. Additional terminal values may be introduced in future API versions and will be announced via the changelog before they appear on the wire.","example":"succeeded","enum":["pending","processing","succeeded","failed","cancelled"],"isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"prompt":{"oneOf":[{"type":"string","description":"The text prompt used for generation, echoing the prompt submitted on the request. `null` when the generation was created without one — for example a video driven by a pinned video model (`video_lora_id` alone, or with a cast). Always read this field as nullable.","example":"A golden sunset over mountains, cinematic lighting","isRequired":true,"uniqueKey":"prompt.oneOf.0","typeLabel":"string"},{"type":"null","description":"The text prompt used for generation, echoing the prompt submitted on the request. `null` when the generation was created without one — for example a video driven by a pinned video model (`video_lora_id` alone, or with a cast). Always read this field as nullable.","example":"A golden sunset over mountains, cinematic lighting","isRequired":true,"uniqueKey":"prompt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"prompt","typeLabel":"string | null"},"created_at":{"type":"string","description":"Creation timestamp (ISO 8601)","example":"2026-05-04T10:00:00Z","isRequired":true,"uniqueKey":"created_at","typeLabel":"string"},"media_type":{"oneOf":[{"type":"string","description":"Distinguishes image vs video generation. May be null for older rows minted before this column existed.","example":"image","enum":["image","video"],"uniqueKey":"media_type.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Distinguishes image vs video generation. May be null for older rows minted before this column existed.","example":"image","enum":["image","video"],"uniqueKey":"media_type.oneOf.1","typeLabel":"null"}],"uniqueKey":"media_type","typeLabel":"enum\u003cstring> | null"},"output_urls":{"oneOf":[{"description":"Generated image proxy URLs. Each URL is anonymous-read (no auth header required) and may be cached at the edge. Outputs are kept for up to 30 days after generation (an output that could not be copied expires with the provider link: ~7 days for images, ~24 hours for videos). Save what you want to keep for longer. URLs return 410 Gone after expiry.","example":["https://api.aurous-labs.com/v1/images/img_01HXMQ7Z3K8Y2VNABCDEFGHJKM/output/0"],"type":"array","items":{"type":"string","uniqueKey":"output_urls.oneOf.0.items.[INDEX]","typeLabel":"string"},"uniqueKey":"output_urls.oneOf.0","typeLabel":"string[]"},{"description":"Generated image proxy URLs. Each URL is anonymous-read (no auth header required) and may be cached at the edge. Outputs are kept for up to 30 days after generation (an output that could not be copied expires with the provider link: ~7 days for images, ~24 hours for videos). Save what you want to keep for longer. URLs return 410 Gone after expiry.","example":["https://api.aurous-labs.com/v1/images/img_01HXMQ7Z3K8Y2VNABCDEFGHJKM/output/0"],"type":"null","items":{"type":"string"},"uniqueKey":"output_urls.oneOf.1","typeLabel":"null"}],"uniqueKey":"output_urls","typeLabel":"string[] | null"},"video_url":{"oneOf":[{"type":"string","description":"Generated video proxy URL (only present on `media_type: video`). The `token` in the URL is valid for 1 hour; fetch the generation again for a fresh URL. Outputs are kept for up to 30 days after generation (an output that could not be copied expires with the provider link: ~7 days for images, ~24 hours for videos).","example":"https://api.aurous-labs.com/v1/videos/vid_01HXMQ7Z3K8Y2VNABCDEFGHJKM/output?token=...","uniqueKey":"video_url.oneOf.0","typeLabel":"string"},{"type":"null","description":"Generated video proxy URL (only present on `media_type: video`). The `token` in the URL is valid for 1 hour; fetch the generation again for a fresh URL. Outputs are kept for up to 30 days after generation (an output that could not be copied expires with the provider link: ~7 days for images, ~24 hours for videos).","example":"https://api.aurous-labs.com/v1/videos/vid_01HXMQ7Z3K8Y2VNABCDEFGHJKM/output?token=...","uniqueKey":"video_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"video_url","typeLabel":"string | null"},"reference_image_urls":{"oneOf":[{"description":"The reference image URLs you supplied as visual anchors for this generation, echoed back (snapshotted at inference time). Present only when the generation was driven by your own reference images (`reference_image_urls` or `reference` subjects). Omitted entirely for character-driven generations — a character's reference images are managed platform assets and are never echoed.","example":["https://example.com/ref1.jpg"],"type":"array","items":{"type":"string","uniqueKey":"reference_image_urls.oneOf.0.items.[INDEX]","typeLabel":"string"},"uniqueKey":"reference_image_urls.oneOf.0","typeLabel":"string[]"},{"description":"The reference image URLs you supplied as visual anchors for this generation, echoed back (snapshotted at inference time). Present only when the generation was driven by your own reference images (`reference_image_urls` or `reference` subjects). Omitted entirely for character-driven generations — a character's reference images are managed platform assets and are never echoed.","example":["https://example.com/ref1.jpg"],"type":"null","items":{"type":"string"},"uniqueKey":"reference_image_urls.oneOf.1","typeLabel":"null"}],"uniqueKey":"reference_image_urls","typeLabel":"string[] | null"},"error_message":{"oneOf":[{"type":"string","description":"Human-readable error message if the generation failed. Non-contractual prose — do not parse or match on this value. Switch on error_code instead.","example":"Content policy violation","uniqueKey":"error_message.oneOf.0","typeLabel":"string"},{"type":"null","description":"Human-readable error message if the generation failed. Non-contractual prose — do not parse or match on this value. Switch on error_code instead.","example":"Content policy violation","uniqueKey":"error_message.oneOf.1","typeLabel":"null"}],"uniqueKey":"error_message","typeLabel":"string | null"},"error_code":{"oneOf":[{"type":"string","description":"Machine-readable failure reason when `status` is `failed`, for the cases where you need to branch in code. `null` on every successful generation, on failures recorded before this field existed, and on failure paths that have no stable code — `error_message` is human-facing copy that is re-tuned over time, so never pattern-match it. Currently emitted: `generation_interrupted`, `reference_preparation_failed`, `content_filtered`, `generation_failed`, `first_frame_too_small` (an `https://` `first_frame_url` attached to a video model whose dimensions were below the minimum — a `file_\u003culid>` frame is rejected with the same code as a `400` before any credits are held; see [Errors](/errors)), `reference_blocked` (a supplied reference image was declined by a content check — the same code `POST` requests receive synchronously when our own pre-generation check rejects a reference; here it surfaces asynchronously on a `failed` generation instead, see [Errors](/errors#reference_blocked)), and `output_moderation_rejected` (a content check declined the rendered output itself, after generation — always async, since there is nothing to check before the output exists; the hold is fully refunded (`cost.refunded: true`) and no output URLs are ever produced for that id, see [Errors](/errors#output_moderation_rejected)). The set is additive: new codes may appear, so treat an unrecognized value as a generic failure, keep a default branch in your switch statement, and fall back to `error_message`.","example":"generation_interrupted","uniqueKey":"error_code.oneOf.0","typeLabel":"string"},{"type":"null","description":"Machine-readable failure reason when `status` is `failed`, for the cases where you need to branch in code. `null` on every successful generation, on failures recorded before this field existed, and on failure paths that have no stable code — `error_message` is human-facing copy that is re-tuned over time, so never pattern-match it. Currently emitted: `generation_interrupted`, `reference_preparation_failed`, `content_filtered`, `generation_failed`, `first_frame_too_small` (an `https://` `first_frame_url` attached to a video model whose dimensions were below the minimum — a `file_\u003culid>` frame is rejected with the same code as a `400` before any credits are held; see [Errors](/errors)), `reference_blocked` (a supplied reference image was declined by a content check — the same code `POST` requests receive synchronously when our own pre-generation check rejects a reference; here it surfaces asynchronously on a `failed` generation instead, see [Errors](/errors#reference_blocked)), and `output_moderation_rejected` (a content check declined the rendered output itself, after generation — always async, since there is nothing to check before the output exists; the hold is fully refunded (`cost.refunded: true`) and no output URLs are ever produced for that id, see [Errors](/errors#output_moderation_rejected)). The set is additive: new codes may appear, so treat an unrecognized value as a generic failure, keep a default branch in your switch statement, and fall back to `error_message`.","example":"generation_interrupted","uniqueKey":"error_code.oneOf.1","typeLabel":"null"}],"uniqueKey":"error_code","typeLabel":"string | null"},"duration_ms":{"oneOf":[{"type":"integer","description":"Processing duration in milliseconds (set on terminal status)","example":14820,"uniqueKey":"duration_ms.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Processing duration in milliseconds (set on terminal status)","example":14820,"uniqueKey":"duration_ms.oneOf.1","typeLabel":"null"}],"uniqueKey":"duration_ms","typeLabel":"integer | null"},"cost":{"oneOf":[{"type":"object","description":"Per-generation cost breakdown — same shape as the `estimated_cost` returned by `POST /v1/{images,videos}/estimate`. May be `null` for older rows from before this field existed; populated for all new generations. The `amount` reflects the committed charge for terminal-status rows — `0` (with `refunded: true`) on a `failed` generation, since the reserved hold was released, never charged.","required":["amount","currency","breakdown"],"example":{"amount":6.5,"currency":"credit","breakdown":{"base":6.5,"size_tier":"standard"}},"properties":{"amount":{"type":"number","description":"Total credit cost charged for this generation. For images, `amount` equals the sum of the numeric line items in `breakdown` other than `discount_factor` (a multiplier, not a credit amount) — see `breakdown` below for the full image key set. For videos this is the token-based charge (not a sum of breakdown values); trust `amount` as the authoritative figure.","example":2,"isRequired":true,"uniqueKey":"cost.oneOf.0.amount","typeLabel":"number"},"currency":{"type":"string","description":"Currency unit. Always `credit` at v1.0.","example":"credit","enum":["credit"],"isRequired":true,"uniqueKey":"cost.oneOf.0.currency","typeLabel":"enum\u003cstring>"},"breakdown":{"type":"object","description":"Cost breakdown components, keyed by source. Image keys: `base` (credits, always present, summable) and `size_tier` (a STRING — `standard` for output \u003c= 2.36 MP, `large` above; never summable, skip it when reproducing `amount`). Reference images are free and do not add line items. When the team has a negotiated discount, an additional `discount_factor` line is present (multiplier, not a credit amount). For VIDEO the breakdown keys shift across the lifecycle. At HOLD time (the create 201, and while `pending`/`processing`) it carries `pricing_model` (always `video_tokens_v1`), `tokens_max` (the CEILING token count the hold was sized at), `credits_held` (the reserved credits), `video_input` (boolean), `resolution`, plus optional `enhance_flat_credits`/`discount_factor`. Once the video SETTLES (`status: succeeded`) the breakdown carries the ACTUAL figures instead: `tokens` (the realized token count — a DISTINCT key from the hold-time `tokens_max`, not a rename of it), `credits` (the settled charge), `credits_held` (the original ceiling), and `settled: true`. Video breakdown is NOT additive — `amount` is the authoritative charge, computed from the token count and per-model rate table. On a `refunded` generation, `breakdown` still reflects the original projection (what the attempt was priced at) even though `amount` is `0` — compare the two to see what you were NOT charged for. Values are typed `number | string | boolean`: image breakdowns already mix a numeric `base` with the string `size_tier`, and video metadata like `pricing_model`/`resolution` are strings and `video_input`/`settled` are booleans, so read by name and ignore unknown keys (the field set is OPEN).","example":{"pricing_model":"video_tokens_v1","tokens":108000,"credits":42,"credits_held":51.75,"video_input":false,"resolution":"720p","settled":true},"isRequired":true,"uniqueKey":"cost.oneOf.0.breakdown","typeLabel":"object"},"refunded":{"type":"boolean","description":"True when the reserved credit hold for this generation was released without any charge — `amount` is `0` in that case, not the amount originally held. Set only on `failed` generations. Omitted (absent) on `succeeded`, `pending`, and `processing` rows.","example":true,"uniqueKey":"cost.oneOf.0.refunded","typeLabel":"boolean"}},"uniqueKey":"cost.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"cost.oneOf.1","typeLabel":"null"}],"uniqueKey":"cost","typeLabel":"object | null"},"width":{"type":"number","description":"Resolved output image width in pixels (image generations only). This is the post-snap REQUESTED dimension: it may differ from a custom-requested `width` by up to 31 px due to multiple-of-32 snapping, and combined with `height` it is what determined the billing tier — output pixels (width × height) \u003c= 2,360,000 bill the standard tier, above that the large tier (see `GET /v1/models`). It is NOT a guarantee of the delivered file: a request carrying `subjects[]`, `character_id`, `reference_image_urls` or `context_images` renders under a 4,624,220 px (~4.6 MP) output ceiling and is scaled down to fit, preserving aspect ratio, so the delivered image is smaller than this value. Read the returned image for its true size.","example":1472,"uniqueKey":"width","typeLabel":"number"},"height":{"type":"number","description":"Resolved output image height in pixels (image generations only). This is the post-snap REQUESTED dimension: it may differ from a custom-requested `height` by up to 31 px due to multiple-of-32 snapping, and combined with `width` it is what determined the billing tier — output pixels (width × height) \u003c= 2,360,000 bill the standard tier, above that the large tier (see `GET /v1/models`). It is NOT a guarantee of the delivered file: a request carrying `subjects[]`, `character_id`, `reference_image_urls` or `context_images` renders under a 4,624,220 px (~4.6 MP) output ceiling and is scaled down to fit, preserving aspect ratio, so the delivered image is smaller than this value. Read the returned image for its true size.","example":1472,"uniqueKey":"height","typeLabel":"number"},"image_count":{"type":"number","description":"Number of images in the batch. Reflects the requested `count` while the generation is running; on a terminal status it reflects the number actually DELIVERED — when part of a batch fails you receive the successful images, this count re-stamps to match, and the difference is refunded automatically.","example":1,"uniqueKey":"image_count","typeLabel":"number"},"size_preset":{"oneOf":[{"type":"string","description":"Named size preset applied to this generation. `null` when the request used custom `width`/`height` instead of a preset. Format is `\u003ctier>_\u003cratio>` where tier is `1_5k`, `2k`, or `4k`. Every `1_5k_*` preset bills the standard pricing tier (output pixels \u003c= 2,360,000); every `2k_*`/`4k_*` preset bills the large tier — see `GET /v1/models`.","example":"1_5k_1_1","enum":["1_5k_1_1","1_5k_3_2","1_5k_2_3","1_5k_4_3","1_5k_3_4","1_5k_16_9","1_5k_9_16","1_5k_21_9","2k_1_1","2k_3_2","2k_2_3","2k_4_3","2k_3_4","2k_16_9","2k_9_16","2k_21_9","4k_1_1","4k_3_2","4k_2_3","4k_4_3","4k_3_4","4k_16_9","4k_9_16","4k_21_9"],"uniqueKey":"size_preset.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Named size preset applied to this generation. `null` when the request used custom `width`/`height` instead of a preset. Format is `\u003ctier>_\u003cratio>` where tier is `1_5k`, `2k`, or `4k`. Every `1_5k_*` preset bills the standard pricing tier (output pixels \u003c= 2,360,000); every `2k_*`/`4k_*` preset bills the large tier — see `GET /v1/models`.","example":"1_5k_1_1","enum":["1_5k_1_1","1_5k_3_2","1_5k_2_3","1_5k_4_3","1_5k_3_4","1_5k_16_9","1_5k_9_16","1_5k_21_9","2k_1_1","2k_3_2","2k_2_3","2k_4_3","2k_3_4","2k_16_9","2k_9_16","2k_21_9","4k_1_1","4k_3_2","4k_2_3","4k_4_3","4k_3_4","4k_16_9","4k_9_16","4k_21_9"],"uniqueKey":"size_preset.oneOf.1","typeLabel":"null"}],"uniqueKey":"size_preset","typeLabel":"enum\u003cstring> | null"},"inference_type":{"oneOf":[{"type":"string","description":"Inference mode dispatched. Images: `t2i` (text-to-image) — reference images and characters are supplementary inputs to the t2i flow, not a separate mode. Videos (this list also returns `vid_*` rows): `t2v` (text-to-video), `i2v` (image-to-video — frame-driven, subject-driven, or a pinned video model on its own), or `r2v` (reference mode — the generation was driven by a motion reference). `r2v` does NOT imply you supplied that reference: it covers BOTH your own clip sent as `reference_video_url` AND a platform-built reference, produced when a first frame rides with a video model (pinned via `video_lora_id`, or auto-matched from the image). On the platform-built variant `reference_video_url` is `null` — branch on that field, not on `inference_type`, to tell the two apart. Treat any value not listed here as opaque — the set grows over time.","example":"t2i","uniqueKey":"inference_type.oneOf.0","typeLabel":"string"},{"type":"null","description":"Inference mode dispatched. Images: `t2i` (text-to-image) — reference images and characters are supplementary inputs to the t2i flow, not a separate mode. Videos (this list also returns `vid_*` rows): `t2v` (text-to-video), `i2v` (image-to-video — frame-driven, subject-driven, or a pinned video model on its own), or `r2v` (reference mode — the generation was driven by a motion reference). `r2v` does NOT imply you supplied that reference: it covers BOTH your own clip sent as `reference_video_url` AND a platform-built reference, produced when a first frame rides with a video model (pinned via `video_lora_id`, or auto-matched from the image). On the platform-built variant `reference_video_url` is `null` — branch on that field, not on `inference_type`, to tell the two apart. Treat any value not listed here as opaque — the set grows over time.","example":"t2i","uniqueKey":"inference_type.oneOf.1","typeLabel":"null"}],"uniqueKey":"inference_type","typeLabel":"string | null"},"cfg_rescale":{"oneOf":[{"type":"number","description":"CFG rescale factor the customer supplied on the request body, echoed back here. Range 0.0-1.0. Omitted when the customer did not supply a per-request value (the platform applied a precedence-chain default — LoRA, character override, or the global 0.7 — which is not exposed on the response).","example":0.7,"minimum":0,"maximum":1,"uniqueKey":"cfg_rescale.oneOf.0","typeLabel":"number"},{"type":"null","description":"CFG rescale factor the customer supplied on the request body, echoed back here. Range 0.0-1.0. Omitted when the customer did not supply a per-request value (the platform applied a precedence-chain default — LoRA, character override, or the global 0.7 — which is not exposed on the response).","example":0.7,"minimum":0,"maximum":1,"uniqueKey":"cfg_rescale.oneOf.1","typeLabel":"null"}],"uniqueKey":"cfg_rescale","typeLabel":"number | null"},"denoise_strength":{"oneOf":[{"type":"number","description":"Denoising strength the customer supplied on the request body, echoed back here. Range 0.0-1.0. Omitted when the customer did not supply a value or when the generation was a bare text-to-image request (denoise is only applied when reference images or a character are attached).","example":0.6,"minimum":0,"maximum":1,"uniqueKey":"denoise_strength.oneOf.0","typeLabel":"number"},{"type":"null","description":"Denoising strength the customer supplied on the request body, echoed back here. Range 0.0-1.0. Omitted when the customer did not supply a value or when the generation was a bare text-to-image request (denoise is only applied when reference images or a character are attached).","example":0.6,"minimum":0,"maximum":1,"uniqueKey":"denoise_strength.oneOf.1","typeLabel":"null"}],"uniqueKey":"denoise_strength","typeLabel":"number | null"},"seed":{"oneOf":[{"type":"integer","description":"The random seed the model actually used for this image generation. Populated even when you omit `seed` on the request — the platform requests a random seed and records the concrete value the provider rolled, so you can reproduce the result by passing it back as `seed`. Available once `status` is `succeeded`; `null` before then and for `failed`/`cancelled` generations. For multi-image batches (`image_count` > 1) this is the seed of the first image (`output_urls[0]`); per-image seeds are not yet exposed. Image generations only.","example":819572108,"uniqueKey":"seed.oneOf.0","typeLabel":"integer"},{"type":"null","description":"The random seed the model actually used for this image generation. Populated even when you omit `seed` on the request — the platform requests a random seed and records the concrete value the provider rolled, so you can reproduce the result by passing it back as `seed`. Available once `status` is `succeeded`; `null` before then and for `failed`/`cancelled` generations. For multi-image batches (`image_count` > 1) this is the seed of the first image (`output_urls[0]`); per-image seeds are not yet exposed. Image generations only.","example":819572108,"uniqueKey":"seed.oneOf.1","typeLabel":"null"}],"uniqueKey":"seed","typeLabel":"integer | null"},"video_duration":{"oneOf":[{"type":"integer","description":"Video duration in seconds (video generations only)","example":5,"uniqueKey":"video_duration.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Video duration in seconds (video generations only)","example":5,"uniqueKey":"video_duration.oneOf.1","typeLabel":"null"}],"uniqueKey":"video_duration","typeLabel":"integer | null"},"video_resolution":{"oneOf":[{"type":"string","description":"Video resolution (video generations only)","example":"480p","enum":["480p","720p","1080p"],"uniqueKey":"video_resolution.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Video resolution (video generations only)","example":"480p","enum":["480p","720p","1080p"],"uniqueKey":"video_resolution.oneOf.1","typeLabel":"null"}],"uniqueKey":"video_resolution","typeLabel":"enum\u003cstring> | null"},"video_ratio":{"oneOf":[{"type":"string","description":"Video aspect ratio (video generations only)","example":"16:9","enum":["16:9","4:3","1:1","3:4","9:16","21:9","adaptive"],"uniqueKey":"video_ratio.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Video aspect ratio (video generations only)","example":"16:9","enum":["16:9","4:3","1:1","3:4","9:16","21:9","adaptive"],"uniqueKey":"video_ratio.oneOf.1","typeLabel":"null"}],"uniqueKey":"video_ratio","typeLabel":"enum\u003cstring> | null"},"video_generate_audio":{"oneOf":[{"type":"boolean","description":"Whether the generated video includes synchronized audio (video generations only). This is the audio setting actually applied. It normally matches your `generate_audio`, or the selected video model's default when you omit it, but the platform resolves the final value for the request. Read this field rather than assuming your request value.","example":true,"uniqueKey":"video_generate_audio.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Whether the generated video includes synchronized audio (video generations only). This is the audio setting actually applied. It normally matches your `generate_audio`, or the selected video model's default when you omit it, but the platform resolves the final value for the request. Read this field rather than assuming your request value.","example":true,"uniqueKey":"video_generate_audio.oneOf.1","typeLabel":"null"}],"uniqueKey":"video_generate_audio","typeLabel":"boolean | null"},"video_task":{"oneOf":[{"type":"string","description":"Resolved reference-video task (video generations only). `reference`: the generation borrows the clip's motion for a new scene. `extend`: the generation continues the clip itself. `null` on every generation that did not supply `reference_video_url` (including all pre-existing rows). Additional task types may be introduced in future API versions — treat an unrecognized value as opaque.","example":"reference","uniqueKey":"video_task.oneOf.0","typeLabel":"string"},{"type":"null","description":"Resolved reference-video task (video generations only). `reference`: the generation borrows the clip's motion for a new scene. `extend`: the generation continues the clip itself. `null` on every generation that did not supply `reference_video_url` (including all pre-existing rows). Additional task types may be introduced in future API versions — treat an unrecognized value as opaque.","example":"reference","uniqueKey":"video_task.oneOf.1","typeLabel":"null"}],"uniqueKey":"video_task","typeLabel":"string | null"},"extend_direction":{"oneOf":[{"type":"string","description":"Resolved extend direction (video generations only). Non-null only when `video_task` is `extend`; `null` otherwise (including every reference-mode and non-reference generation).","example":"forward","enum":["forward","backward"],"uniqueKey":"extend_direction.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Resolved extend direction (video generations only). Non-null only when `video_task` is `extend`; `null` otherwise (including every reference-mode and non-reference generation).","example":"forward","enum":["forward","backward"],"uniqueKey":"extend_direction.oneOf.1","typeLabel":"null"}],"uniqueKey":"extend_direction","typeLabel":"enum\u003cstring> | null"},"reference_video_url":{"oneOf":[{"type":"string","description":"The reference video URL you submitted, echoed back VERBATIM as you sent it — never re-signed, never a storage path. `null` for generations that did not supply `reference_video_url` (including every dashboard-originated row, and including an `inference_type: \"r2v\"` generation whose motion reference the platform built from a first frame plus a pinned or matched video model — this field, not `inference_type`, is what distinguishes your own clip from a platform-built reference).","example":"https://cdn.example.com/clips/dance-loop.mp4","uniqueKey":"reference_video_url.oneOf.0","typeLabel":"string"},{"type":"null","description":"The reference video URL you submitted, echoed back VERBATIM as you sent it — never re-signed, never a storage path. `null` for generations that did not supply `reference_video_url` (including every dashboard-originated row, and including an `inference_type: \"r2v\"` generation whose motion reference the platform built from a first frame plus a pinned or matched video model — this field, not `inference_type`, is what distinguishes your own clip from a platform-built reference).","example":"https://cdn.example.com/clips/dance-loop.mp4","uniqueKey":"reference_video_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"reference_video_url","typeLabel":"string | null"},"reference_audio_url":{"oneOf":[{"type":"string","description":"The reference audio URL you submitted, echoed back VERBATIM as you sent it. `null` for generations that did not supply `reference_audio_url`.","example":"https://cdn.example.com/audio/voiceover.mp3","uniqueKey":"reference_audio_url.oneOf.0","typeLabel":"string"},{"type":"null","description":"The reference audio URL you submitted, echoed back VERBATIM as you sent it. `null` for generations that did not supply `reference_audio_url`.","example":"https://cdn.example.com/audio/voiceover.mp3","uniqueKey":"reference_audio_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"reference_audio_url","typeLabel":"string | null"},"video_lora_id":{"oneOf":[{"type":"string","description":"The video model (an id or slug from GET /v1/video_loras) behind this generation (video generations only) — either the `video_lora_id` you pinned on the request, or the model the platform auto-matched to your prompt when none was pinned. `null` for a plain (no video model) generation, and always `null` on image generations.","example":"action_01HXMQ7Z3K8Y2VNABCDEFGHJKM","uniqueKey":"video_lora_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"The video model (an id or slug from GET /v1/video_loras) behind this generation (video generations only) — either the `video_lora_id` you pinned on the request, or the model the platform auto-matched to your prompt when none was pinned. `null` for a plain (no video model) generation, and always `null` on image generations.","example":"action_01HXMQ7Z3K8Y2VNABCDEFGHJKM","uniqueKey":"video_lora_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"video_lora_id","typeLabel":"string | null"},"video_lora_name":{"oneOf":[{"type":"string","description":"Display name of the video model in `video_lora_id`, if any. Omitted for plain generations (no pinned or matched video model).","example":"Cinematic Pan","uniqueKey":"video_lora_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Display name of the video model in `video_lora_id`, if any. Omitted for plain generations (no pinned or matched video model).","example":"Cinematic Pan","uniqueKey":"video_lora_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"video_lora_name","typeLabel":"string | null"},"character_id":{"oneOf":[{"type":"string","description":"Character ID supplied on the request (`char_\u003culid>` or legacy UUID), echoed back. `null` when no character was attached to this generation.","example":"char_01HXMQ7Z3K8Y2VNABCDEFGHJKM","uniqueKey":"character_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Character ID supplied on the request (`char_\u003culid>` or legacy UUID), echoed back. `null` when no character was attached to this generation.","example":"char_01HXMQ7Z3K8Y2VNABCDEFGHJKM","uniqueKey":"character_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"character_id","typeLabel":"string | null"},"subjects":{"oneOf":[{"description":"Ordered subjects composed into this generation (positional — entry N echoes entry N of the identity inputs sent on create; legacy `character_id` / `reference_image_urls` inputs are normalized into the same projection). Character entries carry the opaque `char_\u003culid>`; reference entries echo only their image count, never URLs. Video generations echo their cast the same way (up to 2 entries), matching the `subjects[]` array accepted by POST /v1/videos. Character entries on generations created before cast snapshotting may carry `character_id: null`; the id is never substituted with an internal identifier. `null` for generations that did not compose subjects (plain prompt-only or style generations, and context-image generations). The engine is not exposed.","example":[{"type":"character","character_id":"char_01HXMQ7Z3K8Y2VNABCDEFGHJKM","image_count":1},{"type":"reference","character_id":null,"image_count":2}],"type":"array","items":{"type":"object","properties":{"type":{"type":"string","description":"Subject kind. `character` entries reference a saved character; `reference` entries were supplied as ad-hoc reference images.","enum":["character","reference"],"example":"character","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"character_id":{"oneOf":[{"type":"string","description":"Opaque character ID (`char_\u003culid>`) for `character` subjects — the same ID accepted by `subjects[].character_id` on create. `null` for `reference` subjects.","example":"char_01HXMQ7Z3K8Y2VNABCDEFGHJKM","uniqueKey":"subjects.oneOf.0.items.[INDEX].character_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Opaque character ID (`char_\u003culid>`) for `character` subjects — the same ID accepted by `subjects[].character_id` on create. `null` for `reference` subjects.","example":"char_01HXMQ7Z3K8Y2VNABCDEFGHJKM","uniqueKey":"subjects.oneOf.0.items.[INDEX].character_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"subjects.oneOf.0.items.[INDEX].character_id","typeLabel":"string | null"},"image_count":{"type":"integer","description":"Number of input images this subject contributed to the composition.","example":1,"uniqueKey":"subjects.oneOf.0.items.[INDEX].image_count","typeLabel":"integer"}},"required":["type"],"uniqueKey":"subjects.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"subjects.oneOf.0","typeLabel":"object[]"},{"description":"Ordered subjects composed into this generation (positional — entry N echoes entry N of the identity inputs sent on create; legacy `character_id` / `reference_image_urls` inputs are normalized into the same projection). Character entries carry the opaque `char_\u003culid>`; reference entries echo only their image count, never URLs. Video generations echo their cast the same way (up to 2 entries), matching the `subjects[]` array accepted by POST /v1/videos. Character entries on generations created before cast snapshotting may carry `character_id: null`; the id is never substituted with an internal identifier. `null` for generations that did not compose subjects (plain prompt-only or style generations, and context-image generations). The engine is not exposed.","example":[{"type":"character","character_id":"char_01HXMQ7Z3K8Y2VNABCDEFGHJKM","image_count":1},{"type":"reference","character_id":null,"image_count":2}],"type":"null","items":{"type":"object","properties":{"type":{"type":"string","description":"Subject kind. `character` entries reference a saved character; `reference` entries were supplied as ad-hoc reference images.","enum":["character","reference"],"example":"character"},"character_id":{"oneOf":[{"type":"string","description":"Opaque character ID (`char_\u003culid>`) for `character` subjects — the same ID accepted by `subjects[].character_id` on create. `null` for `reference` subjects.","example":"char_01HXMQ7Z3K8Y2VNABCDEFGHJKM"},{"type":"null","description":"Opaque character ID (`char_\u003culid>`) for `character` subjects — the same ID accepted by `subjects[].character_id` on create. `null` for `reference` subjects.","example":"char_01HXMQ7Z3K8Y2VNABCDEFGHJKM"}]},"image_count":{"type":"integer","description":"Number of input images this subject contributed to the composition.","example":1}},"required":["type"]},"uniqueKey":"subjects.oneOf.1","typeLabel":"null"}],"uniqueKey":"subjects","typeLabel":"object[] | null"},"context_images":{"oneOf":[{"type":"object","description":"Count-only echo of the `context_images[]` sent on create — the number of loose reference images supplied, never the image URLs themselves. `null` for every generation that did not use `context_images` (plain prompt-only, style, subject, and video generations).","required":["image_count"],"example":{"image_count":3},"properties":{"image_count":{"type":"integer","description":"Number of context images supplied on the request.","example":3,"isRequired":true,"uniqueKey":"context_images.oneOf.0.image_count","typeLabel":"integer"}},"uniqueKey":"context_images.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"context_images.oneOf.1","typeLabel":"null"}],"uniqueKey":"context_images","typeLabel":"object | null"},"action":{"oneOf":[{"type":"object","description":"The composition act applied to this generation, echoed as `{ id, name }`. An act is applied either because you pinned it with `action_id` or because act detection matched one automatically. `id` is the act identifier from `GET /v1/actions`; `name` is its display name (or `null` when the name was not recorded). `null` for every generation that did not apply an act — plain prompt-only, style, context-image, and video generations. A new, always-present, nullable key: existing integrations that do not read it are unaffected.","required":["id"],"example":{"id":"3f2b6c1e-8a4d-4e2b-9c7a-1d5e8f0a2b3c","name":"Over-the-shoulder"},"properties":{"id":{"type":"string","description":"Composition-act identifier — the same id returned by `GET /v1/actions` and accepted by `action_id` on `POST /v1/images`.","example":"3f2b6c1e-8a4d-4e2b-9c7a-1d5e8f0a2b3c","format":"uuid","isRequired":true,"uniqueKey":"action.oneOf.0.id","typeLabel":"string\u003cuuid>"},"name":{"oneOf":[{"type":"string","description":"Display name of the applied act. `null` when the name was not recorded on the row.","example":"Over-the-shoulder","uniqueKey":"action.oneOf.0.name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Display name of the applied act. `null` when the name was not recorded on the row.","example":"Over-the-shoulder","uniqueKey":"action.oneOf.0.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"action.oneOf.0.name","typeLabel":"string | null"}},"uniqueKey":"action.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"action.oneOf.1","typeLabel":"null"}],"uniqueKey":"action","typeLabel":"object | null"},"style":{"oneOf":[{"type":"object","description":"The prompt style applied to this generation, echoed as `{ id, name }`. A style is applied either because you pinned it with `lora_id` or because style matching resolved one from your prompt — the echo always reflects the style that actually ran (a retired id that aliases to a successor echoes the successor). `id` is the `lora_*` identifier from `GET /v1/loras` and round-trips into `lora_id`. `null` for every generation without a style — including `lora_id: null` requests, retired styles that generate plain, video generations, and all rows minted before styles shipped. A new, always-present, nullable key: existing integrations that do not read it are unaffected.","required":["id"],"example":{"id":"lora_06AAAAAAAAAAAAAAAAAAAAAAAA","name":"Ring-Light Creator"},"properties":{"id":{"oneOf":[{"type":"string","description":"Style identifier — the same `lora_*` id returned by `GET /v1/loras` and accepted by `lora_id` on `POST /v1/images`. Pass it back as `lora_id` to reuse the style. `null` only on degenerate legacy rows.","example":"lora_06AAAAAAAAAAAAAAAAAAAAAAAA","isRequired":true,"uniqueKey":"style.oneOf.0.id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Style identifier — the same `lora_*` id returned by `GET /v1/loras` and accepted by `lora_id` on `POST /v1/images`. Pass it back as `lora_id` to reuse the style. `null` only on degenerate legacy rows.","example":"lora_06AAAAAAAAAAAAAAAAAAAAAAAA","isRequired":true,"uniqueKey":"style.oneOf.0.id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"style.oneOf.0.id","typeLabel":"string | null"},"name":{"oneOf":[{"type":"string","description":"Display name of the applied style. `null` when the name was not recorded on the row.","example":"Ring-Light Creator","uniqueKey":"style.oneOf.0.name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Display name of the applied style. `null` when the name was not recorded on the row.","example":"Ring-Light Creator","uniqueKey":"style.oneOf.0.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"style.oneOf.0.name","typeLabel":"string | null"}},"uniqueKey":"style.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"style.oneOf.1","typeLabel":"null"}],"uniqueKey":"style","typeLabel":"object | null"},"warnings":{"description":"Non-fatal request adjustments, present ONLY on the `POST /v1/images` 201 body (and the estimate response) — never on GET reads, list rows, or webhook payloads. Omitted entirely when empty. Current codes: `parameter_ignored`, `style_retired_plain`; new codes may be added without a version bump — ignore unknown codes. Idempotent replays return the original warnings verbatim.","example":[{"code":"style_retired_plain","param":"lora_id","message":"Style lora_06AAAAAAAAAAAAAAAAAAAAAAAA is retired and no longer applies a style — this request generates without one."}],"type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable warning code. Current values: `parameter_ignored` (a parameter you sent has no effect on this generation path and was ignored) and `style_retired_plain` (the pinned `lora_id` is retired — the generation proceeded without a style). This is an OPEN set: new codes may be added without a version bump, so ignore unknown codes rather than failing on them.","example":"style_retired_plain","isRequired":true,"uniqueKey":"warnings.items.[INDEX].code","typeLabel":"string"},"param":{"type":"string","description":"Machine-readable name of the request field the warning is about (e.g. `lora_id`, `seed`).","example":"lora_id","isRequired":true,"uniqueKey":"warnings.items.[INDEX].param","typeLabel":"string"},"message":{"type":"string","description":"Human-readable explanation. Wording may change; branch on `code`/`param`, not on this text.","example":"Style lora_06AAAAAAAAAAAAAAAAAAAAAAAA is retired and no longer applies a style — this request generates without one.","isRequired":true,"uniqueKey":"warnings.items.[INDEX].message","typeLabel":"string"}},"required":["code","param","message"],"uniqueKey":"warnings.items.[INDEX]","typeLabel":"object"},"uniqueKey":"warnings","typeLabel":"object[]"},"enhancer_outcome":{"oneOf":[{"type":"string","description":"Outcome of the prompt-optimization step, echoed for observability. Current values: `no_request` (the request did not invoke it), `succeeded`, `identical`, `refused`, `transport_error`, `length_overflow`; `null` on rows minted before this field existed. INFORMATIONAL and deliberately an OPEN set (no schema enum — codegen clients must not mint a closed union): do not branch control flow on it; new values may be added without a version bump.","example":"succeeded","uniqueKey":"enhancer_outcome.oneOf.0","typeLabel":"string"},{"type":"null","description":"Outcome of the prompt-optimization step, echoed for observability. Current values: `no_request` (the request did not invoke it), `succeeded`, `identical`, `refused`, `transport_error`, `length_overflow`; `null` on rows minted before this field existed. INFORMATIONAL and deliberately an OPEN set (no schema enum — codegen clients must not mint a closed union): do not branch control flow on it; new values may be added without a version bump.","example":"succeeded","uniqueKey":"enhancer_outcome.oneOf.1","typeLabel":"null"}],"uniqueKey":"enhancer_outcome","typeLabel":"string | null"},"loras":{"oneOf":[{"description":"LoRAs applied to this generation. `null` for prompt-only and pure-reference generations.","type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Opaque LoRA ID resolved at dispatch time","example":"lora_01HXMQ7Z3K8Y2VNABCDEFGHJKM","uniqueKey":"loras.oneOf.0.items.[INDEX].id","typeLabel":"string"},"name":{"type":"string","description":"LoRA display name","example":"Sunset Style","uniqueKey":"loras.oneOf.0.items.[INDEX].name","typeLabel":"string"}},"uniqueKey":"loras.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"loras.oneOf.0","typeLabel":"object[]"},{"description":"LoRAs applied to this generation. `null` for prompt-only and pure-reference generations.","type":"null","items":{"type":"object","properties":{"id":{"type":"string","description":"Opaque LoRA ID resolved at dispatch time","example":"lora_01HXMQ7Z3K8Y2VNABCDEFGHJKM"},"name":{"type":"string","description":"LoRA display name","example":"Sunset Style"}}},"uniqueKey":"loras.oneOf.1","typeLabel":"null"}],"uniqueKey":"loras","typeLabel":"object[] | 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"},"creation_request_id":{"type":"string","description":"Aurous-Request-Id of the POST that created this row. Quote in support tickets to trace the original create request.","example":"req_01HXMQ7Z3K8Y2VNABCDEFGHJKM","uniqueKey":"creation_request_id","typeLabel":"string"},"completed_at":{"oneOf":[{"type":"string","description":"Terminal-status timestamp (ISO 8601). NULL until the generation reaches a terminal state.","example":"2026-05-04T10:00:14Z","uniqueKey":"completed_at.oneOf.0","typeLabel":"string"},{"type":"null","description":"Terminal-status timestamp (ISO 8601). NULL until the generation reaches a terminal state.","example":"2026-05-04T10:00:14Z","uniqueKey":"completed_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"completed_at","typeLabel":"string | null"}},"required":["object","id","status","prompt","created_at"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"object":"inference","id":"img_01HXMQ7Z3K8Y2VNABCDEFGHJKM","status":"succeeded","prompt":"A golden sunset over mountains, cinematic lighting","created_at":"2026-05-04T10:00:00Z","media_type":"image","output_urls":["https://api.aurous-labs.com/v1/images/img_01HXMQ7Z3K8Y2VNABCDEFGHJKM/output/0"],"video_url":"https://api.aurous-labs.com/v1/videos/vid_01HXMQ7Z3K8Y2VNABCDEFGHJKM/output?token=...","reference_image_urls":["https://example.com/ref1.jpg"],"error_message":"Content policy violation","error_code":"generation_interrupted","duration_ms":14820,"cost":{"amount":6.5,"currency":"credit","breakdown":{"base":6.5,"size_tier":"standard"}},"width":1472,"height":1472,"image_count":1,"size_preset":"1_5k_1_1","inference_type":"t2i","cfg_rescale":0.7,"denoise_strength":0.6,"seed":819572108,"video_duration":5,"video_resolution":"480p","video_ratio":"16:9","video_generate_audio":true,"video_task":"reference","extend_direction":"forward","reference_video_url":"https://cdn.example.com/clips/dance-loop.mp4","reference_audio_url":"https://cdn.example.com/audio/voiceover.mp3","video_lora_id":"action_01HXMQ7Z3K8Y2VNABCDEFGHJKM","video_lora_name":"Cinematic Pan","character_id":"char_01HXMQ7Z3K8Y2VNABCDEFGHJKM","subjects":[{"type":"character","character_id":"char_01HXMQ7Z3K8Y2VNABCDEFGHJKM","image_count":1},{"type":"reference","character_id":null,"image_count":2}],"context_images":{"image_count":3},"action":{"id":"3f2b6c1e-8a4d-4e2b-9c7a-1d5e8f0a2b3c","name":"Over-the-shoulder"},"style":{"id":"lora_06AAAAAAAAAAAAAAAAAAAAAAAA","name":"Ring-Light Creator"},"warnings":[{"code":"style_retired_plain","param":"lora_id","message":"Style lora_06AAAAAAAAAAAAAAAAAAAAAAAA is retired and no longer applies a style — this request generates without one."}],"enhancer_outcome":"succeeded","loras":[{"id":"lora_01HXMQ7Z3K8Y2VNABCDEFGHJKM","name":"Sunset Style"}],"aurous_version":"2026-08-26","creation_request_id":"req_01HXMQ7Z3K8Y2VNABCDEFGHJKM","completed_at":"2026-05-04T10:00:14Z"}}},"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"},"9ca0b57b-4376-41d7-9f58-9c7df990af37":{"description":"Generation already in a terminal non-cancellable state","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"},"ecdbe44a-c8af-4272-9be6-325d70004300":{"description":"Unauthorized — missing or invalid API key","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"},"a482c273-cc56-4082-86b1-66dc1f9615fa":{"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"},"1df249b7-6abe-40b6-a196-0e7fd6c6cc37":{"description":"Generation not found","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"},"4d6b36a4-85de-4f4b-9f9e-8865843de645":{"description":"Rate limit exceeded for this endpoint class. error.code is `too_many_requests` (request-count limit; LLM endpoints may instead return `tpm_rate_limit_exceeded` or `concurrency_limit_exceeded`). Retry after the number of seconds in the `Retry-After` response 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"},"557c1fb6-c645-490e-a73b-1e19fb9154f8":{"description":"Temporarily unable to verify account/billing state or prepare the request (error.code: `provider_unavailable`). 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":{"e0b8ed5b-13f8-4649-87fc-328fde1bad7f":{"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":"Cancel a pending or processing generation - Aurous Labs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-23T06:19:12.518Z","originalFileLocation":"api-reference/public-api-v1/cancel-a-pending-or-processing-generation.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=\"Cancels a generation that has not yet completed. Returns the cancelled generation resource. On a generation already in cancelled state this is a no-op (idempotent). On a generation already in succeeded or failed this returns 400 invalid_request / generation_not_cancellable (terminal states cannot be undone). Hold-released or refund-applied credits are reflected on the next GET /v1/balance.\">\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=\"Cancel a pending or processing generation - Aurous Labs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Cancels a generation that has not yet completed. Returns the cancelled generation resource. On a generation already in cancelled state this is a no-op (idempotent). On a generation already in succeeded or failed this returns 400 invalid_request / generation_not_cancellable (terminal states cannot be undone). Hold-released or refund-applied credits are reflected on the next GET /v1/balance.\">\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/public-api-v1/cancel-a-pending-or-processing-generation\">\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=Images\u0026amp;title=Cancel+a+pending+or+processing+generation\u0026amp;description=Cancels+a+generation+that+has+not+yet+completed.+Returns+the+cancelled+generation+resource.+On+a+generation+already+in+%60cancelled%60+state+this+is+a+no-op+%28idempo\u0026amp;theme=a84e348be4cda03ca3be04c0\u0026amp;signature=0513b3e3a8cdf7df70b9c9e52d09ad1d64b404bf8d4eb768ea152f83f882e53c\">\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=\"Cancel a pending or processing generation - Aurous Labs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Cancels a generation that has not yet completed. Returns the cancelled generation resource. On a generation already in cancelled state this is a no-op (idempotent). On a generation already in succeeded or failed this returns 400 invalid_request / generation_not_cancellable (terminal states cannot be undone). Hold-released or refund-applied credits are reflected on the next GET /v1/balance.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://mayatech.mintlify.app/_mintlify/api/og/v2?division=Images\u0026amp;title=Cancel+a+pending+or+processing+generation\u0026amp;description=Cancels+a+generation+that+has+not+yet+completed.+Returns+the+cancelled+generation+resource.+On+a+generation+already+in+%60cancelled%60+state+this+is+a+no-op+%28idempo\u0026amp;theme=a84e348be4cda03ca3be04c0\u0026amp;signature=0513b3e3a8cdf7df70b9c9e52d09ad1d64b404bf8d4eb768ea152f83f882e53c\">\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/public-api-v1/cancel-a-pending-or-processing-generation\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/public-api-v1/cancel-a-pending-or-processing-generation.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/public-api-v1/cancel-a-pending-or-processing-generation#webpage\",\"url\":\"https://docs.aurous-labs.com/api-reference/public-api-v1/cancel-a-pending-or-processing-generation\",\"name\":\"Cancel a pending or processing generation\",\"description\":\"Cancels a generation that has not yet completed. Returns the cancelled generation resource. On a generation already in cancelled state this is a no-op (idempotent). On a generation already in succeeded or failed this returns 400 invalid_request / generation_not_cancellable (terminal states cannot be undone). Hold-released or refund-applied credits are reflected on the next GET /v1/balance.\",\"dateModified\":\"2026-10-23T06:19:12.518Z\",\"isPartOf\":{\"@id\":\"https://docs.aurous-labs.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.aurous-labs.com/api-reference/public-api-v1/cancel-a-pending-or-processing-generation#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.aurous-labs.com/api-reference/public-api-v1/cancel-a-pending-or-processing-generation#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"API Reference\",\"item\":\"https://docs.aurous-labs.com/api-reference/openapi\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Images\",\"item\":\"https://docs.aurous-labs.com/api-reference/images/models-and-pricing\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Cancel a pending or processing generation\",\"item\":\"https://docs.aurous-labs.com/api-reference/public-api-v1/cancel-a-pending-or-processing-generation\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.aurous-labs.com/api-reference/public-api-v1/cancel-a-pending-or-processing-generation#apireference\",\"headline\":\"Cancel a pending or processing generation\",\"name\":\"Cancel a pending or processing generation\",\"description\":\"Cancels a generation that has not yet completed. Returns the cancelled generation resource. On a generation already in cancelled state this is a no-op (idempotent). On a generation already in succeeded or failed this returns 400 invalid_request / generation_not_cancellable (terminal states cannot be undone). Hold-released or refund-applied credits are reflected on the next GET /v1/balance.\",\"url\":\"https://docs.aurous-labs.com/api-reference/public-api-v1/cancel-a-pending-or-processing-generation\",\"mainEntityOfPage\":{\"@id\":\"https://docs.aurous-labs.com/api-reference/public-api-v1/cancel-a-pending-or-processing-generation#webpage\"},\"dateModified\":\"2026-10-23T06:19:12.518Z\",\"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","description":"Fetch the live state of a generation by ID. Poll this for status.","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","description":"Same DTO as POST /v1/images. Returns the projected credit cost and a per-line-item breakdown (`base`, plus the `size_tier` this request would bill — `standard` or `large` — and `discount_factor` when your team has a negotiated discount) without enqueuing the work. `size_tier` is a STRING and `discount_factor` (when present) is a multiplier, not a credit amount — `base` alone equals the total, so skip both when reproducing `amount`. Reference images are free and do not affect price. Inputs are validated with the same rules as the create path — a private style from another team, a retired style that no longer generates (400 `style_retired`), a foreign or not-ready character subject, an over-budget subjects[] all return the same error a real POST /v1/images would — with one difference: the estimate never fetches inline https reference URLs, so a problem specific to a URL (unreachable host, non-image content) only surfaces at create. `count` multiplies the quote on every request shape — plain, `subjects[]`, and `context_images` alike: images generate in parallel and you are billed per image, with partial failures delivering fewer images and auto-refunding the difference, so estimate(count: 4) equals 4 × estimate(count: 1). The response carries the same `warnings[]` the real create would return — a retired style that generates without a style, or a parameter with no effect on the selected generation path — so you can surface them before spending credits. Isolated rate-limit bucket (`estimate_post`, 120/min) so pricing-check loops do not crowd out real generations. Reference images can be supplied via reference_image_urls (mutually exclusive with character_id) or as `reference` subjects. A `context_images` estimate fires the same 400 combination errors a real POST /v1/images would, and never fetches inline https entries (file IDs are still ownership-checked). When you pin an `action_id`, the estimate runs the identical composition-act gates as POST /v1/images — existence/visibility (an unknown or inaccessible act → 404 `resource_not_found`) and, when subjects are present, the subject-count check (an unsupported count → 400 `action_not_available`, whose message names the counts the act supports) — but never picks or signs a reference still. The same gates run when your `lora_id` is a composition-act id (it acts as the pin). Acts and styles do not change the price.","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","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","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":"Cancel a pending or processing generation - 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"]}