Quote the complete input
The server normalizes defaults, filters incompatible channels, and applies each remaining channel’s pricing formula. Duration, resolution, audio, quality, and output_count may all change the total.
The maximum reservation covers one successful route per result item, not the sum of every possible failed attempt. A quote is an estimate of accepted limits, not a promise that a preview model will run.
Understand the upper bound
{
"is_preview": true,
"model": "prism-image-2",
"input": {
"prompt": "A sculptural chair in warm afternoon light",
"resolution": "1024"
},
"output_count": 4,
"estimated_credits": 80,
"max_reserved_credits": 240,
"channel_quotes": [
{
"channel_type": "third_party",
"credits": 80
},
{
"channel_type": "official",
"credits": 240
}
],
"price_version": "preview-2026-10-29",
"live_available": false
}channel_quotes[].credits is the total for the whole batch on that route, not a per-item price. This endpoint returns an unreserved preview estimate, not a quote_id or a locked purchase offer.
Set max_credits
max_credits is your cap for the entire request. If the server’s maximum reservation is higher, it rejects the whole submission before any generation. It does not silently reduce output_count or divide a smaller budget between items.