Push To Display

POST /api/v1/updates

Queues a display update for every device mapped to the requested board. Updates are delivered in real time via SignalR.

Request fields

FieldTypeRequiredDescription
boardIdstringNoSigned board ID from the admin portal. If omitted, the user's default board is used.
blocksarrayYesOne or more content blocks to display. At least one block required.
panelIdintegerNoTarget panel (1–4). Defaults to 1. Selects which panel to update in multi-panel layouts.
fullPanelbooleanNoWhen true, the content fills the entire panel area. Defaults to false.
densitystringNoContent density. Allowed: compact, standard, spacious.
alignXstringNoHorizontal alignment. Allowed: start, center, end.
alignYstringNoVertical alignment. Allowed: start, center, end.
backgroundstringNoPanel background color in hex format (#RRGGBB).

Block fields

Each block represents a line or block of text in the display message.

FieldTypeRequiredDescription
textstringYesThe text content to display.
sizestringNoText size. Allowed: small, medium, large.
weightstringNoFont weight. Allowed: regular, semibold, bold.
colorstringNoText color in hex format (#RRGGBB).
backgroundstringNoSegment background color in hex format (#RRGGBB).

Example request

curl -X POST https://api.pushtodisplay.com/api/v1/updates \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: <your-api-key>" \
  -d '{
  "boardId": "<signed-board-id>",
  "panelId": 1,
  "fullPanel": false,
  "density": "standard",
  "alignX": "center",
  "alignY": "center",
  "background": "#0F172A",
  "blocks": [
    {
      "text": "Deploy completed",
      "color": "#E8FFF6",
      "background": "#0A4A36",
      "size": "large",
      "weight": "bold"
    },
    {
      "text": "Queue: 12 | Escalations: 0",
      "color": "#061A13"
    }
  ]
}'

Response — 202 Accepted

{
  "messageId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "enqueuedAtUtc": "2026-04-14T12:00:00Z",
  "userId": "user-abc"
}

Error responses

StatusMeaning
400Bad request — missing or invalid fields (boardId, blocks, panelId range, invalid hex color).
401Unauthorized — missing or invalid API key in X-Api-Key header.
403Forbidden — the API key does not have access to the specified board.
404Board not found — the boardId does not match any registered board.