HTTP API Reference for Momento Capacity Pools
Momento provides an HTTP API interface for managing Capacity Pools. This API lets you create, describe, update, list, and delete Capacity Pools programmatically, discover available capacity offerings, and scrape their utilization metrics.
A Capacity Pool is a customer-provisioned unit of dedicated Valkey capacity. Pool capacity is
configured Valkey maxmemory per primary shard multiplied by the number of primary shards;
replicas do not add Pool capacity. You choose how the Pool is sized, either explicit mode
(Cluster), in which you specify the exact instance type, shard count, and replicas per shard, or
managed mode (Flex), in which you give capacity and replication bounds and Momento sizes the
Pool within them. Momento owns the underlying lifecycle and health of the Pool. Each Pool can host
Databases, which share its compute and memory.
Momento Cache is available in limited preview. Sign in or sign up in the Momento console and select Request access before calling this API.
The Momento platform is region-based with endpoints specific to each region. To view a list of supported regions and their endpoints, click here.
Authentication
You will need a Momento API Key generated via the Momento console. Momento API Keys control access to the Momento services and can be set to expire.
The API Key must be provided in the Authorization header.
Capacity Pool API
The Capacity Pool API lets you create, describe, update, list, and delete Capacity Pools, discover the capacity offerings available to your account, and scrape utilization metrics.
Provisioning
A Capacity Pool's capacity is described by a provisioning object. The object nests its configuration under a single key that names the provisioning mode. Exactly one mode key must be provided, and unknown fields are rejected. Two modes are available:
explicit(Cluster) — you specify the instance type, shard count, replicas per shard, and AZ placement directly.managed(Flex) — you specify capacity and replication bounds, and Momento sizes the pool within them.
A pool's mode is fixed when it is created. Switching an existing pool between modes is not supported today.
In both modes, zones are availability-zone IDs (for example, use1-az1), not zone names — an AZ ID maps to the same physical zone across accounts.
Explicit mode
In explicit mode you specify the pool's shape directly:
{
"explicit": {
"instance_type": "r7g.xlarge",
"shard_count": 3,
"replicas_per_shard": 1,
"zones": ["use1-az1", "use1-az2"]
}
}
| Field | Required? | Type | Description |
|---|---|---|---|
| explicit | yes | Object | The explicit-mode provisioning configuration. Exactly one mode key must be provided. |
| explicit.instance_type | yes | String | The instance type for the pool's nodes (for example, r7g.xlarge). |
| explicit.shard_count | yes | Integer | The number of shards in the pool. |
| explicit.replicas_per_shard | yes | Integer | The number of replicas per shard. |
| explicit.zones | yes | Array<String> | The availability-zone IDs across which the pool's nodes are placed. Must contain at least one zone. |
Managed mode
In managed mode you specify bounds for capacity and replication, and Momento sizes the pool within them. Set a dimension's minimum equal to its maximum to pin it to an exact value:
{
"managed": {
"capacity": {
"min_gib": 32,
"max_gib": 128
},
"replication": {
"min_replicas_per_shard": 1,
"max_replicas_per_shard": 2
},
"zones": ["use1-az1", "use1-az2"],
"family": "general"
}
}
| Field | Required? | Type | Description |
|---|---|---|---|
| managed | yes | Object | The managed-mode provisioning configuration. Exactly one mode key must be provided. |
| managed.capacity | yes | Object | The pool's capacity bounds, in GiB. |
| managed.capacity.min_gib | yes | Integer | The minimum capacity, in GiB. Set equal to max_gib to pin capacity. |
| managed.capacity.max_gib | yes | Integer | The maximum capacity, in GiB. |
| managed.replication | yes | Object | The pool's replication bounds. |
| managed.replication.min_replicas_per_shard | yes | Integer | The minimum replicas per shard. Set equal to the maximum to pin replication. |
| managed.replication.max_replicas_per_shard | yes | Integer | The maximum replicas per shard. |
| managed.zones | yes | Array<String> | The availability-zone IDs across which the pool's nodes are placed. Must contain at least one zone. |
| managed.family | no | String | The capacity family to use. When omitted, the Pool resolves to the cell default. The resolved family is always present in managed-mode responses. |
Because managed capacity is quantized to the configurations available in the cell, the capacity
you are granted may exceed min_gib. The last settled allocation is reported by
current_capacity_gib; target_capacity_gib reports the allocation the Pool is converging to and
differs only while a scale is in flight. Both fields use the same Pool-capacity quantity.
current_replicas_per_shard reports settled replication.