> For the complete documentation index, see [llms.txt](https://docs.licensespring.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.licensespring.com/consumption-pools/introduction.md).

# Introduction

A consumption pool is a shared quota of consumption units that belongs to a customer account. Rather than assigning each license or product feature its own independent budget, you link them to a pool and they all draw from the same balance.

A typical use case is an enterprise customer purchasing a large block of API calls to distribute across all of their licenses, or multiple products sharing a single bucket of AI credits.

{% hint style="info" %}
Consumption Pools are available on the Enterprise plan. If the **Consumption pools** tab is not visible on your customer accounts, contact [LicenseSpring support](https://licensespring.com/contact) to enable the feature.
{% endhint %}

### Pool Types

Every pool has a type, which is set at creation and cannot be changed:

* **Licenses:** consumption-type licenses belonging to the owning customer account can be linked as members.
* **Product features:** consumption-type product features on that account's licenses can be linked.

A pool can only contain one kind of member. Linking a license to a feature-typed pool, or a feature to a license-typed pool, is rejected by the API with `invalid_pool_type`. A pool can only contain members that belong to its own customer account.

### How Metering Works

When a pooled license or feature consumes, two counters increase at the same time:

* **The member's own `total_consumptions`** tracking that member's individual contribution to the pool.
* **The pool's `total_consumptions`** the shared running balance across all members.

The member's counter is not redundant. It is how you see which licenses or features are spending the pool's quota, and it drives the per-member breakdown in usage reports.

#### Two Caps, Both Enforced

Being part of a pool does not replace the member's own limit — both apply, and the request fails on whichever is reached first:

* **The member's own `max_consumptions`**, unless the member has unlimited consumptions enabled.
* **The pool's quota** `max_consumptions` extended by `max_overages` when overages are allowed.

If a member has unlimited consumptions, only the pool cap applies to that member.

#### Governed Settings

While a license or feature is linked to a pool, certain behavioral settings are inherited from the pool rather than the member. The member's own values for these settings are ignored while it remains pooled:

| Setting                                   | While pooled, source                                       |
| ----------------------------------------- | ---------------------------------------------------------- |
| `max_consumptions`                        | Both the member and the pool (both enforced)               |
| `allow_unlimited_consumptions`            | The member (for its own cap) / the pool (for the pool cap) |
| `allow_overages`, `max_overages`          | The pool                                                   |
| `allow_negative_consumptions`             | The pool                                                   |
| `reset_consumption`, `consumption_period` | The pool                                                   |

### Overages, Negatives, and Unlimited

**Overages** with `allow_overages` enabled, the pool accepts consumption past `max_consumptions`, up to `max_consumptions + max_overages`.

**Unlimited overages:** enabling `allow_overages` with `max_overages` set to `0` removes the upper limit on overages entirely.

{% hint style="warning" %}
`max_overages = 0` with overages allowed means **unlimited overages,** not zero overages allowed. To forbid overages entirely, disable `allow_overages`.
{% endhint %}

**Negative consumptions** enabled by default. A negative amount reduces the pool balance; the total never drops below zero.

**Unlimited pools** with `allow_unlimited_consumptions` enabled, the pool has no cap at all.

### Pool Status

The platform derives a status from the pool's current counters:

| Status         | Meaning                                                                                                   |
| -------------- | --------------------------------------------------------------------------------------------------------- |
| **Active**     | Consumption is below the pool maximum                                                                     |
| **In overage** | Consumption has exceeded the maximum but remains within the overage allowance                             |
| **Depleted**   | The full quota, including any overage allowance, has been used. Member consumption requests are rejected. |
| **Unlimited**  | The pool has no cap                                                                                       |

When a pool is depleted, consumption calls on any of its members fail with `pool_quota_exhausted`. See Consuming from a Pool for the full error response.

### What Happens if the Feature is Disabled

If Consumption Pools is later removed from your plan, pools and their management UI become unavailable. However, your historical consumption data remains accessible through the analytics endpoints of the Management API, you retain API access to data generated while the feature was active.

### Glossary

| Term           | Meaning                                                                                |
| -------------- | -------------------------------------------------------------------------------------- |
| Pool           | A shared consumption quota owned by one customer account                               |
| Member         | A license or product feature linked to a pool                                          |
| Contribution   | A member's own `total_consumptions` while pooled                                       |
| Held (offline) | Units reserved from the pool by devices that activated offline and have not yet synced |
| Checkout       | The reservation record created when a device offline-activates a pooled license        |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.licensespring.com/consumption-pools/introduction.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
