# View data dashboard details

Read the specified data dashboard and its data source and chart configuration.

```text
GET https://moi.matrixorigin.cn/newmoi/data-dashboards/{dashboard_id}
```

## Preparation before calling

Prepare a personal access token and target workspace ID that has access to the target workspace.

The example below uses:

- `$AI_STUDIO_API_KEY`: The actual personal access token, passed through the `X-API-Key` Header.
- `$WORKSPACE_ID`: Target workspace ID, passed through `X-Workspace-ID` Header.

- `$DASHBOARD_ID`: `dashboard_id` to use, specifying the target resource via the request path.

## Call example

```bash
curl -X GET "https://moi.matrixorigin.cn/newmoi/data-dashboards/$DASHBOARD_ID" \
  -H "X-API-Key: $AI_STUDIO_API_KEY" \
  -H "X-Workspace-ID: $WORKSPACE_ID"
```

## Path parameters

| Parameters | Type | Is it required | Description |
| --- | --- | --- | --- |
| `dashboard_id` | string | Yes | Data dashboard ID. |
## Successful response


When the query is successful, the data dashboard, data source, chart and alarm information are returned.

```json
{
  "code": 0,
  "data": {
    "ID": "0198ce73-3d20-7c12-9a11-1a2b3c4d5e6f",
    "Name": "销售概览",
    "Description": "按日查看销售数据",
    "CreatedByRoleID": "role-001",
    "CreatedAt": "2026-08-21T07:00:00Z",
    "UpdatedAt": "2026-08-21T07:00:00Z",
    "sources": [
      {
        "ID": "source-001",
        "DashboardID": "0198ce73-3d20-7c12-9a11-1a2b3c4d5e6f",
        "TableID": 1001,
        "DatabaseName": "analytics",
        "TableName": "daily_sales",
        "CreatedAt": "2026-08-21T07:00:00Z"
      }
    ],
    "charts": [],
    "alerts": [],
    "active_alert_count": 0
  }
}
```

The response fields are as follows.

| Field | Type | Description |
| --- | --- | --- |
| `data.ID` | string | Data dashboard ID. |
| `data.Name` | string | Data dashboard name. |
| `data.Description` | string | Data dashboard description. |
| `data.CreatedByRoleID` | string | The role ID used when creating the data dashboard. |
| `data.CreatedAt` | string | Creation time. |
| `data.UpdatedAt` | string | Update time. |
| `data.sources` | array | Data source list. |
| `data.sources[].ID` | string | Data source associated record ID. |
| `data.sources[].DashboardID` | string | Data dashboard ID. |
| `data.sources[].TableID` | integer | Data table ID. |
| `data.sources[].DatabaseName` | string | Database name. |
| `data.sources[].TableName` | string | Data table name. |
| `data.sources[].CreatedAt` | string | The creation time of the data source associated record. |
| `data.charts` | array | Chart list; returned in the details response. |
| `data.alerts` | array | Alarm record list. |
| `data.active_alert_count` | integer | The number of charts currently in alarm status. |

In this document, `[]` after a type denotes an array. In a field path, `[]` denotes each item in an array; for example, `data.sources[].ID` is the `ID` field of each item in the `data.sources` array.


## Error response

::::{div} mo-api-split
:::{div} mo-api-split-main
```{raw} html
<dl class="mo-api-fields">
<div class="mo-api-field"><dt><code>code</code><span class="mo-api-field__type">integer or string</span></dt><dd>Error code or status.</dd></div>
<div class="mo-api-field"><dt><code>message</code><span class="mo-api-field__type">string</span></dt><dd>Error message.</dd></div>
</dl>
```
:::
:::{div} mo-api-split-aside
```{raw} html
<p class="mo-api-example-label">Error response example</p>
```
```json
{
  "code": 3,
  "message": "not found",
  "details": {
    "domain": "moi-core.catalog.data_dashboard",
    "reason": "DATA_DASHBOARD_NOT_FOUND"
  }
}
```
:::
::::
