---
title: "Put Subaccount Grant"
method: PUT
path: "/v1/subaccounts/{subaccount_id}/grants/{user_id}"
tags: ["subaccounts"]
---

# Put Subaccount Grant

`PUT /v1/subaccounts/{subaccount_id}/grants/{user_id}`

## Request

- Base URL: `https://api.rivermarkets.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.rivermarkets.com/v1/subaccounts/{subaccount_id}/grants/{user_id}`
- Auth: none declared

Assign or change a member's role on a subaccount. The role name is expanded to
permission strings server-side; audit rows come from the DB trigger.

## Path parameters

- `subaccount_id` string, required
- `user_id` string, uuid, required

## Request body

- SubaccountGrantPutRequest
  - `role` 'admin' | 'trader' | 'viewer', required

## Response `200`

Successful Response

- SubaccountGrantPutResponse
  - `user_id` string, uuid, required
  - `permissions` string[], required
  - `role` string, required

## Other responses

- `422`: Validation Error

## Changes

- **2026-08-24** `cc969517a65d`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/rivermarkets/apis/river-finance-api/changes/v1/subaccounts/:subaccount_id/grants/:user_id/put.md)

---

[API](https://skmtc.dev/rivermarkets/apis/river-finance-api.md) - [All operations](https://skmtc.dev/rivermarkets/apis/river-finance-api/llms.txt) - [OpenAPI document](https://skmtc.dev/rivermarkets/apis/river-finance-api/revisions/3732aea08430?raw)
