get_refresh_status
Read a dashboard's refresh state and its last twenty runs. Parameters, return shape, the non-refreshable state, errors and scope.
Reads a dashboard's refresh state: whether it is refreshable at all, its schedule, its status, when it runs next, the last successful run and last attempt, the consecutive-failure count, and the most recent 20 runs with their row counts, durations and errors.
This is the read side of scheduled refresh. It answers "is it refreshing on schedule", "when does it run next", and "why did the last run fail". It does not trigger a refresh and does not change the schedule.
Behaviour hints for clients: read-only, not open-world.
Parameters
| Parameter | Type | Required | Notes |
|---|---|---|---|
slug | string | yes | Canonical slug of the dashboard to inspect. |
workspace | string | no | Workspace slug. |
Returns
Refresh status for "revenue-overview":
- Refreshable: yes
- Connection: Analytics Postgres [7a1e...]
- Schedule: daily at 07:00 America/Los_Angeles
- Status: active
- Next refresh: 2026-07-31T14:00:00Z
- Last successful run: 2026-07-30T14:00:03Z
- Last attempt: 2026-07-30T14:00:03Z
- Consecutive failures: 0
Recent runs (newest first, up to 20):
1. 2026-07-30T14:00:00Z -> 2026-07-30T14:00:03Z - success - 96 rows - 3120 ms
BEGIN_JSON
{"slug":"revenue-overview","is_refreshable":true,"run_count":1,"runs":[]}
END_JSON
The Connection: line takes one of four forms:
self (Dashies' own no-PII metrics), <label> [<id>], [<id>], or unknown.
A dashboard with no runs yet reports No refresh runs recorded yet. The JSON
block always carries run_count, so an empty history is distinguishable from a
failed read.
A dashboard that is not set up to refresh reports:
- Refreshable: no (no connected data source)
This dashboard is not set up to refresh. Republish it with a source_config refresh manifest via your AI tool to put it on a schedule.
Last attempt and last successful run are different fields
When they diverge, the dashboard is failing: the cron is still running on
schedule and the runs are not succeeding. Read Consecutive failures next, since
the retry backoff widens with it.
Errors
The shared slug rules, plus:
| Condition | Text |
|---|---|
| The read failed | refresh status lookup failed: <err> |
| No such dashboard | No dashboard named "<slug>" in your account. |
That refusal says in your account even for a workspace target
The lookup itself is correct and membership-gated. Only the wording is personal. A workspace dashboard that genuinely does not exist, and one you cannot see, produce the same sentence.
Scope
Workspace-capable. Any member of the workspace may read the status of its dashboards.
Check it worked
After arming a schedule, confirm Next refresh is populated and in the future.
After the first run lands, confirm Last successful run matches it and
Consecutive failures is 0. A Next refresh that never moves is the signal that
the cadence never re-anchored.