Skip to main content

Dashboards - Read

Endpoint

/o/dashboards

Overview

Returns one dashboard with widget data, app summaries, owner info, and access flags. Sharing details are only included for owners and global admins.

Authentication

Pass api_key or auth_token as a query parameter, or send countly-token as a header. See Authentication.

Permissions

No separate feature permission flag is checked. Access is controlled by dashboard-level sharing rules.

Request Parameters

ParameterTypeRequiredDescription
dashboard_idStringYesDashboard ID (24-char ObjectId string).
periodStringNoOptional period used by widget data loaders.
actionStringNoOptional action context (for example refresh).
api_keyStringConditionalRequired if auth_token is not provided.
auth_tokenStringConditionalRequired if api_key is not provided.

Examples

Read one dashboard

/o/dashboards?
dashboard_id=65e1f3d2a4f41a5f6f6d7701&
period=30days

Response

Success Response

{
"_id": "65e1f3d2a4f41a5f6f6d7701",
"name": "Executive Overview",
"owner_id": "65dc6a52a2f7156eb2576f10",
"owner": {
"_id": "65dc6a52a2f7156eb2576f10",
"full_name": "Product Lead",
"email": "lead@company.com",
"username": "lead"
},
"share_with": "selected-users",
"is_owner": true,
"is_editable": true,
"widgets": [
{
"_id": "65e1f5f8a4f41a5f6f6d7703",
"widget_type": "analytics",
"apps": ["6991c75b024cb89cdc04efd2"],
"dashData": {
"isValid": true,
"data": {
"6991c75b024cb89cdc04efd2": {
"t": 2145
}
}
}
}
],
"apps": [
{
"_id": "6991c75b024cb89cdc04efd2",
"name": "Production App",
"has_image": false
}
]
}

Response Fields

FieldTypeDescription
_idStringDashboard ID.
nameStringDashboard name.
owner_idStringOwner member ID.
ownerObjectOwner profile details.
is_ownerBooleantrue for owner/global admin.
is_editableBooleantrue when user has edit access to dashboard.
share_withStringSharing mode (none, selected-users, all-users).
widgetsArrayDashboard widget array with computed data.
appsArrayApp summaries referenced by dashboard widgets.
errorBooleanPresent in access-denied branch.
dashboard_access_deniedBooleantrue when user cannot view dashboard.

Error Responses

  • 401
{
"result": "Invalid parameter: dashboard_id"
}
  • 404
{
"result": "Dashboard does not exist"
}
  • 401
{
"result": "Error while fetching dashboard widget data."
}
  • 200 (no access)
{
"error": true,
"dashboard_access_denied": true
}

Behavior

Behavior Modes

ModeTriggerProcessing PathResponse Shape
Full dashboard readDashboard exists and user has view accessResolves view/edit access flags, fetches owner info, fetches widgets/apps, enriches widget data.Raw dashboard object
Access deniedUser fails view access checkStops before widget data processing.Raw object with error and dashboard_access_denied

Impact on Other Data

  • Read-only endpoint; no writes.

Operational Considerations

  • Widget data loading runs across all dashboard widgets. Dashboards with many heavy widgets can have longer response times.
  • Sharing detail fields are hidden for non-owner and non-global-admin users.
Implementation details

Configuration Impact

SettingDefaultAffectsUser-visible impact
dashboards.sharing_statustrueDashboard sharing modelControls whether dashboards can be shared broadly (all-users / selected sharing). This changes who can access a dashboard in read flows.

Database Collections

CollectionUsed forData touched by this endpoint
countly.dashboardsDashboard lookup and access contextReads one dashboard by _id.
countly.widgetsWidget metadata and processing inputReads widgets linked to the dashboard.
countly.appsApp summary enrichmentReads app metadata referenced by widgets.
countly.membersAuthentication, owner enrichment, and shared-user enrichmentReads current member context for access checks, owner profile details, and shared user details.