App settings: Forms
Every form in the organisation, with admin overrides for owners and collaborators.
| Method | Path | Summary |
|---|---|---|
| GET | /v1/admin/forms | List every form |
| GET | /v1/admin/forms/:id | Get a form with its questions |
| GET | /v1/admin/forms/:id/collaborators | List a form's collaborators |
| GET | /v1/admin/forms/:id/collaborators/available | People who could be added as collaborators |
| POST | /v1/admin/forms/:id/collaborators | Add a collaborator to a form |
| DELETE | /v1/admin/forms/:id/collaborators/:collabId | Remove a collaborator from a form |
| PATCH | /v1/admin/forms/:id/owner | Give a form a new owner |
#List every form
GET
/v1/admin/forms- Address
https://<your-org>.brambleit.cloud/api/v1/admin/forms- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of):forms.admin.manage.
Query parameters
| Name | Type | Description |
|---|---|---|
q | any |
Response 200
| Field | Type | Description |
|---|---|---|
success | boolean | |
forms | array of object | |
forms[].id | integer | |
forms[].tenant_id | integer | |
forms[].slug | string | |
forms[].title | string | |
forms[].description | string, or null | |
forms[].status | string: "draft" | "published" | "closed" | |
forms[].require_login | boolean | |
forms[].allow_multiple_responses | boolean | |
forms[].auto_link_project_id | integer, or null | |
forms[].accent_color | string | |
forms[].background_color | string | |
forms[].background_image_id | integer, or null | |
forms[].background_preset | string: "none" | "soft_clouds" | "waves" | "gradient_warm" | "gradient_cool" | "bramble" | |
forms[].font_family | string | |
forms[].button_style | string: "rounded" | "square" | "pill" | |
forms[].card_radius | string: "rounded" | "sharp" | |
forms[].layout_style | string: "classic" | "title_on_background" | "card_left" | "card_right" | "compact" | |
forms[].notify_on_submission | boolean | |
forms[].created_by | integer | |
forms[].created_at | string (date-time) | |
forms[].updated_at | string (date-time) | |
forms[].deleted_at | string (date-time), or null | |
forms[].response_count | boolean | |
forms[].collaborator_count | boolean | |
forms[].owner | object |
Example response
JSON
{
"success": true,
"forms": [
{
"id": 42,
"tenant_id": 1,
"slug": "example",
"title": "Example title",
"description": "string",
"status": "draft",
"require_login": false,
"allow_multiple_responses": false,
"auto_link_project_id": 7,
"accent_color": "#2563eb",
"background_color": "#2563eb",
"background_image_id": 7,
"background_preset": "none",
"font_family": "string",
"button_style": "rounded",
"card_radius": "rounded",
"layout_style": "classic",
"notify_on_submission": false,
"created_by": 1,
"created_at": "2026-11-12T09:30:00.000Z",
"updated_at": "2026-11-12T09:30:00.000Z",
"deleted_at": "2026-11-12T09:30:00.000Z",
"response_count": false,
"collaborator_count": false,
"owner": {}
}
]
}Example request
Bash
curl -X GET 'https://<your-org>.brambleit.cloud/api/v1/admin/forms' \
-H "X-API-Key: $BRAMBLE_KEY"JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/forms', {
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/admin/forms",
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/admin/forms' -Headers $headers#Get a form with its questions
GET
/v1/admin/forms/:idOne form's details and questions, for the BRM-Admin Forms drawer ("view"). Editing happens in BRM-Forms itself, where Global Admins get collaborator access to every form (v1-appForms.js).
- Address
https://<your-org>.brambleit.cloud/api/v1/admin/forms/:id- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of):forms.admin.manage.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | integer |
Response 200
| Field | Type | Description |
|---|---|---|
success | boolean | |
form | any | |
fields | array of any |
Example response
JSON
{
"success": true,
"form": null,
"fields": []
}Errors
| Status | Message |
|---|---|
| 404 | Form not found |
Example request
Bash
curl -X GET 'https://<your-org>.brambleit.cloud/api/v1/admin/forms/42' \
-H "X-API-Key: $BRAMBLE_KEY"JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/forms/42', {
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/admin/forms/42",
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/admin/forms/42' -Headers $headers#List a form's collaborators
GET
/v1/admin/forms/:id/collaborators- Address
https://<your-org>.brambleit.cloud/api/v1/admin/forms/:id/collaborators- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of):forms.admin.manage.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | integer |
Response 200
| Field | Type | Description |
|---|---|---|
success | boolean | |
owner | object | |
owner.id | integer | |
collaborators | array of object | |
collaborators[].id | integer | |
collaborators[].user | object | |
collaborators[].created_at | string (date-time) |
Example response
JSON
{
"success": true,
"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/admin/forms/42/collaborators' \
-H "X-API-Key: $BRAMBLE_KEY"JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/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/admin/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/admin/forms/42/collaborators' -Headers $headers#People who could be added as collaborators
GET
/v1/admin/forms/:id/collaborators/available- Address
https://<your-org>.brambleit.cloud/api/v1/admin/forms/:id/collaborators/available- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of):forms.admin.manage.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | integer |
Query parameters
| Name | Type | Description |
|---|---|---|
q | any |
Response 200
| Field | Type | Description |
|---|---|---|
success | boolean | |
users | array of any |
Example response
JSON
{
"success": true,
"users": []
}Errors
| Status | Message |
|---|---|
| 404 | Form not found |
Example request
Bash
curl -X GET 'https://<your-org>.brambleit.cloud/api/v1/admin/forms/42/collaborators/available' \
-H "X-API-Key: $BRAMBLE_KEY"JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/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/admin/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/admin/forms/42/collaborators/available' -Headers $headers#Add a collaborator to a form
POST
/v1/admin/forms/:id/collaborators- Address
https://<your-org>.brambleit.cloud/api/v1/admin/forms/:id/collaborators- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of):forms.admin.manage.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | integer |
Request body JSON
| Name | Type | Description |
|---|---|---|
user_id | integer |
Response 201
| Field | Type | Description |
|---|---|---|
success | boolean |
Example response
JSON
{
"success": 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 |
Example request
Bash
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/admin/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/admin/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/admin/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/admin/forms/42/collaborators' -Headers $headers -ContentType 'application/json' -Body $body#Remove a collaborator from a form
DELETE
/v1/admin/forms/:id/collaborators/:collabId- Address
https://<your-org>.brambleit.cloud/api/v1/admin/forms/:id/collaborators/:collabId- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of):forms.admin.manage.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | integer | |
collabIdrequired | integer |
Response 200
| Field | Type | Description |
|---|---|---|
success | boolean |
Example response
JSON
{
"success": true
}Errors
| Status | Message |
|---|---|
| 404 | Form not found |
| 404 | Collaborator not found |
Example request
Bash
curl -X DELETE 'https://<your-org>.brambleit.cloud/api/v1/admin/forms/42/collaborators/1' \
-H "X-API-Key: $BRAMBLE_KEY"JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/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/admin/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/admin/forms/42/collaborators/1' -Headers $headers#Give a form a new owner
PATCH
/v1/admin/forms/:id/ownerAdmin override. Unlike the owner's own transfer, the new owner doesn't need to be a collaborator already.
- Address
https://<your-org>.brambleit.cloud/api/v1/admin/forms/:id/owner- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of):forms.admin.manage.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | integer |
Request body JSON
| Name | Type | Description |
|---|---|---|
user_id | integer |
Response 200
| Field | Type | Description |
|---|---|---|
success | boolean |
Example response
JSON
{
"success": 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 |
Example request
Bash
curl -X PATCH 'https://<your-org>.brambleit.cloud/api/v1/admin/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/admin/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/admin/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/admin/forms/42/owner' -Headers $headers -ContentType 'application/json' -Body $bodyWas this page helpful?
Thanks for your feedback.