Estimate the credit cost of an image generation
Same DTO as POST /v1/images. Returns the projected credit cost and a per-line-item breakdown (base + optional enhance) without enqueuing the work. Reference images are free and do not affect price. Inputs are validated identically to the create path: a private LoRA from another team, an inactive LoRA, or an unknown reference URL all return the same error a real POST /v1/images would. 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).
Authorizations
Your team API key (starts with al_live_).
Headers
Optional API version pin (YYYY-MM-DD). Defaults to your team's pinned version, or the system default 2026-05-15 for unauthenticated requests.
^\d{4}-\d{2}-\d{2}$"2026-05-15"
Body
The text prompt describing the image to generate. 1-4000 characters; whitespace-only is rejected.
1 - 4000"A golden sunset over mountains, cinematic lighting, 8k resolution"
Negative prompt - elements to exclude from the generated image. 1-4000 characters.
1 - 4000"blurry, low quality, watermark, text"
Optional. Opaque LoRA identifier (lora_*) or URL-friendly slug, from GET /v1/loras. UUIDs are also accepted for legacy back-compat. If omitted, the platform will choose a suitable style based on your prompt; if none matches, your prompt is generated without a style.
"lora_01HXMQ7Z3K8Y2ABCDEFGHJKM"
Optional character ID (char_<ulid> from POST /v1/characters; UUID also accepted for legacy back-compat). When set, the character's reference images are sent to the model as visual anchors for identity consistency. The character must be in status: ready — referencing a synthesizing / reviewing / failed character returns 400 character_not_ready. Cross-team character_ids return 404 (existence is never leaked). Mutually exclusive with reference_image_urls: sending both returns 400 mutually_exclusive_input.
"char_01HXMQ7Z3K8Y2ABCDEFGHJKM"
Custom output image width in pixels. Use with height OR use size (preset), not both. Range [1024, 4096]; snapped server-side to the nearest multiple of 32. Sending both size and custom dimensions returns 400 with code parameter_invalid_combination. Sending only one of width/height returns 400 with code missing_field.
1024 <= x <= 40962048
Custom output image height in pixels. Use with width OR use size (preset), not both. Range [1024, 4096]; snapped server-side to the nearest multiple of 32. Sending both size and custom dimensions returns 400 with code parameter_invalid_combination. Sending only one of width/height returns 400 with code missing_field.
1024 <= x <= 40962048
Number of diffusion steps (higher = more detail, slower). If omitted, resolves to the default for the selected style, then a platform default of 11. An explicit value always takes precedence.
1 <= x <= 10030
Guidance scale - how closely to follow the prompt (higher = more literal). If omitted, resolves to the default for the selected style, then a platform default of 4.3. An explicit value always takes precedence.
0.1 <= x <= 307.5
CFG rescale factor — dampens classifier-free guidance to reduce burn/oversaturation at high guidance_scale values. Range 0.0-1.0. If omitted, resolves to the default for the selected style, then a platform default of 0.7. Applies to every image generation regardless of references. An explicit value always takes precedence.
0 <= x <= 10.7
Denoising strength applied when reference images or a character are attached. Range 0.0-1.0. If omitted on a request that has references, resolves to the style or character consistency default, then a platform default of 0.6. Ignored (and never defaulted) on bare text-to-image requests with no references. An explicit value always takes precedence.
0 <= x <= 10.6
Random seed for reproducible generations. Omit to let the model pick a random seed — the concrete value it used is returned as seed on the succeeded generation, so you can pass that value back here to reproduce the result.
42
Image size as a named preset. Use this OR custom width/height, not both. Format is <tier>_<ratio> where tier is 2k or 4k and ratio matches the supported aspect-ratio set. Sending both size and custom dimensions returns 400 with code parameter_invalid_combination.
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 "2k_1_1"
Number of images to generate in this request
1 <= x <= 41
When true, an LLM rewrites your prompt before generation using the LoRA's style template. This is the only customer-facing prompt-shaping toggle in the public API. Pricing: enhanced generations cost a configurable multiplier of the base rate.
false
Optional webhook URL. When provided, a POST request will be sent to this URL when the generation completes or fails. The payload contains an event field ("image.completed" or "image.failed") and a data field with the generation details (same shape as GET /v1/images/:id). Delivery is attempted up to 3 times with a 2-second delay between retries.
"https://your-server.com/webhooks/aurouslabs"
Up to 6 reference images. Each entry can be either:
- an opaque file ID
file_<ulid>returned byPOST /v1/files, or - an
https://URL pointing at a public host (max 2048 chars). URLs are server-side fetched through an SSRF-pinned client (rejects private IPs / loopback / link-local / cloud metadata) and materialized as a 24h-TTL file under your team. Pricing matches the reference-image rate (see Pricing). Empty array or omitted is treated as "no references". Mutually exclusive withcharacter_id— sending both returns 400mutually_exclusive_input.
6[
"file_01HXMQ7Z3K8Y2NABCDEFGHJKMN",
"https://example.com/ref2.jpg"
]Response
Cost estimate

