Collaborators
Who else can edit a form and see its responses, and handing a form to a new owner.
| Method | Path | Summary |
|---|---|---|
| GET | /v1/app/forms/forms/:id/collaborators | Owner + current collaborator list |
| GET | /v1/app/forms/forms/:id/collaborators/available | Tenant users not already the owner or a collaborator, for the "add collaborator" picker |
| POST | /v1/app/forms/forms/:id/collaborators | Add a collaborator. Owner only |
| DELETE | /v1/app/forms/forms/:id/collaborators/:collabId | Owner only |
| PATCH | /v1/app/forms/forms/:id/owner | Transfer ownership. Owner only; the new owner must already be a collaborator (promotes them and drops the old owner down to collaborator, so they don't lose … |
#Owner + current collaborator list
GET
/v1/app/forms/forms/:id/collaboratorsOwner + current collaborator list. Visible to anyone with access (owner or collaborator), so a collaborator can see who else is on the form; only the owner can add/remove/transfer.
- Address
https://<your-org>.brambleit.cloud/api/v1/app/forms/forms/:id/collaborators- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Licence: Forms.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | integer |
Response 200
| Field | Type | Description |
|---|---|---|
owner | object | |
owner.id | integer | |
collaborators | array of object | |
collaborators[].id | integer | |
collaborators[].user | object | |
collaborators[].created_at | string (date-time) |
Example response
JSON
{
"owner": {
"id": 42
},
"collaborators": [
{
"id": 42,
"user": {},
"created_at": "2026-11-12T09:30:00.000Z"
}
]
}Errors
| Status | Message |
|---|---|
| 404 | Form not found |
Example request
Bash
curl -X GET 'https://<your-org>.brambleit.cloud/api/v1/app/forms/forms/42/collaborators' \
-H "X-API-Key: $BRAMBLE_KEY"JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/app/forms/forms/42/collaborators', {
method: 'GET',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY },
});
const data = await res.json();Python
import os, requests
r = requests.get(
"https://<your-org>.brambleit.cloud/api/v1/app/forms/forms/42/collaborators",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
)
r.raise_for_status()
data = r.json()PowerShell
$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
Invoke-RestMethod -Method GET -Uri 'https://<your-org>.brambleit.cloud/api/v1/app/forms/forms/42/collaborators' -Headers $headers#Tenant users not already the owner or a collaborator, for the "add collaborator" picker
GET
/v1/app/forms/forms/:id/collaborators/availableTenant users not already the owner or a collaborator, for the "add collaborator" picker. Owner only, same reasoning as the mutation routes below (search reveals tenant users).
- Address
https://<your-org>.brambleit.cloud/api/v1/app/forms/forms/:id/collaborators/available- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Licence: Forms.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | integer |
Query parameters
| Name | Type | Description |
|---|---|---|
q | any |
Response 200
| Field | Type | Description |
|---|---|---|
users | array of any |
Example response
JSON
{
"users": []
}Errors
| Status | Message |
|---|---|
| 404 | Form not found |
| 403 | Only the form's owner can manage collaborators |
Example request
Bash
curl -X GET 'https://<your-org>.brambleit.cloud/api/v1/app/forms/forms/42/collaborators/available' \
-H "X-API-Key: $BRAMBLE_KEY"JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/app/forms/forms/42/collaborators/available', {
method: 'GET',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY },
});
const data = await res.json();Python
import os, requests
r = requests.get(
"https://<your-org>.brambleit.cloud/api/v1/app/forms/forms/42/collaborators/available",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
)
r.raise_for_status()
data = r.json()PowerShell
$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
Invoke-RestMethod -Method GET -Uri 'https://<your-org>.brambleit.cloud/api/v1/app/forms/forms/42/collaborators/available' -Headers $headers#Add a collaborator. Owner only
POST
/v1/app/forms/forms/:id/collaborators- Address
https://<your-org>.brambleit.cloud/api/v1/app/forms/forms/:id/collaborators- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Licence: Forms.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | integer |
Request body JSON
| Name | Type | Description |
|---|---|---|
user_id | integer |
Response 201
| Field | Type | Description |
|---|---|---|
ok | boolean |
Example response
JSON
{
"ok": true
}Errors
| Status | Message |
|---|---|
| 400 | user_id is required |
| 400 | That user already owns this form |
| 400 | User not found in this tenant |
| 404 | Form not found |
| 403 | Only the form's owner can manage collaborators |
Example request
Bash
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/app/forms/forms/42/collaborators' \
-H "X-API-Key: $BRAMBLE_KEY" \
-H "Content-Type: application/json" \
-d '{"user_id":7}'JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/app/forms/forms/42/collaborators', {
method: 'POST',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({"user_id":7}),
});
const data = await res.json();Python
import os, requests
r = requests.post(
"https://<your-org>.brambleit.cloud/api/v1/app/forms/forms/42/collaborators",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
json={"user_id":7},
)
r.raise_for_status()
data = r.json()PowerShell
$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
$body = '{"user_id":7}'
Invoke-RestMethod -Method POST -Uri 'https://<your-org>.brambleit.cloud/api/v1/app/forms/forms/42/collaborators' -Headers $headers -ContentType 'application/json' -Body $body#Owner only
DELETE
/v1/app/forms/forms/:id/collaborators/:collabId- Address
https://<your-org>.brambleit.cloud/api/v1/app/forms/forms/:id/collaborators/:collabId- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Licence: Forms.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | integer | |
collabIdrequired | integer |
Response 200
| Field | Type | Description |
|---|---|---|
ok | boolean |
Example response
JSON
{
"ok": true
}Errors
| Status | Message |
|---|---|
| 404 | Form not found |
| 403 | Only the form's owner can manage collaborators |
| 404 | Collaborator not found |
Example request
Bash
curl -X DELETE 'https://<your-org>.brambleit.cloud/api/v1/app/forms/forms/42/collaborators/1' \
-H "X-API-Key: $BRAMBLE_KEY"JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/app/forms/forms/42/collaborators/1', {
method: 'DELETE',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY },
});
const data = await res.json();Python
import os, requests
r = requests.delete(
"https://<your-org>.brambleit.cloud/api/v1/app/forms/forms/42/collaborators/1",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
)
r.raise_for_status()
data = r.json()PowerShell
$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
Invoke-RestMethod -Method DELETE -Uri 'https://<your-org>.brambleit.cloud/api/v1/app/forms/forms/42/collaborators/1' -Headers $headers#Transfer ownership. Owner only; the new owner must already be a collaborator (promotes them and drops the old owner down to collaborator, so they don't lose …
PATCH
/v1/app/forms/forms/:id/ownerTransfer ownership. Owner only; the new owner must already be a collaborator (promotes them and drops the old owner down to collaborator, so they don't lose access outright).
- Address
https://<your-org>.brambleit.cloud/api/v1/app/forms/forms/:id/owner- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Licence: Forms.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | integer |
Request body JSON
| Name | Type | Description |
|---|---|---|
user_id | integer |
Response 200
| Field | Type | Description |
|---|---|---|
ok | boolean |
Example response
JSON
{
"ok": true
}Errors
| Status | Message |
|---|---|
| 400 | user_id is required |
| 400 | That user already owns this form |
| 400 | The new owner must already be a collaborator |
| 404 | Form not found |
| 403 | Only the form's owner can transfer ownership |
Example request
Bash
curl -X PATCH 'https://<your-org>.brambleit.cloud/api/v1/app/forms/forms/42/owner' \
-H "X-API-Key: $BRAMBLE_KEY" \
-H "Content-Type: application/json" \
-d '{"user_id":7}'JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/app/forms/forms/42/owner', {
method: 'PATCH',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({"user_id":7}),
});
const data = await res.json();Python
import os, requests
r = requests.patch(
"https://<your-org>.brambleit.cloud/api/v1/app/forms/forms/42/owner",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
json={"user_id":7},
)
r.raise_for_status()
data = r.json()PowerShell
$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
$body = '{"user_id":7}'
Invoke-RestMethod -Method PATCH -Uri 'https://<your-org>.brambleit.cloud/api/v1/app/forms/forms/42/owner' -Headers $headers -ContentType 'application/json' -Body $bodyWas this page helpful?
Thanks for your feedback.