---
title: "POST /api/aurora_v2/estimate_cost/"
method: POST
path: "/api/aurora_v2/estimate_cost/"
tags: ["aurora_v2"]
---

# POST /api/aurora_v2/estimate_cost/

`POST /api/aurora_v2/estimate_cost/`

## Request

- The document declares no server URL.
- Auth: API key in header `X-API-ID` and API key in header `X-API-KEY`

## Request body

- AuroraFlowV2: Aurora API v2 — direct FAL render, S3 lifecycle-managed retention. Differs from v1 in three ways: - `ttl_days` defaults to 7 rather than no expiry, so every output lands under `ttl/<N>d/aurora_v2/` and inherits the matching S3 lifecycle rule. - Does NOT mirror the customer-supplied `audio` and `image` URLs into our S3. The URLs are passed through to FAL as-is (only the format, and for aurora_v2 the image limits, are gated synchronously). Callers MUST keep their URLs reachable until the job completes — see API docs for details. Saves the 2-5s S3 mirror (download + re-upload) at request time. What still costs a per-request Lambda fetch on external URLs: the audio duration probe (needed for the credit pre-check) and, for aurora_v2, the image dimension/size probe (~1-3s, download-only, uncached — `_cached_media_probe` memoizes only Creatify-hosted URLs). - `video_output` reflects the raw FAL upload at `cdn.creatify.ai/ttl/...` rather than the v1 Remotion composite, since v2 skips Remotion entirely.
  - `id` string, uuid, required
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required
  - `name` string, nullable: Name of the aurora video
  - `audio` string, uri, required: Audio file url for the aurora video, 5 minutes max, 'mp3' and 'wav' formats only
  - `image` string, uri: Image URL for the aurora video ('png', 'jpg', 'jpeg', 'gif', 'webp'). Provide exactly one of `image` or `image_base64`.
  - `text_prompt` string: Optional text prompt describing the desired visual style, atmosphere, or scene composition for the video. This can include details such as camera angles, lighting, mood, environment, subject expression, pose, motion, and other cinematic or artistic elements to guide video generation.
  - `prompt_guidance_scale` number, double: Prompt guidance scale for image-to-video generation (0.0 to 10.0)
  - `model_version` 'aurora_v1' | 'aurora_v1_fast' | 'aurora_v2': * `aurora_v1` - Aurora v1 * `aurora_v1_fast` - Aurora v1 Fast * `aurora_v2` - Aurora v2
  - `resolution` union: Output resolution. Only applies to model_version 'aurora_v2' (Aurora 2.0): '480p' (0.4 credits per second), '720p' (0.7, the default), '1080p' (1.4) or '2k' (2.8, for audio up to 14.375 seconds). * `480p` - 480p * `720p` - 720p * `1080p` - 1080p * `2k` - 2k
    - '480p' | '720p' | '1080p' | '2k': * `480p` - 480p * `720p` - 720p * `1080p` - 1080p * `2k` - 2k
    - unknown
  - `ttl_days` integer: Number of days the generated video is retained in S3 before automatic expiration (1-7, default 7; 1 for zero-data-retention accounts). Actual deletion lands within `[ttl_days, ttl_days + 2]` days of creation due to S3 lifecycle scheduling.
  - `expires_at` string, nullable, required: ISO-8601 timestamp at which the generated video becomes eligible for deletion, or null when it does not expire. Actual deletion can lag up to 48h after this.
  - `output_upload_url` string, uri: Optional. An https presigned PUT URL you own (for example S3 or GCS). When set, the finished mp4 is uploaded there with `Content-Type: video/mp4` and deleted from Creatify's storage, so `video_output` stays null. If the upload fails, the job fails and is refunded. Never echoed back in responses.
  - `video_output` string, nullable, required: Video output URL
  - `credits_used` number, required: Credits used in this API call
  - `duration` integer, required: Duration of the video in seconds
  - `progress` number, double, required: Progress of the job
  - `failed_reason` string, required: Failed reason
  - `media_job` string, uuid, nullable, required: Media job associated with this Avatar X Flow
  - `status` 'pending' | 'in_queue' | 'running' | 'failed' | 'done' | 'rejected', required: * `pending` - Pending * `in_queue` - In Queue * `running` - Running * `failed` - Failed * `done` - Done * `rejected` - Rejected
  - `is_hidden` boolean, required: Is the video hidden in the website projects page
  - `webhook_url` string, uri, nullable: Webhook URL for status updates. Default is null.

## Response `200`

