Per unit
Charge a fixed price for each unit, seat, or block of usage, with an optional free allowance.
Per unit pricing multiplies a unit price by the quantity. Every unit costs the same. Use it for seats, active users, projects, or any count where the price per item does not change with volume.
Worked example
You charge $10 per seat per month. A customer has 8 seats.
total = quantity × unit price
= 8 × $10.00
= $80.00
With a free allowance of 5 included seats, only the seats above the allowance are billed:
total = max(0, quantity − included) × unit price
= max(0, 8 − 5) × $10.00
= 3 × $10.00
= $30.00
Pricing in blocks
For very small unit prices, set a block size with per_units. The price then applies per block instead of per single unit. "$2.50 per 1 million tokens" is one price with per_units set to 1,000,000. The math divides the billable quantity by the block size, then multiplies by the price, and rounds once at the end:
total = max(0, quantity − included) ÷ per_units × unit_amount
Settings
| Setting | What it does |
|---|---|
| Unit amount | The price per unit (or per block), in minor units of the currency. |
| Per units | Optional block size. Leave empty to price per single unit. |
| Included quantity | Free allowance subtracted from the quantity before billing. |
| Minimum and maximum | Optional guardrails that clamp the final line amount. |
Edge cases
- Quantity below the allowance. The line is $0.00, never negative.
- Rounding. Block pricing rounds once, at the end, so fractional blocks are billed by their exact share rather than rounded per block.
- Price changes on volume. If bigger customers should pay less per unit, use tiered, volume, or stairstep pricing instead.
In the API
{
"pricing_model": "per_unit",
"pricing_config": { "unit_amount": 1000 },
"currency": "USD",
"billing_period_unit": "month",
"billing_period_count": 1
}