Documentation
Change a role
PATCH
/v1/members/{member}TeamChanges a member's role, or an open invite's. It applies from their next request.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
member | string, in the path | required | The member's or invite's id. |
Request body
JSON, sent with Content-Type: application/json.
| Field | Type | Required | Description |
|---|---|---|---|
role | admin | editor | viewer | required | viewer looks around, editor changes links and files, admin also manages the account: domains, people, keys, webhooks and defaults. |
Example request
Terminal
curl "https://snip.link/v1/members/2b7e9c41-5d3a-4f8e-a1c6-7e0d9b2f4a18" \
-X PATCH \
-H "Authorization: Bearer $SNIP_KEY" \
-H "Content-Type: application/json" \
-d '{}'Example response
Response
{
"member": {
"id": "2b7e9c41-5d3a-4f8e-a1c6-7e0d9b2f4a18",
"email": "sam@example.com",
"role": "editor",
"status": "joined",
"invited_at": "2026-10-20T12:00:00.000Z",
"joined_at": "2026-10-20T12:14:09.000Z",
"expires_at": null
}
}Response fields
| Field | Type | Description |
|---|---|---|
member | Member | |
member.id | string | |
member.email | string | |
member.role | admin | editor | viewer | viewer looks around, editor changes links and files, admin also manages the account: domains, people, keys, webhooks and defaults. |
member.status | joined | invited | expired | joined: works in the account. invited: the invite is open. expired: nobody accepted it in time; invite again to renew it. |
member.invited_at | string | |
member.joined_at | string, null | |
member.expires_at | string, null | When an open invite lapses. Null once joined. |
Errors
| Status | Meaning |
|---|---|
| 400 | The body or query is invalid. details names each field. |
| 401 | The API key is missing, malformed or revoked. |
| 403 | The plan does not include this. details.upgrade names the plan that does. |
| 404 | No one by that id in this account. |
| 429 | Either the key exceeded its requests-per-second limit (honor Retry-After), or a daily or plan quota is used up (details.reason). |