---
title: blossom capacity:update
url: "/docs/reference/cli/capacity/update/"
canonical_url: https://docs.blossom88.com/docs/reference/cli/capacity/update/
markdown_url: https://docs.blossom88.com/docs/reference/cli/capacity/update.md
summary: Update App Capacity policy
categories:
- cli
- reference
---

# blossom capacity:update

Update App Capacity policy

## Usage

    blossom capacity:update [--id ID] [--data DATA] [--yes] [--follow] [--timestamps]

## Flags

| Flag | Description |
| --- | --- |
| `--id` | App or Builder Capacity id. Defaults to the App allocation in the selected Location |
| `--data, -d` | YAML or JSON Capacity policy, a path to a data file, or an HTTP(S) URL |
| `--yes, -y` | Approve a larger Capacity boundary |
| `--follow, -f` | Follow Capacity update logs |
| `--timestamps` | Show log timestamps. Default: true. |

Examples:

    blossom capacity:update --data '{"capacity":{"reservation_mode":"automatic"}}'
    blossom capacity:update --data '{"capacity":{"reservation_mode":"on_demand"}}'
    blossom capacity:update --data '{"capacity":{"reservation_mode":"custom","reserved":{"cpu_vcpus":4,"memory_gb":8}}}'
    blossom capacity:update --data capacity.yml --yes --follow

Choose one `reservation_mode` for the Location's App Capacity:

- **On demand** (`on_demand`): add room when needed. Deployments may
  wait for new Servers.
- **Automatic** (`automatic`, default): keep shared room for one replacement container,
  recalculated from enabled App Services and their desired replicas. Empty
  Locations reserve nothing. Concurrent deployments may still need more room.
- **Custom** (`custom`): keep at least `reserved` capacity, specified with
  `cpu_vcpus` and `memory_gb`. Workloads can require more than this floor.

All running capacity is charged, including spare room and idle retention.
Automatic follows Account and Location limits; it does not guarantee provider
availability or increase those limits. Data, persistent Services and Builders
have separate capacity. On BYOC, provider charges apply separately.

`idle_retention_seconds` controls the delay before excess Capacity retires.
Omit it to keep the setting; use `null` to restore the standard policy
(24 hours in production). Changing modes never stops required workloads.

Use `blossom capacity:show` to see the policy, current target and active charge.
Create an editable policy file with `blossom capacity:init`.

Custom capacity rounds up to whole packages. A normalized request returns a
signed preview; rerun with `--yes` after reviewing it. An expansion beyond the
Account limit requires a limit increase, not confirmation alone.

App Capacity is selected from the current Location. Pass `--id capacity-100`
to select a specific App allocation.
