---
title: "Update shop sample quota"
method: PUT
path: "/samples/quota"
tags: ["Samples"]
---

# Update shop sample quota

`PUT /samples/quota`

Set the shop-wide monthly sample ceiling. Requires `read_write` scope and a single shop. `monthlyLimit` must be present: a number caps the shop, `null` removes the cap. The shop is taken from the authenticated key / `x-shop-id`, never from the body.

## Request body

- PublicQuotaUpdateRequest — Quota update body. Deliberately *not* the portal's ``QuotaSettingsRequest`` — that model takes ``shop_id`` in the body, which on a key-authenticated API would let a caller aim the write at a shop the key doesn't own. The shop always comes from the authenticated request here.
  - `monthlyLimit` integer, nullable

## Response `200`

Successful Response

- QuotaSettingsResponse
  - `success` boolean
  - `data` QuotaSettingsItem, required
    - `shopId` integer, required
    - `monthlyLimit` integer, nullable
    - `createdAt` string, nullable
    - `updatedAt` string, nullable

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/reacherapp/apis/reacher-data-api.md) · [All operations](https://skmtc.dev/reacherapp/apis/reacher-data-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/reacherapp/reacher-data-api/revisions/5eefff009b5b/schema)
