Legacy v1 (BRM-API)

The original Drive endpoints in BRM-API, kept for older clients. Use /drive/api/v2.

MethodPathSummary
GET/v1/app/drive/itemsList items in a folder
GET/v1/app/drive/recentList the caller's 20 most recently updated files
GET/v1/app/drive/searchSearch the caller's items by name
GET/v1/app/drive/quotaGet the caller's personal storage quota and usage
GET/v1/app/drive/item/:id/pathGet the breadcrumb path to an item
POST/v1/app/drive/folderCreate a folder. If parent_id is given it must be an existing, non-deleted item belonging to the caller's tenant
PATCH/v1/app/drive/item/:idRename an item. Only affects items owned (created_by) by the caller
POST/v1/app/drive/item/:id/moveMove an item into a different folder
DELETE/v1/app/drive/item/:idMove an item to trash
GET/v1/app/drive/trashList the caller's trashed items
POST/v1/app/drive/trash/restore/:idRestore an item out of trash
POST/v1/app/drive/item/:id/shareCreate a public share link for a file
GET/v1/app/drive/item/:id/sharesList active share links for an item
DELETE/v1/app/drive/share/:tokenRevoke a share link. Only affects shares on items owned by the caller

#List items in a folder

GET/v1/app/drive/items

List items in a folder. Returns the caller's own files/folders (created_by = caller) directly under the given parent, or at the root when parent_id is omitted.

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

Query parameters

NameTypeDescription
parent_idinteger

Response 200

FieldTypeDescription
itemsarray of object
items[].idinteger
items[].parent_idinteger, or null
items[].typestring: "file" | "folder"
items[].namestring
items[].mime_typestring, or null
items[].size_bytesinteger
items[].created_byinteger
items[].created_atstring (date-time)
items[].updated_atstring (date-time)
Example response
JSON
{
  "items": [
    {
      "id": 42,
      "parent_id": 7,
      "type": "file",
      "name": "Example name",
      "mime_type": "string",
      "size_bytes": 1,
      "created_by": 1,
      "created_at": "2026-11-12T09:30:00.000Z",
      "updated_at": "2026-11-12T09:30:00.000Z"
    }
  ]
}

Example request

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

#List the caller's 20 most recently updated files

GET/v1/app/drive/recent

List the caller's 20 most recently updated files. Files only (not folders), most recently updated first.

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

Response 200

FieldTypeDescription
itemsarray of object
items[].idinteger
items[].parent_idinteger, or null
items[].typestring: "file" | "folder"
items[].namestring
items[].mime_typestring, or null
items[].size_bytesinteger
items[].updated_atstring (date-time)
Example response
JSON
{
  "items": [
    {
      "id": 42,
      "parent_id": 7,
      "type": "file",
      "name": "Example name",
      "mime_type": "string",
      "size_bytes": 1,
      "updated_at": "2026-11-12T09:30:00.000Z"
    }
  ]
}

Example request

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

#Get the caller's personal storage quota and usage

GET/v1/app/drive/quota

Get the caller's personal storage quota and usage. Quota is license-aware — the highest active "base" drive_products.personal_bytes plus any stackable "addon" products, falling back to a 10 GB default when the tenant has no drive licenses assigned.

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

Response 200

FieldTypeDescription
quota_bytesnumber
used_bytesnumber
license_namestring
addonsarray of any
Example response
JSON
{
  "quota_bytes": 12.5,
  "used_bytes": 12.5,
  "license_name": "Example license name",
  "addons": []
}

Example request

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

#Get the breadcrumb path to an item

GET/v1/app/drive/item/:id/path

Get the breadcrumb path to an item. Walks up parent_id (max 50 levels) from the item to the root, restricted to the caller's own items.

Address
https://<your-org>.brambleit.cloud/api/v1/app/drive/item/:id/path
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).

Path parameters

NameTypeDescription
idrequiredinteger

Response 200

FieldTypeDescription
patharray of any
Example response
JSON
{
  "path": []
}

Errors

StatusMessage
404Not found

Example request

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

#Create a folder. If parent_id is given it must be an existing, non-deleted item belonging to the caller's tenant

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

Request body JSON

NameTypeDescription
namestring
parent_idinteger

Response 201

FieldTypeDescription
idinteger
namestring
typestring
Example response
JSON
{
  "id": 42,
  "name": "Example name",
  "type": "string"
}

Errors

StatusMessage
400Name required
404Parent folder not found

Example request

Bash
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/app/drive/folder' \
  -H "X-API-Key: $BRAMBLE_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Example name","parent_id":7}'

#Rename an item. Only affects items owned (created_by) by the caller

PATCH/v1/app/drive/item/:id
Address
https://<your-org>.brambleit.cloud/api/v1/app/drive/item/:id
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).

Path parameters

NameTypeDescription
idrequiredinteger

Request body JSON

NameTypeDescription
namestring

