---
title: "Change a member's role."
method: PATCH
path: "/v1/org/members/{id}/role"
tags: ["org"]
---

# Change a member's role.

`PATCH /v1/org/members/{id}/role`

## Request

- Base URL: `https://api.smolmachines.com`
- URL: `https://api.smolmachines.com/v1/org/members/{id}/role`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/smolmachines/apis/smolfleet-api/docs/v1/org/members/:id/role/patch.ts> (a function with typed inputs; its response is checked against the schema)

Sets a member's role; an organization always keeps at least one owner. Requires a user login, not an API key, and the `members:write` scope (owner or admin).

## Path parameters

- `id` string, required

## Request body

- SetRoleRequest: Body of `PATCH /v1/org/members/{id}/role`.
  - `role` string, required: `owner`, `admin` or `member`.

## Response `204`

Role changed; it takes effect on that person's next request.

## Other responses

- `400`: A role other than owner, admin or member
- `401`: Missing or invalid API key
- `403`: Changing a role is an owner or admin action, or the caller is an API key
- `404`: That person is not on this organization
- `409`: The change would leave the organization with no owner; the message names the way out
- `422`: An individual account, not an organization
- `429`: Rate limited; retry after the Retry-After header
- `500`: Internal error

## Changes

- **2026-10-16** `bc31fc04a568`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/smolmachines/apis/smolfleet-api/changes/v1/org/members/:id/role/patch.md)

---

[API](https://skmtc.dev/smolmachines/apis/smolfleet-api.md) - [All operations](https://skmtc.dev/smolmachines/apis/smolfleet-api/llms.txt) - [OpenAPI document](https://skmtc.dev/smolmachines/apis/smolfleet-api/revisions/bc31fc04a568?raw)
