A dashboard is a named, project-scoped layout of data widgets built on top of concept output predicates. The Dashboards API lets you list, load, save, and delete dashboards. All paths are relative to the base URL and require authentication. All responses use the standard envelope.

List all dashboards

Return metadata for every dashboard across all projects the caller can access. No definition payloads are included.
GET /dashboards/list
ParameterInRequiredDefaultDescription
scopequeryno"user"Scope of the lookup.
curl "$BASE_URL/dashboards/list?scope=user" \
  -H "Authorization: Bearer $TOKEN"
{
  "status": "success",
  "message": "All dashboards listed successfully",
  "data": [
    {
      "id": "dash_a1b2...",
      "project_id": "proj_123",
      "name": "Sales Overview"
    }
  ]
}

List dashboards in a project

Return metadata for all dashboards in a single project. No definition payloads are included.
GET /dashboards/{project_id}/list
ParameterInRequiredDefaultDescription
project_idpathyesThe project ID.
scopequeryno"user"Scope of the project.
curl "$BASE_URL/dashboards/$PROJECT_ID/list?scope=user" \
  -H "Authorization: Bearer $TOKEN"
data is an array of dashboard metadata objects (id, project_id, name).

Get a dashboard

Return a single dashboard with its full definition.
GET /dashboards/{project_id}/{dashboard_id}
ParameterInRequiredDefaultDescription
project_idpathyesThe project ID.
dashboard_idpathyesThe dashboard ID.
scopequeryno"user"Scope of the project.
curl "$BASE_URL/dashboards/$PROJECT_ID/dash_a1b2...?scope=user" \
  -H "Authorization: Bearer $TOKEN"
{
  "status": "success",
  "message": "Dashboard loaded successfully",
  "data": {
    "id": "dash_a1b2...",
    "project_id": "proj_123",
    "name": "Sales Overview",
    "definition": { /* widget layout */ }
  }
}
Returns 404 if no dashboard with that ID exists in the project.

Save a dashboard

Create or update a dashboard. When dashboard.id is absent, a new UUID is generated server-side. The assigned ID is always returned in the response.
POST /dashboards/{project_id}/save
ParameterInRequiredDefaultDescription
project_idpathyesThe project ID.
scopebodyno"user"Scope of the project.
dashboardbodyyesThe dashboard definition object. Include id to update an existing dashboard; omit it to create a new one.

Example

curl -X POST "$BASE_URL/dashboards/$PROJECT_ID/save" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "scope": "user",
    "dashboard": {
      "name": "Sales Overview",
      "definition": { "widgets": [] }
    }
  }'
{
  "status": "success",
  "message": "Dashboard 'dash_a1b2...' saved successfully",
  "data": { "id": "dash_a1b2..." }
}

Delete a dashboard

Permanently delete a dashboard. This action is irreversible.
DELETE /dashboards/{project_id}/{dashboard_id}
ParameterInRequiredDefaultDescription
project_idpathyesThe project ID.
dashboard_idpathyesThe dashboard ID.
scopequeryno"user"Scope of the project.
curl -X DELETE "$BASE_URL/dashboards/$PROJECT_ID/dash_a1b2...?scope=user" \
  -H "Authorization: Bearer $TOKEN"
{
  "status": "success",
  "message": "Dashboard 'dash_a1b2...' deleted successfully",
  "data": null
}