# POST /report-dashboards/:id/cards

**Resource:** [Reports](./reports.md)  
**Scopes:** `opportunities:read`  
**Write operation:** yes

Add a chart or table card to a dashboard. Use display_config.columns to control which columns appear in email digest renders for table/drilldown cards.

## Parameters

| Name | In | Type | Required | Description |
|------|----|------|----------|-------------|
| `id` | path | uuid | yes | Dashboard UUID. |
| `title` | body | string | yes | Card title. |
| `visualization_type` | body | string | no | Chart type: stat, bar, horizontal_bar, line, area, donut, pie, table, composed. |
| `query_spec` | body | object | no | Query specification (same format as POST /reports/query). For drilldown table cards set mode:"drilldown" and optionally dimensions[] to control columns. order_by accepts an array of { field, direction } objects for multi-key sorting; "sort" is accepted as alias. |
| `display_config` | body | object | no | Display overrides for email digest rendering. display_config.columns: array of column key strings or { key, label? } objects (up to 8 columns). When set, overrides dimensions[] as the column source for table cards. Use to show different columns in the email vs the underlying data query. |
| `size` | body | string | no | Card size: sm, md, lg. |
| `position` | body | number | no | Zero-based position in the dashboard. |

---
Base URL: `https://api.trustpager.com/functions/v1/api/v1` — Auth: `Authorization: Bearer YOUR_API_KEY`