--- title: Pricing | Luma Agents description: 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 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](/guides/rate-limits/index.md) and there is no latency SLA. If you need guaranteed capacity or consistent latency, use [Provisioned Throughput](#provisioned-throughput) instead. Prices are in USD. Charges meter internally in credits at approximately $0.003 per credit — your dashboard shows the live conversion and the credit deduction per generation. ### `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 `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 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. ### Plans | 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](mailto:support+luma-agents-api@lumalabs.ai) for a custom quote. --- ## 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](/guides/rate-limits/index.md) | None up to your purchased RPM | | **Latency SLA** | No | Yes | | **No-train guarantee** | No | Yes | --- ## 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](/guides/error-handling#asynchronous-failures/index.md) for the full list. --- ## Next steps - [**Quickstart**](/index.md) — Submit your first generation - [**Models**](/guides/model/index.md) — Capabilities and per-model pricing for the uni-1 family - [**Rate limits**](/guides/rate-limits/index.md) — Default limits and request behavior - [**FAQ**](/guides/faq/index.md) — Common questions - [**Error handling**](/guides/error-handling/index.md) — Every error code with troubleshooting