Skip to main content

Dashboards - Delete

Endpoint

/i/dashboards/delete

Overview

Deletes a dashboard and all widgets linked from that dashboard. Non-global-admin users can only delete dashboards they own.

Authentication

Countly API supports three authentication methods:

  1. API key query parameter: api_key=YOUR_API_KEY
  2. Auth token query parameter: auth_token=YOUR_AUTH_TOKEN
  3. Auth token header: countly-token: YOUR_AUTH_TOKEN

Permissions

No separate feature permission flag is checked. Access is enforced by:

  • dashboard visibility check,
  • owner-only delete rule for non-global-admin users.

Request Parameters

ParameterTypeRequiredDescription
dashboard_idStringYesDashboard ID (24-char ObjectId string).
api_keyStringConditionalRequired if auth_token is not provided.
auth_tokenStringConditionalRequired if api_key is not provided.

Configuration Impact

SettingDefaultAffectsUser-visible impact
dashboards.sharing_statustrueSharing modelInfluences whether shared dashboards can exist broadly. This can indirectly affect which users can reach delete checks for a given dashboard.

Response

Success Response

{
"acknowledged": true,
"deletedCount": 1
}

Response Fields

FieldTypeDescription
acknowledgedBooleanDatabase delete operation acknowledgment.
deletedCountNumberNumber of dashboards deleted.
errorBooleanPresent in access-denied branch.
dashboard_access_deniedBooleantrue when user cannot view dashboard.

Error Responses

  • 400
{
"result": "Invalid parameter: dashboard_id"
}
  • 400
{
"result": "Dashboard with the given id doesn't exist"
}
  • 404
{
"result": "Dashboard not found"
}
  • 500
{
"result": "Failed to delete dashboard"
}
  • 500
{
"result": "An error occurred while deleting the dashboard"
}
  • 200 (no access)
{
"error": true,
"dashboard_access_denied": true
}

Behavior/Processing

Behavior Modes

ModeTriggerProcessing PathResponse Shape
Delete successDashboard exists and user passes access/ownership checksDeletes all linked widgets first, then deletes dashboard.Raw object with acknowledged and deletedCount
View deniedUser fails dashboard view checkStops before delete.Raw object with error and dashboard_access_denied
Not ownerNon-admin user targeting another user's dashboardOwner-filtered lookup fails.Wrapped result message Dashboard not found

Impact on Other Data

  • Removes linked widget documents from countly.widgets.
  • Removes one dashboard document from countly.dashboards.
  • Dispatches widget deletion events for each removed widget.

Audit & System Logs

ActionTriggerPayload
dashboard_deletedAfter successful dashboard deletionDeleted dashboard document

Database Collections

CollectionUsed forData touched by this endpoint
countly.membersAuthentication and ownership checksReads current member record to enforce owner/global-admin delete constraints.
countly.dashboardsDashboard validation and deleteReads dashboard for checks; deletes target dashboard.
countly.widgetsCascade cleanupDeletes widget documents referenced by dashboard.
countly.systemlogsAudit trailWrites dashboard_deleted entry.

Examples

Delete own dashboard

/i/dashboards/delete?
dashboard_id=65e1f3d2a4f41a5f6f6d7701

Operational Considerations

  • Delete flow performs per-widget deletion before dashboard removal, so dashboards with many widgets can take longer to complete.
  • Widget-dependent listeners receive delete events for every removed widget.

Limitations

  • Non-global-admin users cannot delete dashboards they do not own, even if they have shared access.

Last Updated

2026-02-17