Branding & launcher

The organisation's colours, logo, sign-in page background and wording, and custom links added to everyone's app launcher.

MethodPathSummary
GET/v1/admin/tenant/custom-linksList launcher links
POST/v1/admin/tenant/custom-linksAdd a launcher link
PATCH/v1/admin/tenant/custom-links/:idChange a launcher link
DELETE/v1/admin/tenant/custom-links/:idRemove a launcher link
GET/v1/admin/tenant/brandingGet the tenant's branding settings
PUT/v1/admin/tenant/brandingSet colours and sign-in wording
POST/v1/admin/tenant/branding/logoUpload the tenant's branding logo
POST/v1/admin/tenant/branding/backgroundUpload the tenant's branding background image
DELETE/v1/admin/tenant/branding/logoRemove the tenant's branding logo
DELETE/v1/admin/tenant/branding/backgroundRemove the tenant's branding background image
GET/v1/admin/tenant/branding/image/:idServe a tenant branding image (logo or background)

#Add a launcher link

POST/v1/admin/tenant/custom-links
Address
https://<your-org>.brambleit.cloud/api/v1/admin/tenant/custom-links
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Role: GLOBAL_ADMIN.

Request body JSON

NameTypeDescription
namerequiredstringThe label people see.
urlrequiredstringWhere it goes (http or https).
icon_urlstringAn image for its icon.

Response 201

FieldTypeDescription
successboolean
linkany
Example response
JSON
{
  "success": true,
  "link": null
}

Errors

StatusMessage
400name is required
400url must be a valid http(s) URL
400icon_url must be a valid http(s) URL

Example request

Bash
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/admin/tenant/custom-links' \
  -H "X-API-Key: $BRAMBLE_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Example name","url":"https://example.com/…","icon_url":"https://example.com/…"}'

#Get the tenant's branding settings

GET/v1/admin/tenant/branding

Get the tenant's branding settings. Requires the GLOBAL_ADMIN role. Returns colors, login headline/subtext, and logo/background image URLs (or all-null defaults if no branding row exists yet).

Address
https://<your-org>.brambleit.cloud/api/v1/admin/tenant/branding
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Role: GLOBAL_ADMIN.

Response 200

FieldTypeDescription
successboolean
brandingobject
branding.primaryColorany
branding.accentColorany
branding.loginHeadlineany
branding.loginSubtextstring
branding.logoUrlstring, or null
branding.backgroundUrlstring, or null
Example response
JSON
{
  "success": true,
  "branding": {
    "primaryColor": null,
    "accentColor": null,
    "loginHeadline": null,
    "loginSubtext": "string",
    "logoUrl": "https://example.com/…",
    "backgroundUrl": "https://example.com/…"
  }
}

Example request

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

#Set colours and sign-in wording

PUT/v1/admin/tenant/branding

Set the tenant's branding colors and login wording. Requires the GLOBAL_ADMIN role. Colors must be 6-digit hex (e.g. #1f9d57). login_headline max 255 chars, login_subtext max 500 chars. Upserts the tenant_branding row.

Address
https://<your-org>.brambleit.cloud/api/v1/admin/tenant/branding
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Role: GLOBAL_ADMIN.

Request body JSON

NameTypeDescription
primary_coloranyHex colour, e.g. #1f9d57.
accent_coloranyHex colour.
login_headlinestringSign-in page headline, up to 255 characters.
login_subtextstringSign-in page text, up to 500 characters.

Response 200

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

Errors

StatusMessage
400… must be a hex color like #1f9d57
400login_headline is too long (max 255 characters)
400login_subtext is too long (max 500 characters)

Example request

Bash
curl -X PUT 'https://<your-org>.brambleit.cloud/api/v1/admin/tenant/branding' \
  -H "X-API-Key: $BRAMBLE_KEY" \
  -H "Content-Type: application/json" \
  -d '{"primary_color":"…","accent_color":"…","login_headline":"string","login_subtext":"string"}'

#Upload the tenant's branding background image

POST/v1/admin/tenant/branding/background

Upload the tenant's branding background image. Requires the GLOBAL_ADMIN role. Multipart upload, field name "image", 4 MB max, image mimetypes only. Replaces and deletes any existing background BLOB in the same transaction.

Address
https://<your-org>.brambleit.cloud/api/v1/admin/tenant/branding/background
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Role: GLOBAL_ADMIN.

Example request

Bash
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/admin/tenant/branding/background' \
  -H "X-API-Key: $BRAMBLE_KEY"

#Remove the tenant's branding background image

DELETE/v1/admin/tenant/branding/background

Remove the tenant's branding background image. Requires the GLOBAL_ADMIN role. Deletes the stored BLOB and clears background_image_id.

Address
https://<your-org>.brambleit.cloud/api/v1/admin/tenant/branding/background
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Role: GLOBAL_ADMIN.

Example request

Bash
curl -X DELETE 'https://<your-org>.brambleit.cloud/api/v1/admin/tenant/branding/background' \
  -H "X-API-Key: $BRAMBLE_KEY"

#Serve a tenant branding image (logo or background)

GET/v1/admin/tenant/branding/image/:id

Serve a tenant branding image (logo or background). Public, no authentication — embedded on the pre-login tenant login page and inside the admin panel. Not scoped by the caller's tenant since there isn't one pre-login; the image id itself is the only key.

Address
https://<your-org>.brambleit.cloud/api/v1/admin/tenant/branding/image/:id
Requires
None: public, or protected by a token in the address or body.

Path parameters

NameTypeDescription
idrequiredinteger

Response

A body.

Example request

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