Status API
Status endpoints in the Brix REST API for digital signage: 2 operations (GET). Each lists its path, auth, required permission and a curl example.
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/status
Get the current platform status, including overall state, 30-day latency attainment, open and recent published incidents, and a 90-day history strip. This endpoint requires no authentication. If the underlying status data is more than three hours old, the state is reported as unknown rather than operational. Pass format=text for a plain-text response.
**Notes.**
- Answers 200 during an outage too: the state is in the body.
- With format=text the body is text/plain.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
format | query | "text" | no | `text` answers a plain-text summary instead of JSON. |
curl "https://api.brixsignage.com/v1/status" Response 200 Success.
| Field | Type | Description |
|---|---|---|
data | object | |
data.state | "operational" | "degraded" | "outage" | "unknown" | |
data.computedAt | string | null | When the status was measured; null when never. |
data.stale | boolean | True when the measurement is more than three hours old (the state is then `unknown`). |
data.latency | object | null | |
data.incidents | array of StatusIncident | Open incidents. |
data.incidents[].id | string | |
data.incidents[].title | string | |
data.incidents[].status | "investigating" | "identified" | "monitoring" | "resolved" | |
data.incidents[].impact | "degraded" | "outage" | "none" | |
data.incidents[].startedAt | string | ISO-8601 timestamp (UTC). |
data.incidents[].resolvedAt | string | null | |
data.incidents[].updates | array of object | Oldest first. |
data.incidents[].updates[].at | string | ISO-8601 timestamp (UTC). |
data.incidents[].updates[].status | "investigating" | "identified" | "monitoring" | "resolved" | |
data.incidents[].updates[].message | string | |
data.incidents[].screensPlaying | boolean | null | Whether screens kept playing during the incident; null when not stated. |
data.recent | array of StatusIncident | Recently resolved incidents. |
data.recent[].id | string | |
data.recent[].title | string | |
data.recent[].status | "investigating" | "identified" | "monitoring" | "resolved" | |
data.recent[].impact | "degraded" | "outage" | "none" | |
data.recent[].startedAt | string | ISO-8601 timestamp (UTC). |
data.recent[].resolvedAt | string | null | |
data.recent[].updates | array of object | Oldest first. |
data.recent[].updates[].at | string | ISO-8601 timestamp (UTC). |
data.recent[].updates[].status | "investigating" | "identified" | "monitoring" | "resolved" | |
data.recent[].updates[].message | string | |
data.recent[].screensPlaying | boolean | null | Whether screens kept playing during the incident; null when not stated. |
data.days | array of object | One entry per day, for the last 90 days. |
data.days[].date | string | `YYYY-MM-DD`. |
data.days[].state | "operational" | "degraded" | "outage" |
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 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. |
GET/v1/status/deprecations
List every API route scheduled for retirement, when it stops working, and its replacement. This endpoint requires no authentication and is safe to poll from a script. An empty list means no routes are currently scheduled for retirement.
curl "https://api.brixsignage.com/v1/status/deprecations" Response 200 Success.
| Field | Type | Description |
|---|---|---|
data | object | |
data.noticeDays | integer | The minimum notice a retired route gets. |
data.policy | string | |
data.deprecations | array of object | |
data.deprecations[].route | string | `METHOD /path`. |
data.deprecations[].announced | string | Date (`YYYY-MM-DD`) it was listed. |
data.deprecations[].sunset | string | Date (`YYYY-MM-DD`) it stops working. |
data.deprecations[].replacement | string | null | |
data.deprecations[].why | string | |
data.deprecations[].noticeDays | integer | Days between `announced` and `sunset`. |
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 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. |