Skip to content
lumalabs.ai
Reference

Pricing

Pay-as-you-go and Provisioned Throughput pricing for the Luma Agents API — image (uni-1, uni-1-max) and video (Ray 3.2).

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 generation. Images are priced per image; videos are priced by request type, resolution, dynamic range, and duration. 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.


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.

All requests output at 2048-pixel (2K) resolution.

TaskPrice 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 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. All requests output at 2048-pixel (2K) resolution.

TaskPrice 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.

Ray 3.2 video is priced by duration at a rate that depends on request type, resolution, and dynamic range. Text-to-video / image-to-video, video edits, single-keyframe extend, and reframe each have distinct billing rules.

type: "video" uses the video-generation tier; type: "video_edit" uses the video-edit tier. Single-keyframe extend and type: "video_reframe" each price on their own standard-only tier — HDR and EXR never apply to them.

This tier covers text-to-video, image-to-video, and image-frame interpolation with type: "video". Standard dynamic range has separate 5-second and 10-second totals.

Standard dynamic range — the default. Applies when video.hdr is omitted or false.

ResolutionPrice per 5sPrice per 10s (type: "video")
360p (draft)$0.0600$0.1800
540p$0.1500$0.4500
720p$0.3000$0.9000
1080p$1.2000$3.6000

HDR (type: "video" only) — set video.hdr: true. HDR is restricted to 720p/1080p and 5-second duration540p and 10s are both rejected, so HDR clips are always priced at the 5-second rate.

ResolutionPrice per 5s
720p$0.6000
1080p$2.4000

HDR + EXR export (type: "video" only) — set video.hdr: true and video.exr_export: true. Produces an EXR file alongside the MP4. Same 720p/1080p and 5s-only constraints as HDR.

ResolutionPrice per 5s
720p$0.9000
1080p$3.6000

Extend is standard dynamic range only. It always bills as one 5-second block, even if video.duration is present on the request.

ResolutionPrice per extend
540p$0.1500
720p$0.3000
1080p$1.2000

Reframe is standard dynamic range only and bills per second.

ResolutionPrice per second
360p (draft)$0.0300
540p$0.0600
720p$0.1200
1080p$0.3600

Video edits use their own rate table. Standard, HDR, and HDR + EXR edits each have separate 5-second and 10-second totals.

Standard dynamic range:

ResolutionPrice per 5sPrice per 10s
360p (draft)$0.5400$1.0800
540p$0.7200$1.4400
720p$1.0800$2.1600
1080p$2.1600$4.3200

HDR — set video.hdr: true.

ResolutionPrice per 5sPrice per 10s
360p (draft)$1.0800$2.1600
540p$1.4400$2.8800
720p$2.1600$4.3200
1080p$4.3200$8.6400

HDR + EXR export — set video.hdr: true and video.exr_export: true.

ResolutionPrice per 5sPrice per 10s
360p (draft)$1.6200$3.2400
540p$2.1600$4.3200
720p$3.2400$6.4800
1080p$6.4800$12.9600

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
  • Video (ray-3.2) bills against a separate capacity class — contact sales for video Provisioned Throughput pricing

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 / monthEffective 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.


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-goProvisioned Throughput
BillingPer imageMonthly, per unit
Minimum spendNone8 units
ContractNone1 month, 3 months, or 1 year
CapacitySharedDedicated
Rate limitsYes — see Rate limitsNone up to your purchased RPM
Latency SLANoYes
No-train guaranteeNoYes

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_codeCharge
content_moderatedRefunded
generation_failedRefunded
output_not_foundRefunded
budget_exhaustedPartial charge possible

See Error handling for the full list.