---
title: "Bulk Update Consumption Limits"
method: POST
path: "/api/v1/admin/users/bulk/consumption-limits"
tags: ["Admin APIs", "users"]
---

# Bulk Update Consumption Limits

`POST /api/v1/admin/users/bulk/consumption-limits`

Bulk-set platform token limits for multiple users (admin only).

Per-user application is atomic: if either limit fails a precondition the
user is skipped entirely rather than left half-updated. Returns a summary
with the updated count and skipped users with reasons.

## Request body

- BulkConsumptionLimitsRequest — Bulk platform-token limit update. Both limit fields are tri-state, keyed off *presence* rather than value: - omitted -> leave that limit unchanged - explicit ``null`` -> remove that limit - number -> set that limit ``model_dump(exclude_unset=True)`` is the only thing distinguishing the first two cases, so neither limit field may carry a non-None default, and neither may use ``Field(gt=0)`` — a pydantic rejection would 422 with a list ``detail``, while the sibling bulk endpoints 400 with a string, which is the shape the CAMS UI's error handling expects. Range checks are therefore done manually below.
  - `user_ids` string[], required
  - `client_id` string, nullable
  - `transaction_limit` number, nullable
  - `allocated_amount` number, nullable

## Response `200`

Successful Response

- unknown

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/carbonarc/apis/carbon-arc-client-admin-api.md) · [All operations](https://skmtc.net/carbonarc/apis/carbon-arc-client-admin-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/carbonarc/carbon-arc-client-admin-api/revisions/a8ca30023371/schema)
