Media folders API

Media folders endpoints in the Brix REST API: 6 operations (GET, POST, PATCH, DELETE). Each lists its path, auth, required permission and a curl example.

View as Markdown · For AI agents: the full docs index is at /llms.txt

Base URL https://api.brixsignage.com. Send Authorization: Bearer $BRIX_API_KEY unless an operation says Auth: none or Auth: no API key. The Permission line names what the key must hold. See Authentication and scopes, Errors and rate limits and Pagination.

Every 4xx and 5xx response below returns this body:

FieldTypeDescription
errorstringMachine-readable code: unauthorized, forbidden, not_found, validation_error, conflict, rate_limited, internal_error, …
messagestringHuman-readable explanation. Safe to show an operator.
requestIdstringPresent on 5xx: quote it to support.

GET /v1/media-folders

Auth: Bearer token. Permission: media.view.

Return the media library's folder tree for this workspace, including each folder's id, name, parent folder, and location.

ParameterInTypeRequiredDescription
limitqueryintegernoPage size. Omit to get every row; pass it to page by cursor.
cursorquerystringnoThe nextCursor of the previous page.
countquery"1"noWith limit: also return total.
usableAtquerystringnoLocation id: only folders usable at that location.
curl "https://api.brixsignage.com/v1/media-folders" \
  -H "Authorization: Bearer $BRIX_API_KEY"

Response 200: Success.

FieldTypeDescription
dataarray of MediaFolder
data[].idstringMedia folder id.
data[].spaceIdstring
data[].parentIdstring | nullParent folder; null = top level.
data[].namestring
data[].nodeIdstring | nullHome location; null = workspace root.
data[].createdAtstringISO-8601 timestamp (UTC).
data[].updatedAtstringISO-8601 timestamp (UTC).
data[].deletedAtstring | null
nextCursorstring | nullPresent when ?limit was passed. Send it back as ?cursor= for the next page; null on the last page.
totalintegerTotal matching rows, when the route computes it.

Response 401: Missing, expired or revoked bearer token.

Response 403: The token lacks the permission this operation needs (see x-brix-permission).

Response 5XX: Server error. The body carries a requestId to quote to support.

POST /v1/media-folders

Auth: Bearer token. Permission: media.create.

Create a folder in the media library. Requires name; parentId and nodeId are optional. Omitting parentId places the folder at the root. Notes. - The 201 body is the row as written, not re-read: columns the create does not set are absent rather than null. GET returns every column.

Request body: application/json

FieldTypeRequiredDescription
namestringyes
parentIdstring | nullno
nodeIdstring | nullnoHome location. Default: the caller's own location.
curl -X POST "https://api.brixsignage.com/v1/media-folders" \
  -H "Authorization: Bearer $BRIX_API_KEY" \
  -H "Content-Type: application/json"

Response 201: Success.

FieldTypeDescription
dataobject
data.idstringMedia folder id.
data.spaceIdstring
data.parentIdstring | null
data.namestring
data.nodeIdstring | null
data.createdAtstringISO-8601 timestamp (UTC).
data.updatedAtstringISO-8601 timestamp (UTC).
data.deletedAtstring | null

Response 401: Missing, expired or revoked bearer token.

Response 403: The token lacks the permission this operation needs (see x-brix-permission).

Response 404: The location does not exist.

Response 422: name is missing.

Response 5XX: Server error. The body carries a requestId to quote to support.

GET /v1/media-folders/{id}

Auth: Bearer token. Permission: media.view.

Return one media folder.

ParameterInTypeRequiredDescription
idpathstringyesMedia folder id.
curl "https://api.brixsignage.com/v1/media-folders/{id}" \
  -H "Authorization: Bearer $BRIX_API_KEY"

Response 200: Success.

FieldTypeDescription
dataMediaFolderA folder in the media library.
data.idstringMedia folder id.
data.spaceIdstring
data.parentIdstring | nullParent folder; null = top level.
data.namestring
data.nodeIdstring | nullHome location; null = workspace root.
data.createdAtstringISO-8601 timestamp (UTC).
data.updatedAtstringISO-8601 timestamp (UTC).
data.deletedAtstring | null

Response 401: Missing, expired or revoked bearer token.

Response 403: The token lacks the permission this operation needs (see x-brix-permission).

Response 5XX: Server error. The body carries a requestId to quote to support.

PATCH /v1/media-folders/{id}

Auth: Bearer token. Permission: media.edit.

Rename a media folder or move it to a different parent folder or location. Accepts optional name, parentId, and nodeId.

ParameterInTypeRequiredDescription
idpathstringyesMedia folder id.

Request body: application/json

FieldTypeRequiredDescription
namestringno
parentIdstring | nullno
nodeIdstring | nullno
baseUpdatedAtstringnoThe updatedAt your edit is based on; 409 with the current row if it moved.
curl -X PATCH "https://api.brixsignage.com/v1/media-folders/{id}" \
  -H "Authorization: Bearer $BRIX_API_KEY" \
  -H "Content-Type: application/json"

Response 200: Success.

FieldTypeDescription
dataMediaFolderA folder in the media library.
data.idstringMedia folder id.
data.spaceIdstring
data.parentIdstring | nullParent folder; null = top level.
data.namestring
data.nodeIdstring | nullHome location; null = workspace root.
data.createdAtstringISO-8601 timestamp (UTC).
data.updatedAtstringISO-8601 timestamp (UTC).
data.deletedAtstring | null

Response 401: Missing, expired or revoked bearer token.

Response 403: The token lacks the permission this operation needs (see x-brix-permission).

Response 404: No folder with this id.

Response 409: conflict: changed since baseUpdatedAt; the body carries current.

Response 5XX: Server error. The body carries a requestId to quote to support.

DELETE /v1/media-folders/{id}

Auth: Bearer token. Permission: media.delete.

Move a media folder to the recycle bin; it can be restored later. Assets inside the folder are not moved or deleted and keep their existing folder reference.

ParameterInTypeRequiredDescription
idpathstringyesMedia folder id.
curl -X DELETE "https://api.brixsignage.com/v1/media-folders/{id}" \
  -H "Authorization: Bearer $BRIX_API_KEY"

Response 200: Success.

FieldTypeDescription
dataobject
data.idstring
data.deletedtrue

Response 401: Missing, expired or revoked bearer token.

Response 403: The token lacks the permission this operation needs (see x-brix-permission).

Response 5XX: Server error. The body carries a requestId to quote to support.

POST /v1/media-folders/{id}/restore

Auth: Bearer token. Permission: media.delete.

Bring back a deleted media folder so it reappears in the folder tree. Assets inside it keep whatever delete state they already had.

ParameterInTypeRequiredDescription
idpathstringyesMedia folder id.
curl -X POST "https://api.brixsignage.com/v1/media-folders/{id}/restore" \
  -H "Authorization: Bearer $BRIX_API_KEY"

Response 200: Success.

FieldTypeDescription
dataobject
data.idstring
data.restoredtrue

Response 401: Missing, expired or revoked bearer token.

Response 403: The token lacks the permission this operation needs (see x-brix-permission).

Response 404: No folder with this id.

Response 409: not_deleted.

Response 5XX: Server error. The body carries a requestId to quote to support.