Skip to main content

Visit Later

N/a

General Notes

  • Returns default canvases first, then non-default — within each group ordered by displayOrder ascending
  • Accepts an optional filter query param (default, non-default, all; default: all)
  • Every user has a default "Energy Audit" canvas (isDefault: true)
  • Soft-deleted canvases are excluded (deletedAt: null filter)
  • SUPER_ADMIN sees all canvases (no userId filter); AE/CIO see only their own
  • SUPER_ADMIN response includes userId and userName fields per canvas (batch-resolved, not N+1)

Flow

Mermaid editor

Test cases

Method & URL

GET v1/canvases

Request

Headers

authorization
- Required
- Type : <string>
- Bearer session token

Query

filter
- Optional
- Type: <string>
- Enum: "default" | "non-default" | "all"
- Default: "all"
- Filters canvases by type — "default" returns only default canvases, "non-default" returns only non-default canvases, "all" returns both

Body


Path parameter


Response

2xx

success
- Type : true (boolean)
- This indicates that request was executed successfully

message
- Type : <string> | null
- null on success

data
- Type : <object>

data.canvases
- Type : <object>[]
- List of canvases

data.canvases[].id
- Type : <string>
- Canvas identifier

data.canvases[].name
- Type : <string>
- Canvas display name

data.canvases[].displayOrder
- Type : <number>
- Display order

data.canvases[].isDefault
- Type : <boolean>
- true for the default Energy Audit canvas

data.canvases[].widgetCount
- Type : <number>
- Number of non-deleted widgets currently in the canvas

data.canvases[].widgetLimit
- Type : <number>
- Maximum widgets allowed in this canvas

data.canvases[].userId
- Type : <string>
- SUPER_ADMIN only — the userId who owns the canvas

data.canvases[].userName
- Type : <string> | null
- SUPER_ADMIN only — display name of the canvas owner (null if user not found)

data.lastRefreshedAt
- Type : <object>
- Last data refresh timestamp from DuckDB metadata table (cached at server startup)

data.lastRefreshedAt.iso
- Type : <string> | null
- UTC timestamp in minute precision, e.g. "2026-04-06T08:15Z"
- null when metadata table is unavailable or query fails

data.lastRefreshedAt.ist
- Type : <string> | null
- IST (UTC+05:30) timestamp in minute precision, e.g. "2026-04-06T13:45+05:30"
- null when metadata table is unavailable or query fails