Pricing
Pay-as-you-go and Provisioned Throughput pricing for the Luma Agents API.
The Luma Agents API has two pricing options. Pick the one that matches how you’ll use the API.
- Pay-as-you-go — pay per image, no minimum spend, no contract. Best for prototypes and lower-volume workloads.
- Provisioned Throughput — guaranteed capacity and a latency SLA, billed monthly. Best for production workloads at scale.
You can switch tiers as you scale.
Pay-as-you-go
Section titled “Pay-as-you-go”For developers, startups, and smaller teams who want to experiment, prototype, or run lower-volume workloads. You pay per image, with no minimum spend and no contract.
Capacity is shared, so during peak periods you may hit rate limits and there is no latency SLA. If you need guaranteed capacity or consistent latency, use Provisioned Throughput instead.
uni-1 — per-image pricing
Section titled “uni-1 — per-image pricing”All requests output at 2048-pixel (2K) resolution.
| Task | Price per image |
|---|---|
| Text to image | $0.0404 |
| Image edit (image to image) | $0.0434 |
| Image reference (1 image) | $0.0434 |
| Image reference (2 images) | $0.0464 |
| Image reference (3 images) | $0.0494 |
| Image reference (4 images) | $0.0524 |
| Image reference (5 images) | $0.0554 |
| Image reference (6 images) | $0.0584 |
| Image reference (7 images) | $0.0614 |
| Image reference (8 images) | $0.0644 |
| Image reference (9 images) | $0.0674 |
Each extra reference image adds $0.0030 on top of the 1-image price. Note: image_edit requests support up to 8 reference images (the source occupies one slot); image requests support up to 9.
uni-1-max — per-image pricing
Section titled “uni-1-max — per-image pricing”uni-1-max produces higher-quality output than uni-1. Same prompts, same parameters, same wire format — uni-1-max is a drop-in replacement for uni-1 when you want better images at a higher per-image price. All requests output at 2048-pixel (2K) resolution.
| Task | Price per image |
|---|---|
| Text to image | $0.1000 |
| Image edit (image to image) | $0.1030 |
| Image reference (1 image) | $0.1030 |
| Image reference (2 images) | $0.1060 |
| Image reference (3 images) | $0.1090 |
| Image reference (4 images) | $0.1120 |
| Image reference (5 images) | $0.1150 |
| Image reference (6 images) | $0.1180 |
| Image reference (7 images) | $0.1210 |
| Image reference (8 images) | $0.1240 |
| Image reference (9 images) | $0.1270 |
Each extra reference image adds $0.0030 on top of the 1-image price. uni-1-max is available to all accounts — pass "model": "uni-1-max" on POST /v1/generations.
Provisioned Throughput
Section titled “Provisioned Throughput”For production workloads where you need guaranteed capacity, predictable latency, and no contention with other users. Pricing is based on requests per minute (RPM).
- 1 unit = 1 RPM on
uni-1 - 1 unit = 0.4 RPM on
uni-1-max
So 10 units gives you 10 concurrent requests per minute on uni-1, or 4 on uni-1-max. Minimum commitment is 8 units. Longer commitments unlock larger discounts.
| Commitment | $ / unit / month | Effective per-image cost (uni-1 / uni-1-max) |
|---|---|---|
| 1 month | $3,800 | $0.088 / $0.220 |
| 3 months | $2,800 | $0.065 / $0.163 |
| 1 year | $2,100 | $0.049 / $0.123 |
Provisioned Throughput plans include a no-train guarantee — data processed through Provisioned Throughput is never used to train Luma models.
Annual commitments at higher volumes unlock additional discounts. Contact sales for a custom quote.
Which one should I pick?
Section titled “Which one should I pick?”Start with Pay-as-you-go if you’re prototyping or running variable workloads. Move to Provisioned Throughput when you need guaranteed capacity and consistent latency. You can switch tiers as you scale.
| Pay-as-you-go | Provisioned Throughput | |
|---|---|---|
| Billing | Per image | Monthly, per unit |
| Minimum spend | None | 8 units |
| Contract | None | 1 month, 3 months, or 1 year |
| Capacity | Shared | Dedicated |
| Rate limits | Yes — see Rate limits | None up to your purchased RPM |
| Latency SLA | No | Yes |
| No-train guarantee | No | Yes |
Failed generations
Section titled “Failed generations”Synchronous errors are never charged; the reserve is released the moment the request is rejected. For asynchronous failures, the charge depends on the failure_code:
failure_code | Charge |
|---|---|
content_moderated | Refunded |
generation_failed | Refunded |
output_not_found | Refunded |
budget_exhausted | Partial charge possible |
See Error handling for the full list.
Next steps
Section titled “Next steps”- Quickstart — Submit your first generation
- Models — Capabilities and per-model pricing for the uni-1 family
- Rate limits — Default limits and request behavior
- FAQ — Common questions
- Error handling — Every error code with troubleshooting