TV & Dashboards
Boards that put a site's live state on a screen, playlists that rotate them, and the share token that runs an unattended TV.
Screens are where the rest of Dozer becomes visible. A dashboard is a widget layout over live objects; a playlist is an ordered rotation of dashboards with hold times; a share token puts either on a TV that nobody has to log into.
List tv playlists — GET /api/v1/playlists
curl "https://trydozer.com/api/v1/playlists?status=active" \
-H "Authorization: Bearer $DASH_API_KEY" \
-H "Project-ID: pr_northpit"What is playing on the office TV?data_query {
"collection": "playlists",
"where": {
"status": "active"
}
}{
"object": "list",
"data": [
{
"object": "playlist",
"id": "obj_123",
"name": "Little Flake Mine Office Loop",
"status": "active",
"created_at": "2026-07-25T12:00:00.000Z",
"updated_at": "2026-07-25T12:00:00.000Z"
}
],
"has_more": false,
"next_cursor": null
}Two resources, each with its own reference:
dashboards (layout, theme, time zone, site) and
playlists, whose ordered_dashboard_ids and
default_hold_seconds are what the signage runtime plays.
What to know before you call it
Both are read-only over REST — boards are authored in the dashboard builder at
/{project}/dashboards, rotations at /{project}/tv, and both are seeded by
setup from a site prompt: "put the North Pit on the
office TV". No skill edits a dashboard afterwards, which is why
Create a dashboard is a link into the
builder rather than a task you can ask for.
Never hand-craft a share URL or token. The share API is the only door; a
hand-rolled URL is not scoped, cannot be revoked, and will not resolve. Minting
one is a write-scoped operation even though the resulting view is read-only, and
what it yields is a read-only projection — safe to leave running on an unattended
screen, and revoking it takes the screen down without touching anyone's account.
Widget media is served through the share-scoped media route, so a board with
camera frames needs no session either. From your own agent, ask for the link with
signage_share_url (MCP Tools); it reads-or-creates
the token-scoped URL and hands back something you open full-screen.
An empty board stays empty: a widget bound to a collection with no rows renders nothing rather than inventing a placeholder number. And playing is itself evidence — the runtime records the play, which is what View your office dashboard on a screen completes on, not the mere existence of a playlist.
Next: Create a TV playlist to build the rotation · Daily Ops, Vision AI and Devices & Media for the production rollups, camera freshness and live status a board displays.