---
title: "Segment sync freshness for a dashboard"
method: GET
path: "/api/v1/ackdb/observe/dashboards/{id}/freshness"
tags: ["ackDB"]
---

# Segment sync freshness for a dashboard

`GET /api/v1/ackdb/observe/dashboards/{id}/freshness`

## Request

- Base URL: `http://localhost:3009`
- URL: `http://localhost:3009/api/v1/ackdb/observe/dashboards/{id}/freshness`
- Auth: HTTP bearer

Per-segment sync position for every segment a non-degraded panel pins. Calling it also FIRES the membership diff for those segments (rate limited to one per segment per 60s), so polling it while a dashboard is open is what self-drives change detection. The diff is fire and forget: the response reflects the PREVIOUS diff, so at the console's ~30s cadence a one-poll lag is deliberate. This endpoint must stay fast, and freshness is an accelerator - live queries are the correctness mechanism. `seq` is GREATEST(max(seq), prunedThroughSeq), so retention pruning never looks like a rewind. A segment never diffed (or a deployment without the sync tables) reads `{ seq: 0, lastChangeAt: null }`.

## Path parameters

- `id` string, required

## Response `200`

Per-segment watermarks.

- AckdbDashboardFreshness
  - `segments` object, required: Keyed by segment id. Every non-degraded panel's segment is present.
  - `checkedAt` string, date-time, required

## Other responses

- `403`: The caller cannot see this dashboard.
- `404`: DASHBOARD_NOT_FOUND.

---

[API](https://skmtc.dev/floqer/apis/floqer-public-api.md) - [All operations](https://skmtc.dev/floqer/apis/floqer-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/floqer/apis/floqer-public-api/revisions/fce50dc07b20?raw)
