Use dry run mode to estimate the cost of a request without executing it. This validates your request parameters and returns pricing information so you can make informed decisions before generating.
Making a dry run request
Add ?dryRun=true as a query parameter to any request (chat completions, image generation, or image editing):
curl "https://api.lumenfall.ai/openai/v1/images/generations?dryRun=true" \
-H "Authorization: Bearer $LUMENFALL_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-3-pro-image",
"prompt": "A capybara relaxing in a hot spring",
"size": "1024x1024",
"n": 2
}'
Dry run mode works with chat completions, image generation, and image editing endpoints.
Dry run requests return a cost estimate instead of generated images:
{
"estimated": true,
"model": "gemini-3-pro-image",
"provider": "vertex",
"total_cost_micros": 80000,
"currency": "USD",
"components": [
{
"type": "output",
"metric": "image",
"quantity": 2,
"billable_quantity": 2,
"unit_price": 0.04,
"total_cost": 80000
}
]
}
Response fields
| Field | Type | Description |
|---|
estimated | boolean | Always true for dry run responses |
model | string | The model that would be used |
provider | string | The provider that would handle the request (may differ on actual request as routing is re-evaluated) |
total_cost_micros | integer | Total estimated cost in micros (1/1,000,000 USD) |
currency | string | Currency code (always USD) |
components | array | Breakdown of cost components |
Cost components
Each component in the components array contains:
| Field | Type | Description |
|---|
type | string | Component type (e.g., output, input) |
metric | string | What is being measured (e.g., image, token) |
quantity | integer | Number of units requested |
billable_quantity | integer | Number of units that will be billed |
unit_price | number | Price per unit in USD |
total_cost | integer | Component cost in micros |
Converting micros to dollars
Costs are returned in micros (millionths of a dollar) for precision. To convert to dollars:
cost_dollars = total_cost_micros / 1_000_000
For example, 80000 micros equals $0.08.
Notes
Cost estimates are approximate. Effective pricing is calculated after the request runs, because final costs may depend on outputs (such as token counts or the number of images generated).
Dry run requests:
- Validate your request parameters
- Do not execute the request (no text generation or image creation)
- Do not affect your account balance
- Return quickly since no generation occurs