Response 200

FieldTypeDescription
okboolean
Example response
JSON
{
  "ok": true
}

Errors

StatusMessage
400Name required
404Not found

Example request

Bash
curl -X PATCH 'https://<your-org>.brambleit.cloud/api/v1/app/drive/item/42' \
  -H "X-API-Key: $BRAMBLE_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Example name"}'

#Move an item into a different folder

POST/v1/app/drive/item/:id/move

Move an item into a different folder. New parent (when given) must be an existing folder owned by the caller; a folder cannot be moved into itself.

Address
https://<your-org>.brambleit.cloud/api/v1/app/drive/item/:id/move
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).

Path parameters

NameTypeDescription
idrequiredstring

Request body JSON

NameTypeDescription
parent_idinteger

Response 200

FieldTypeDescription
okboolean
Example response
JSON
{
  "ok": true
}

Errors

StatusMessage
400Cannot move a folder into itself
400Target folder not found
404Target folder not found
404Not found

Example request

Bash
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/app/drive/item/string/move' \
  -H "X-API-Key: $BRAMBLE_KEY" \
  -H "Content-Type: application/json" \
  -d '{"parent_id":7}'

#Move an item to trash

DELETE/v1/app/drive/item/:id

Move an item to trash. Soft delete (sets deleted_at). Only affects items owned by the caller.

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

Path parameters

NameTypeDescription
idrequiredinteger

Response 200

FieldTypeDescription
okboolean
Example response
JSON
{
  "ok": true
}

Errors

StatusMessage
404Not found

Example request

Bash
curl -X DELETE 'https://<your-org>.brambleit.cloud/api/v1/app/drive/item/42' \
  -H "X-API-Key: $BRAMBLE_KEY"

#List the caller's trashed items

GET/v1/app/drive/trash

List the caller's trashed items. Items with deleted_at set, most recently deleted first.

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

Response 200

FieldTypeDescription
itemsarray of object
items[].idinteger
items[].typestring: "file" | "folder"
items[].namestring
items[].mime_typestring, or null
items[].size_bytesinteger
items[].deleted_atstring (date-time), or null
Example response
JSON
{
  "items": [
    {
      "id": 42,
      "type": "file",
      "name": "Example name",
      "mime_type": "string",
      "size_bytes": 1,
      "deleted_at": "2026-11-12T09:30:00.000Z"
    }
  ]
}

Example request

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

#Restore an item out of trash

POST/v1/app/drive/trash/restore/:id

Restore an item out of trash. Clears deleted_at. Only affects items owned by the caller that are currently trashed.

Address
https://<your-org>.brambleit.cloud/api/v1/app/drive/trash/restore/:id
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).

Path parameters

NameTypeDescription
idrequiredinteger

Response 200

FieldTypeDescription
okboolean
Example response
JSON
{
  "ok": true
}

Errors

StatusMessage
404Not found

Example request

Bash
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/app/drive/trash/restore/42' \
  -H "X-API-Key: $BRAMBLE_KEY"

#Create a public share link for a file

POST/v1/app/drive/item/:id/share

Create a public share link for a file. Only files (not folders) owned by the caller can be shared. Generates a random 64-char share token.

Address
https://<your-org>.brambleit.cloud/api/v1/app/drive/item/:id/share
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).

Path parameters

NameTypeDescription
idrequiredinteger

Request body JSON

NameTypeDescription
expires_atstring (date-time)

Response 201

FieldTypeDescription
share_tokenstring
share_urlstring
Example response
JSON
{
  "share_token": "…",
  "share_url": "https://example.com/…"
}

Errors

StatusMessage
400Only files can be shared
404Not found

Example request

Bash
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/app/drive/item/42/share' \
  -H "X-API-Key: $BRAMBLE_KEY" \
  -H "Content-Type: application/json" \
  -d '{"expires_at":"2026-11-12T09:30:00.000Z"}'

#List active share links for an item

GET/v1/app/drive/item/:id/shares

List active share links for an item. Only returns shares on items owned by the caller.

Address
https://<your-org>.brambleit.cloud/api/v1/app/drive/item/:id/shares
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).

Path parameters

NameTypeDescription
idrequiredinteger

Response 200

FieldTypeDescription
sharesarray of any
Example response
JSON
{
  "shares": []
}

Example request

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

#Revoke a share link. Only affects shares on items owned by the caller

DELETE/v1/app/drive/share/:token

Revoke a share link. Only affects shares on items owned by the caller. Silently succeeds even if the token doesn't match anything of the caller's.

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

Path parameters

NameTypeDescription
tokenrequiredstring

Response 200

FieldTypeDescription
okboolean
Example response
JSON
{
  "ok": true
}

Example request

Bash
curl -X DELETE 'https://<your-org>.brambleit.cloud/api/v1/app/drive/share/%E2%80%A6' \
  -H "X-API-Key: $BRAMBLE_KEY"