pradeep_singh
Honored Contributor III

Lakeview (AI/BI) dashboards GET endpoint doesn’t return an explicit owner field. Use the Workspace Permissions API to infer the owner from the ACLs.

import requests

dash = requests.get(f"{workspace_url}/api/2.0/lakeview/dashboards/{dashboard_id}",
                    headers=headers).json()
path = dash["path"]  # e.g., "/Users/alice@example.com/Folder/MyDash.lvdash.json"

st = requests.get(f"{workspace_url}/api/2.0/workspace/get-status",
                  params={"path": path}, headers=headers).json()
resource_id = st["resource_id"]

perms = requests.get(f"{workspace_url}/api/2.0/permissions/dashboards/{resource_id}",
                     headers=headers).json()

owner = None
for ace in perms.get("access_control_list", []):
    perms_list = ace.get("all_permissions", [])
    has_direct_manage = any(p.get("permission_level") == "CAN_MANAGE" and not p.get("inherited", False)
                            for p in perms_list)
    if has_direct_manage:
        # prefer user_name, but could be group_name or service_principal_name depending on who owns it
        owner = ace.get("user_name") or ace.get("group_name") or ace.get("service_principal_name")
        break

print("Owner:", owner)
Thank You
Pradeep Singh - https://www.linkedin.com/in/dbxdev