Members
Who's in a project and their role, and inviting people.
| Method | Path | Summary |
|---|---|---|
| GET | /v1/app/project/projects/:id/members | List a project's members |
| GET | /v1/app/project/projects/:id/available-users | List tenant users not yet on this project |
| PATCH | /v1/app/project/projects/:id/members/:userId | Change a project member's role |
| DELETE | /v1/app/project/projects/:id/members/:userId | Remove a project member, or leave the project yourself |
| GET | /v1/app/project/projects/:id/invites | List a project's pending invites |
| POST | /v1/app/project/projects/:id/invites | Invite an existing tenant user to a project |
| DELETE | /v1/app/project/projects/:id/invites/:inviteId | Revoke a pending project invite |
| GET | /v1/app/project/invites | List pending invites addressed to the caller |
| POST | /v1/app/project/invites/:id/accept | Accept a pending project invite |
| POST | /v1/app/project/invites/:id/decline | Decline a pending project invite |
#List a project's members
/v1/app/project/projects/:id/membersList a project's members. Requires at least viewer role on the project.
- Address
https://<your-org>.brambleit.cloud/api/v1/app/project/projects/:id/members- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Licence: Projects.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | integer |
Response 200
| Field | Type | Description |
|---|---|---|
members | array of any |
Example response
{
"members": []
}Example request
curl -X GET 'https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/members' \
-H "X-API-Key: $BRAMBLE_KEY"const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/members', {
method: 'GET',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY },
});
const data = await res.json();import os, requests
r = requests.get(
"https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/members",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
)
r.raise_for_status()
data = r.json()$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
Invoke-RestMethod -Method GET -Uri 'https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/members' -Headers $headers#List tenant users not yet on this project
/v1/app/project/projects/:id/available-usersList tenant users not yet on this project. Requires at least admin role on the project.
- Address
https://<your-org>.brambleit.cloud/api/v1/app/project/projects/:id/available-users- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Licence: Projects.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | integer |
Response 200
| Field | Type | Description |
|---|---|---|
users | array of any |
Example response
{
"users": []
}Example request
curl -X GET 'https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/available-users' \
-H "X-API-Key: $BRAMBLE_KEY"const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/available-users', {
method: 'GET',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY },
});
const data = await res.json();import os, requests
r = requests.get(
"https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/available-users",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
)
r.raise_for_status()
data = r.json()$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
Invoke-RestMethod -Method GET -Uri 'https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/available-users' -Headers $headers#Change a project member's role
/v1/app/project/projects/:id/members/:userIdChange a project member's role. Requires at least admin role on the project. Refuses to demote the last remaining owner.
- Address
https://<your-org>.brambleit.cloud/api/v1/app/project/projects/:id/members/:userId- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Licence: Projects.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | integer | |
userIdrequired | integer |
Request body JSON
| Name | Type | Description |
|---|---|---|
role | string |
Response 200
| Field | Type | Description |
|---|---|---|
ok | boolean |
Example response
{
"ok": true
}Errors
| Status | Message |
|---|---|
| 400 | Invalid role |
| 400 | Project must keep at least one owner |
| 404 | Member not found |
Example request
curl -X PATCH 'https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/members/1' \
-H "X-API-Key: $BRAMBLE_KEY" \
-H "Content-Type: application/json" \
-d '{"role":"string"}'const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/members/1', {
method: 'PATCH',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({"role":"string"}),
});
const data = await res.json();import os, requests
r = requests.patch(
"https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/members/1",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
json={"role":"string"},
)
r.raise_for_status()
data = r.json()$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
$body = '{"role":"string"}'
Invoke-RestMethod -Method PATCH -Uri 'https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/members/1' -Headers $headers -ContentType 'application/json' -Body $body#Remove a project member, or leave the project yourself
/v1/app/project/projects/:id/members/:userIdRemove a project member, or leave the project yourself. Requires viewer role when removing yourself, admin role otherwise. Refuses to remove the last remaining owner.
- Address
https://<your-org>.brambleit.cloud/api/v1/app/project/projects/:id/members/:userId- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Licence: Projects.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | integer | |
userIdrequired | integer |
Response 200
| Field | Type | Description |
|---|---|---|
ok | boolean |
Example response
{
"ok": true
}Errors
| Status | Message |
|---|---|
| 400 | Project must keep at least one owner |
| 404 | Member not found |
Example request
curl -X DELETE 'https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/members/1' \
-H "X-API-Key: $BRAMBLE_KEY"const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/members/1', {
method: 'DELETE',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY },
});
const data = await res.json();import os, requests
r = requests.delete(
"https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/members/1",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
)
r.raise_for_status()
data = r.json()$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
Invoke-RestMethod -Method DELETE -Uri 'https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/members/1' -Headers $headers#List a project's pending invites
/v1/app/project/projects/:id/invitesList a project's pending invites. Requires at least admin role on the project.
- Address
https://<your-org>.brambleit.cloud/api/v1/app/project/projects/:id/invites- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Licence: Projects.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | integer |
Response 200
| Field | Type | Description |
|---|---|---|
invites | array of any |
Example response
{
"invites": []
}Example request
curl -X GET 'https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/invites' \
-H "X-API-Key: $BRAMBLE_KEY"const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/invites', {
method: 'GET',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY },
});
const data = await res.json();import os, requests
r = requests.get(
"https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/invites",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
)
r.raise_for_status()
data = r.json()$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
Invoke-RestMethod -Method GET -Uri 'https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/invites' -Headers $headers#Invite an existing tenant user to a project
/v1/app/project/projects/:id/invitesInvite an existing tenant user to a project. Requires at least admin role on the project. The invited user must already exist in the caller's tenant (staff or guest, active).
- Address
https://<your-org>.brambleit.cloud/api/v1/app/project/projects/:id/invites- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Licence: Projects.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | integer |
Request body JSON
| Name | Type | Description |
|---|---|---|
user_idrequired | integer | |
role | any |
Response 201
| Field | Type | Description |
|---|---|---|
id | integer | |
token | string |
Example response
{
"id": 42,
"token": "…"
}Errors
| Status | Message |
|---|---|
| 400 | user_id is required |
| 400 | Invalid role |
| 404 | User not found in your organisation |
| 409 | User is already a project member |
Example request
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/invites' \
-H "X-API-Key: $BRAMBLE_KEY" \
-H "Content-Type: application/json" \
-d '{"user_id":7,"role":"…"}'const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/invites', {
method: 'POST',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({"user_id":7,"role":"…"}),
});
const data = await res.json();import os, requests
r = requests.post(
"https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/invites",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
json={"user_id":7,"role":"…"},
)
r.raise_for_status()
data = r.json()$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
$body = '{"user_id":7,"role":"…"}'
Invoke-RestMethod -Method POST -Uri 'https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/invites' -Headers $headers -ContentType 'application/json' -Body $body#Revoke a pending project invite
/v1/app/project/projects/:id/invites/:inviteIdRevoke a pending project invite. Requires at least admin role on the project.
- Address
https://<your-org>.brambleit.cloud/api/v1/app/project/projects/:id/invites/:inviteId- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Licence: Projects.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | integer | |
inviteIdrequired | integer |
Response 200
| Field | Type | Description |
|---|---|---|
ok | boolean |
Example response
{
"ok": true
}Example request
curl -X DELETE 'https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/invites/1' \
-H "X-API-Key: $BRAMBLE_KEY"const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/invites/1', {
method: 'DELETE',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY },
});
const data = await res.json();import os, requests
r = requests.delete(
"https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/invites/1",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
)
r.raise_for_status()
data = r.json()$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
Invoke-RestMethod -Method DELETE -Uri 'https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/invites/1' -Headers $headers#List pending invites addressed to the caller
/v1/app/project/invites- Address
https://<your-org>.brambleit.cloud/api/v1/app/project/invites- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Licence: Projects.
Response 200
| Field | Type | Description |
|---|---|---|
invites | array of any |
Example response
{
"invites": []
}Example request
curl -X GET 'https://<your-org>.brambleit.cloud/api/v1/app/project/invites' \
-H "X-API-Key: $BRAMBLE_KEY"const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/app/project/invites', {
method: 'GET',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY },
});
const data = await res.json();import os, requests
r = requests.get(
"https://<your-org>.brambleit.cloud/api/v1/app/project/invites",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
)
r.raise_for_status()
data = r.json()$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
Invoke-RestMethod -Method GET -Uri 'https://<your-org>.brambleit.cloud/api/v1/app/project/invites' -Headers $headers#Accept a pending project invite
/v1/app/project/invites/:id/acceptAccept a pending project invite. Invite ID
- Address
https://<your-org>.brambleit.cloud/api/v1/app/project/invites/:id/accept- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Licence: Projects.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | integer |
Response 200
| Field | Type | Description |
|---|---|---|
ok | boolean | |
project_id | integer |
Example response
{
"ok": true,
"project_id": 7
}Errors
| Status | Message |
|---|---|
| 404 | Invite not found |
Example request
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/app/project/invites/42/accept' \
-H "X-API-Key: $BRAMBLE_KEY"const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/app/project/invites/42/accept', {
method: 'POST',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY },
});
const data = await res.json();import os, requests
r = requests.post(
"https://<your-org>.brambleit.cloud/api/v1/app/project/invites/42/accept",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
)
r.raise_for_status()
data = r.json()$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
Invoke-RestMethod -Method POST -Uri 'https://<your-org>.brambleit.cloud/api/v1/app/project/invites/42/accept' -Headers $headers#Decline a pending project invite
/v1/app/project/invites/:id/declineDecline a pending project invite. Invite ID
- Address
https://<your-org>.brambleit.cloud/api/v1/app/project/invites/:id/decline- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Licence: Projects.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | integer |
Response 200
| Field | Type | Description |
|---|---|---|
ok | boolean |
Example response
{
"ok": true
}Errors
| Status | Message |
|---|---|
| 404 | Invite not found |
Example request
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/app/project/invites/42/decline' \
-H "X-API-Key: $BRAMBLE_KEY"const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/app/project/invites/42/decline', {
method: 'POST',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY },
});
const data = await res.json();import os, requests
r = requests.post(
"https://<your-org>.brambleit.cloud/api/v1/app/project/invites/42/decline",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
)
r.raise_for_status()
data = r.json()$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
Invoke-RestMethod -Method POST -Uri 'https://<your-org>.brambleit.cloud/api/v1/app/project/invites/42/decline' -Headers $headersWas this page helpful?
Thanks for your feedback.