- AuroraFlowV2: Aurora API v2 — direct FAL render, S3 lifecycle-managed retention. Differs from v1 in three ways: - `ttl_days` defaults to 7 rather than no expiry, so every output lands under `ttl/<N>d/aurora_v2/` and inherits the matching S3 lifecycle rule. - Does NOT mirror the customer-supplied `audio` and `image` URLs into our S3. The URLs are passed through to FAL as-is (only the format, and for aurora_v2 the image limits, are gated synchronously). Callers MUST keep their URLs reachable until the job completes — see API docs for details. Saves the 2-5s S3 mirror (download + re-upload) at request time. What still costs a per-request Lambda fetch on external URLs: the audio duration probe (needed for the credit pre-check) and, for aurora_v2, the image dimension/size probe (~1-3s, download-only, uncached — `_cached_media_probe` memoizes only Creatify-hosted URLs). - `video_output` reflects the raw FAL upload at `cdn.creatify.ai/ttl/...` rather than the v1 Remotion composite, since v2 skips Remotion entirely.
  - `id` string, uuid, required
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required
  - `name` string, nullable: Name of the aurora video
  - `audio` string, uri, required: Audio file url for the aurora video, 5 minutes max, 'mp3' and 'wav' formats only
  - `image` string, uri: Image URL for the aurora video ('png', 'jpg', 'jpeg', 'gif', 'webp'). Provide exactly one of `image` or `image_base64`.
  - `text_prompt` string: Optional text prompt describing the desired visual style, atmosphere, or scene composition for the video. This can include details such as camera angles, lighting, mood, environment, subject expression, pose, motion, and other cinematic or artistic elements to guide video generation.
  - `prompt_guidance_scale` number, double: Prompt guidance scale for image-to-video generation (0.0 to 10.0)
  - `model_version` 'aurora_v1' | 'aurora_v1_fast' | 'aurora_v2': * `aurora_v1` - Aurora v1 * `aurora_v1_fast` - Aurora v1 Fast * `aurora_v2` - Aurora v2
  - `resolution` union: Output resolution. Only applies to model_version 'aurora_v2' (Aurora 2.0): '480p' (0.4 credits per second), '720p' (0.7, the default), '1080p' (1.4) or '2k' (2.8, for audio up to 14.375 seconds). * `480p` - 480p * `720p` - 720p * `1080p` - 1080p * `2k` - 2k
    - '480p' | '720p' | '1080p' | '2k': * `480p` - 480p * `720p` - 720p * `1080p` - 1080p * `2k` - 2k
    - unknown
  - `ttl_days` integer: Number of days the generated video is retained in S3 before automatic expiration (1-7, default 7; 1 for zero-data-retention accounts). Actual deletion lands within `[ttl_days, ttl_days + 2]` days of creation due to S3 lifecycle scheduling.
  - `expires_at` string, nullable, required: ISO-8601 timestamp at which the generated video becomes eligible for deletion, or null when it does not expire. Actual deletion can lag up to 48h after this.
  - `output_upload_url` string, uri: Optional. An https presigned PUT URL you own (for example S3 or GCS). When set, the finished mp4 is uploaded there with `Content-Type: video/mp4` and deleted from Creatify's storage, so `video_output` stays null. If the upload fails, the job fails and is refunded. Never echoed back in responses.
  - `video_output` string, nullable, required: Video output URL
  - `credits_used` number, required: Credits used in this API call
  - `duration` integer, required: Duration of the video in seconds
  - `progress` number, double, required: Progress of the job
  - `failed_reason` string, required: Failed reason
  - `media_job` string, uuid, nullable, required: Media job associated with this Avatar X Flow
  - `status` 'pending' | 'in_queue' | 'running' | 'failed' | 'done' | 'rejected', required: * `pending` - Pending * `in_queue` - In Queue * `running` - Running * `failed` - Failed * `done` - Done * `rejected` - Rejected
  - `is_hidden` boolean, required: Is the video hidden in the website projects page
  - `webhook_url` string, uri, nullable: Webhook URL for status updates. Default is null.

## Changes

- **2026-11-03** `8423ba73b422`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/creatify/apis/creatify-ai-api/changes/api/aurora_v2/estimate_cost/post.md)

---

[API](https://skmtc.dev/creatify/apis/creatify-ai-api.md) - [All operations](https://skmtc.dev/creatify/apis/creatify-ai-api/llms.txt) - [OpenAPI document](https://skmtc.dev/creatify/apis/creatify-ai-api/revisions/8423ba73b422?raw)
