Changes a member's role. A workspace always keeps at least one admin, so you cannot demote the last one. Admin only.
Request#
| Field | Type | Required | Description |
|---|---|---|---|
id |
string | Yes | The member_id from List members. |
Body#
| Field | Type | Required | Description |
|---|---|---|---|
role |
string | Yes | admin, developer or member. |
Roles: admin manages everything, including members and billing. developer builds agents and manages API keys. member is read-only.
Example request#
curl -X PATCH https://api.tried.com.au/workspace/members/member_9e7c5a3f1d2b4c6e8a0f2d4b \
-H "Authorization: Bearer $TRIED_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"role": "admin"
}'const res = await fetch("https://api.tried.com.au/workspace/members/member_9e7c5a3f1d2b4c6e8a0f2d4b", {
method: "PATCH",
headers: {
Authorization: `Bearer ${process.env.TRIED_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"role": "admin"
}),
});
const member = await res.json();import os, requests
res = requests.patch(
"https://api.tried.com.au/workspace/members/member_9e7c5a3f1d2b4c6e8a0f2d4b",
headers={"Authorization": f"Bearer {os.environ['TRIED_API_KEY']}"},
json={
"role": "admin",
},
)
member = res.json()Response#
200 OK
{
"member_id": "member_9e7c5a3f1d2b4c6e8a0f2d4b",
"user_id": "user_7a9c1e3b5d7f9a2c4e6b8d0f",
"email": "sam@harbourdental.com.au",
"name": "Sam Lee",
"role": "admin",
"created_timestamp": 1759708800000
}Returns the updated membership.
Errors#
| Status | When |
|---|---|
400 |
A workspace needs at least one admin, or a validation error such as `role: Invalid enum value. Expected 'admin' |
401 |
Missing or invalid API key. |
403 |
The key's IP allowlist or scopes reject the request. This route needs the admin scope. A dashboard user without the right role gets Requires role: admin. API keys act as admin. |
404 |
Member not found. |
429 |
Rate limit exceeded. See Rate limits. |
See Errors for the body format.