App settings: Forms

Every form in the organisation, with admin overrides for owners and collaborators.

MethodPathSummary
GET/v1/admin/formsList every form
GET/v1/admin/forms/:idGet a form with its questions
GET/v1/admin/forms/:id/collaboratorsList a form's collaborators
GET/v1/admin/forms/:id/collaborators/availablePeople who could be added as collaborators
POST/v1/admin/forms/:id/collaboratorsAdd a collaborator to a form
DELETE/v1/admin/forms/:id/collaborators/:collabIdRemove a collaborator from a form
PATCH/v1/admin/forms/:id/ownerGive 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

NameTypeDescription
qany

Response 200

FieldTypeDescription
successboolean
formsarray of object
forms[].idinteger
forms[].tenant_idinteger
forms[].slugstring
forms[].titlestring
forms[].descriptionstring, or null
forms[].statusstring: "draft" | "published" | "closed"
forms[].require_loginboolean
forms[].allow_multiple_responsesboolean
forms[].auto_link_project_idinteger, or null
forms[].accent_colorstring
forms[].background_colorstring
forms[].background_image_idinteger, or null
forms[].background_presetstring: "none" | "soft_clouds" | "waves" | "gradient_warm" | "gradient_cool" | "bramble"
forms[].font_familystring
forms[].button_stylestring: "rounded" | "square" | "pill"
forms[].card_radiusstring: "rounded" | "sharp"
forms[].layout_stylestring: "classic" | "title_on_background" | "card_left" | "card_right" | "compact"
forms[].notify_on_submissionboolean
forms[].created_byinteger
forms[].created_atstring (date-time)
forms[].updated_atstring (date-time)
forms[].deleted_atstring (date-time), or null
forms[].response_countboolean
forms[].collaborator_countboolean
forms[].ownerobject
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"

#Get a form with its questions

GET/v1/admin/forms/:id

One 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

NameTypeDescription
idrequiredinteger

Response 200

FieldTypeDescription
successboolean
formany
fieldsarray of any
Example response
JSON
{
  "success": true,
  "form": null,
  "fields": []
}

Errors

StatusMessage
404Form not found

Example request

Bash
curl -X GET 'https://<your-org>.brambleit.cloud/api/v1/admin/forms/42' \
  -H "X-API-Key: $BRAMBLE_KEY"

#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

NameTypeDescription
idrequiredinteger

Response 200

FieldTypeDescription
successboolean
ownerobject
owner.idinteger
collaboratorsarray of object
collaborators[].idinteger
collaborators[].userobject
collaborators[].created_atstring (date-time)
Example response
JSON
{
  "success": true,
  "owner": {
    "id": 42
  },
  "collaborators": [
    {
      "id": 42,
      "user": {},
      "created_at": "2026-11-12T09:30:00.000Z"
    }
  ]
}

Errors

StatusMessage
404Form 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"

#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

NameTypeDescription
idrequiredinteger

Query parameters

NameTypeDescription
qany

Response 200

FieldTypeDescription
successboolean
usersarray of any
Example response
JSON
{
  "success": true,
  "users": []
}

Errors

StatusMessage
404Form 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"

#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

NameTypeDescription
idrequiredinteger

Request body JSON

NameTypeDescription
user_idinteger

Response 201

FieldTypeDescription
successboolean
Example response
JSON
{
  "success": true
}

Errors

StatusMessage
400user_id is required
400That user already owns this form
400User not found in this tenant
404Form 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}'

#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

NameTypeDescription
idrequiredinteger
collabIdrequiredinteger

Response 200

FieldTypeDescription
successboolean
Example response
JSON
{
  "success": true
}

Errors

StatusMessage
404Form not found
404Collaborator 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"

#Give a form a new owner

PATCH/v1/admin/forms/:id/owner

Admin 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

NameTypeDescription
idrequiredinteger

Request body JSON

NameTypeDescription
user_idinteger

Response 200

FieldTypeDescription
successboolean
Example response
JSON
{
  "success": true
}

Errors

StatusMessage
400user_id is required
400That user already owns this form
400User not found in this tenant
404Form 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}'