> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devinenterprise.com/llms.txt
> Use this file to discover all available pages before exploring further.

# User ACU Caps

> Read and set per-user ACU limit overrides via the service-key API.

<Info>
  This documentation is for the federal deployments of Devin. [Back to Devin Docs](/get-started/devin-intro)
</Info>

Read and manage per-user ACU cap overrides. A user override takes precedence over team and group limits — see [ACU Limits](/federal/acu-limits) for how the effective limit is resolved. These endpoints are available only on multi-tenant federal deployments. They use **Teams Read-Only** for reads and **Teams Update** for writes.

Both endpoints select the user with a `user` object containing exactly one of:

<ParamField body="user.email" type="string">
  The user's email address.
</ParamField>

<ParamField body="user.user_id" type="string">
  The user's stable ID, as returned by the API (for example in [group member](/federal/api/group-management#list-group-members) or [ACU consumption](/federal/api/acu-consumption) rows).
</ParamField>

Group-scoped service keys can only select current members of their assigned group; other users return `not_found`. See the [API overview](/federal/api/overview) for authentication and errors.

The cap object returned by both endpoints:

| Field                        | Description                                                                                                                    |
| ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
| `user_id`                    | The user's stable ID.                                                                                                          |
| `email`                      | The user's email.                                                                                                              |
| `configured_cycle_acu_limit` | The direct per-user override, if one is set. A value of `0` means the user is blocked. Omitted when no override exists.        |
| `effective_cycle_acu_limit`  | The cap actually enforced for the user after combining the override with team and group limits. Omitted when no limit applies. |

***

## Get a user's ACU cap

```
POST /api/v1/GetUserAcuCap
```

```bash theme={null}
curl -X POST https://<your-server>/api/v1/GetUserAcuCap \
  -H "Content-Type: application/json" \
  -d '{
    "service_key": "your_service_key",
    "user": {"email": "dev@agency.gov"}
  }'
```

```json theme={null}
{
  "cap": {
    "userId": "user_abc",
    "email": "dev@agency.gov",
    "configuredCycleAcuLimit": 25,
    "effectiveCycleAcuLimit": 25
  }
}
```

## Set or clear a user's ACU cap

```
POST /api/v1/UpdateUserAcuCap
```

Exactly one of the following must be provided:

<ParamField body="set_cycle_acu_limit" type="number">
  Sets the user's per-cycle ACU override. Must be non-negative; `0` blocks the user from consuming any ACUs.
</ParamField>

<ParamField body="clear_cycle_acu_limit" type="boolean">
  Removes the user's override so team and group limits apply again.
</ParamField>

```bash theme={null}
curl -X POST https://<your-server>/api/v1/UpdateUserAcuCap \
  -H "Content-Type: application/json" \
  -d '{
    "service_key": "your_service_key",
    "user": {"email": "dev@agency.gov"},
    "set_cycle_acu_limit": 25
  }'
```

The response contains the updated `cap` object.

<Note>
  A user override of `0` **blocks** the user. The service-key group API does not accept a zero group cap: `set_cycle_acu_limit` must be positive and `clear_cycle_acu_limit` removes the group override. The portal's separate group-limit operation treats `0` as clearing. See [Zero and unset values](/federal/acu-limits#zero-and-unset-values).
</Note>
