Emergency templates API
Emergency templates endpoints in the Brix REST API: 4 operations (GET, POST, PATCH, DELETE), with auth, permissions and curl examples.
Base URL https://api.brixsignage.com. Send Authorization: Bearer $BRIX_API_KEY unless an operation says No auth. The permission chip names what the key must hold. See Authentication and scopes, Errors and rate limits and Pagination.
GET /v1/emergency-templatesPOST /v1/emergency-templatesPATCH /v1/emergency-templates/{id}DELETE /v1/emergency-templates/{id}
GET/v1/emergency-templates
List pre-configured emergency recipes, such as Lockdown, Severe weather, or Fire drill, used for one-click triggering. A template with prestage set to true has its content cached on every screen in scope in advance, before it is ever triggered.
curl "https://api.brixsignage.com/v1/emergency-templates" \
-H "Authorization: Bearer $BRIX_API_KEY" Response 200 Success.
| Field | Type | Description |
|---|---|---|
data | array of EmergencyTemplate | |
data[].id | string | Emergency template id. |
data[].spaceId | string | |
data[].name | string | |
data[].severity | "info" | "warning" | "critical" | |
data[].headline | string | |
data[].body | string | null | |
data[].contentKind | "media" | "creative" | "playlist" | "app" | null | |
data[].contentId | string | null | |
data[].scopeKind | "all" | "node" | "screens" | |
data[].scopeNodeId | string | null | |
data[].nodeId | string | null | Home location (null = workspace root); permissions are checked here. |
data[].prestage | boolean | Content is cached on every in-scope screen before any trigger. |
data[].createdAt | string | ISO-8601 timestamp (UTC). |
data[].updatedAt | string | ISO-8601 timestamp (UTC). |
data[].deletedAt | string | null |
Response 401 Missing, expired or revoked bearer token.
| Field | Type | Description |
|---|---|---|
error | string | Machine-readable code: `unauthorized`, `forbidden`, `not_found`, `validation_error`, `conflict`, `rate_limited`, `internal_error`, … |
message | string | Human-readable explanation. Safe to show an operator. |
requestId | string | Present on 5xx: quote it to support. |
Response 403 The token lacks the permission this operation needs (see `x-brix-permission`).
| Field | Type | Description |
|---|---|---|
error | string | Machine-readable code: `unauthorized`, `forbidden`, `not_found`, `validation_error`, `conflict`, `rate_limited`, `internal_error`, … |
message | string | Human-readable explanation. Safe to show an operator. |
requestId | string | Present on 5xx: quote it to support. |
Response 5XX Server error. The body carries a `requestId` to quote to support.
| Field | Type | Description |
|---|---|---|
error | string | Machine-readable code: `unauthorized`, `forbidden`, `not_found`, `validation_error`, `conflict`, `rate_limited`, `internal_error`, … |
message | string | Human-readable explanation. Safe to show an operator. |
requestId | string | Present on 5xx: quote it to support. |
POST/v1/emergency-templates
Create a reusable emergency recipe with a name, contentKind, contentId, scope, severity, and an optional prestage flag. Trigger it later with POST /v1/emergencies/from-template/:templateId.
Request body application/json
| Field | Type | Required | Description |
|---|---|---|---|
name | string | no | Default "Untitled template". |
headline | string | no | Default "Emergency". |
body | string | no | |
severity | "info" | "warning" | "critical" | no | Default `critical`. |
contentKind | "media" | "creative" | "playlist" | "app" | no | |
contentId | string | no | |
scopeKind | "all" | "node" | "screens" | no | Default `all`. |
scopeNodeId | string | no | Required with `scopeKind: node`. |
nodeId | string | no | Home location. Default: the API key's location, else the workspace root. |
prestage | boolean | no |
curl -X POST "https://api.brixsignage.com/v1/emergency-templates" \
-H "Authorization: Bearer $BRIX_API_KEY" \
-H "Content-Type: application/json" Response 201 Success.
| Field | Type | Description |
|---|---|---|
data | EmergencyTemplate | A pre-armed emergency recipe. |
data.id | string | Emergency template id. |
data.spaceId | string | |
data.name | string | |
data.severity | "info" | "warning" | "critical" | |
data.headline | string | |
data.body | string | null | |
data.contentKind | "media" | "creative" | "playlist" | "app" | null | |
data.contentId | string | null | |
data.scopeKind | "all" | "node" | "screens" | |
data.scopeNodeId | string | null | |
data.nodeId | string | null | Home location (null = workspace root); permissions are checked here. |
data.prestage | boolean | Content is cached on every in-scope screen before any trigger. |
data.createdAt | string | ISO-8601 timestamp (UTC). |
data.updatedAt | string | ISO-8601 timestamp (UTC). |
data.deletedAt | string | null |
Response 401 Missing, expired or revoked bearer token.
| Field | Type | Description |
|---|---|---|
error | string | Machine-readable code: `unauthorized`, `forbidden`, `not_found`, `validation_error`, `conflict`, `rate_limited`, `internal_error`, … |
message | string | Human-readable explanation. Safe to show an operator. |
requestId | string | Present on 5xx: quote it to support. |
Response 403 Missing `emergency-override.edit` at the home or scope location.
| Field | Type | Description |
|---|---|---|
error | string | Machine-readable code: `unauthorized`, `forbidden`, `not_found`, `validation_error`, `conflict`, `rate_limited`, `internal_error`, … |
message | string | Human-readable explanation. Safe to show an operator. |
requestId | string | Present on 5xx: quote it to support. |
Response 404 The content or a location does not exist in this workspace.
| Field | Type | Description |
|---|---|---|
error | string | Machine-readable code: `unauthorized`, `forbidden`, `not_found`, `validation_error`, `conflict`, `rate_limited`, `internal_error`, … |
message | string | Human-readable explanation. Safe to show an operator. |
requestId | string | Present on 5xx: quote it to support. |
Response 422 A content kind outside media/creative/playlist/app, a half content pointer, or `scopeKind: node` without `scopeNodeId`.
| Field | Type | Description |
|---|---|---|
error | string | Machine-readable code: `unauthorized`, `forbidden`, `not_found`, `validation_error`, `conflict`, `rate_limited`, `internal_error`, … |
message | string | Human-readable explanation. Safe to show an operator. |
requestId | string | Present on 5xx: quote it to support. |
Response 5XX Server error. The body carries a `requestId` to quote to support.
| Field | Type | Description |
|---|---|---|
error | string | Machine-readable code: `unauthorized`, `forbidden`, `not_found`, `validation_error`, `conflict`, `rate_limited`, `internal_error`, … |
message | string | Human-readable explanation. Safe to show an operator. |
requestId | string | Present on 5xx: quote it to support. |
PATCH/v1/emergency-templates/{id}
Edit an emergency template's content, scope, severity, or prestaging setting.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes | Identifier for id. |
curl -X PATCH "https://api.brixsignage.com/v1/emergency-templates/{id}" \
-H "Authorization: Bearer $BRIX_API_KEY" Response 4XX Client error. 404 rather than 403 for another tenant's resource, so account existence is not leaked.
| Field | Type | Description |
|---|---|---|
error | string | Machine-readable code: `unauthorized`, `forbidden`, `not_found`, `validation_error`, `conflict`, `rate_limited`, `internal_error`, … |
message | string | Human-readable explanation. Safe to show an operator. |
requestId | string | Present on 5xx: quote it to support. |
Response 5XX Server error. The body carries a `requestId` to quote to support.
| Field | Type | Description |
|---|---|---|
error | string | Machine-readable code: `unauthorized`, `forbidden`, `not_found`, `validation_error`, `conflict`, `rate_limited`, `internal_error`, … |
message | string | Human-readable explanation. Safe to show an operator. |
requestId | string | Present on 5xx: quote it to support. |
DELETE/v1/emergency-templates/{id}
Delete an emergency template. Emergencies already triggered from it are unaffected.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes | Identifier for id. |
curl -X DELETE "https://api.brixsignage.com/v1/emergency-templates/{id}" \
-H "Authorization: Bearer $BRIX_API_KEY" Response 4XX Client error. 404 rather than 403 for another tenant's resource, so account existence is not leaked.
| Field | Type | Description |
|---|---|---|
error | string | Machine-readable code: `unauthorized`, `forbidden`, `not_found`, `validation_error`, `conflict`, `rate_limited`, `internal_error`, … |
message | string | Human-readable explanation. Safe to show an operator. |
requestId | string | Present on 5xx: quote it to support. |
Response 5XX Server error. The body carries a `requestId` to quote to support.
| Field | Type | Description |
|---|---|---|
error | string | Machine-readable code: `unauthorized`, `forbidden`, `not_found`, `validation_error`, `conflict`, `rate_limited`, `internal_error`, … |
message | string | Human-readable explanation. Safe to show an operator. |
requestId | string | Present on 5xx: quote it to support. |