Cross space shares API

Cross space shares endpoints in the Brix REST API: 3 operations (GET, POST, 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/cross-space-shares

Auth: Bearer token. Permission: playlist.view.

List content this space shares into its child spaces, and content shared with it in turn. A space receiving a share can read it but cannot change or remove it. Notes. - Lists the shares this workspace RECEIVES (it is the target), not the ones it grants.

curl "https://api.brixsignage.com/v1/cross-space-shares" \
  -H "Authorization: Bearer $BRIX_API_KEY"

Response 200: Success.

FieldTypeDescription
dataarray of object
data[].idstring
data[].sourceSpaceIdstringThe workspace that shares.
data[].targetSpaceIdstringThe child workspace that receives.
data[].contentKindstringplaylist, schedule, layout, creative, media, …
data[].contentIdstring
data[].mode"linked" | "snapshot"Always linked for a new share: the child plays the parent's current version.
data[].lockLevel"playlist" | "items" | "both"What the child cannot change.
data[].lockedItemIdsstringA JSON-ENCODED array of item ids (the stored column), not an array.
data[].grantedBystringThe user who shared it; system for an API key.
data[].grantedAtstringISO-8601 timestamp (UTC).
data[].createdAtstringISO-8601 timestamp (UTC).
data[].updatedAtstringISO-8601 timestamp (UTC).
data[].deletedAtstring | null
data[].contentNamestring | nullNull when the content no longer exists.
data[].sourceSpaceNamestring | null
data[].availablebooleanFalse when the shared content was deleted.
data[].thumbnailUrlstring | nullThe item's picture through the share (GET /v1/shared-in/{kind}/{id}/thumbnail). Null for an app, a schedule or a deleted item.

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/cross-space-shares

Auth: Bearer token. Permission: playlist.view.

Share a playlist, layout, schedule, or creative from this space into a child space. The shared content appears in the child space alongside its own content. Only the space that owns the content can create the share. Requires view permission on shares plus the appropriate permission on the content itself. Notes. - Besides the playlist.view gate, the caller needs the content kind's edit permission at the content's location.

Request body: application/json

FieldTypeRequiredDescription
targetSpaceIdstringyesA child workspace of yours.
contentKindstringyes
contentIdstringyes
lockLevel"playlist" | "items" | "both"noDefault both.
lockedItemIdsarray of stringno
modestringnoIgnored: a share is always linked.
curl -X POST "https://api.brixsignage.com/v1/cross-space-shares" \
  -H "Authorization: Bearer $BRIX_API_KEY" \
  -H "Content-Type: application/json"

Response 200: Success: The content is already shared with that workspace: the existing share is returned.

FieldTypeDescription
dataCrossSpaceShareContent a parent workspace shares with a child workspace.
data.idstring
data.sourceSpaceIdstringThe workspace that shares.
data.targetSpaceIdstringThe child workspace that receives.
data.contentKindstringplaylist, schedule, layout, creative, media, …
data.contentIdstring
data.mode"linked" | "snapshot"Always linked for a new share: the child plays the parent's current version.
data.lockLevel"playlist" | "items" | "both"What the child cannot change.
data.lockedItemIdsstringA JSON-ENCODED array of item ids (the stored column), not an array.
data.grantedBystringThe user who shared it; system for an API key.
data.grantedAtstringISO-8601 timestamp (UTC).
data.createdAtstringISO-8601 timestamp (UTC).
data.updatedAtstringISO-8601 timestamp (UTC).
data.deletedAtstring | null

Response 201: Success.

FieldTypeDescription
dataCrossSpaceShareContent a parent workspace shares with a child workspace.
data.idstring
data.sourceSpaceIdstringThe workspace that shares.
data.targetSpaceIdstringThe child workspace that receives.
data.contentKindstringplaylist, schedule, layout, creative, media, …
data.contentIdstring
data.mode"linked" | "snapshot"Always linked for a new share: the child plays the parent's current version.
data.lockLevel"playlist" | "items" | "both"What the child cannot change.
data.lockedItemIdsstringA JSON-ENCODED array of item ids (the stored column), not an array.
data.grantedBystringThe user who shared it; system for an API key.
data.grantedAtstringISO-8601 timestamp (UTC).
data.createdAtstringISO-8601 timestamp (UTC).
data.updatedAtstringISO-8601 timestamp (UTC).
data.deletedAtstring | null

Response 401: Missing, expired or revoked bearer token.

Response 403: The target is not a child workspace of yours, or you lack the content kind's edit permission (playlist.edit, …) where it lives.

Response 404: No such content in your workspace.

Response 422: targetSpaceId, contentKind or contentId is missing.

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

DELETE /v1/cross-space-shares/{id}

Auth: Bearer token. Permission: playlist.view.

Withdraw a share. Only the space that created the share can remove it; the receiving space cannot. Notes. - Only the sharing workspace can revoke; it needs the content kind's edit permission too.

ParameterInTypeRequiredDescription
idpathstringyesShare id.
curl -X DELETE "https://api.brixsignage.com/v1/cross-space-shares/{id}" \
  -H "Authorization: Bearer $BRIX_API_KEY"

Response 200: Success.

FieldTypeDescription
dataobject
data.idstring
data.revokedtrue

Response 401: Missing, expired or revoked bearer token.

Response 403: You lack the content kind's edit permission where the content lives.

Response 404: No such share granted by this workspace.

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