Documentation Index
Fetch the complete documentation index at: https://mintlify.com/metabase/metabase/llms.txt
Use this file to discover all available pages before exploring further.
The Dashboard API manages dashboards in Metabase. Dashboards are collections of cards (questions) arranged with optional parameters for filtering. This API includes 20 endpoints.
List dashboards
Get all dashboards you have access to.
curl -X GET \
https://your-metabase.com/api/dashboard \
-H 'X-Metabase-Session: SESSION_TOKEN'
Response
[
{
"id": 1,
"name": "Sales Overview",
"description": "Key sales metrics",
"collection_id": 5,
"created_at": "2024-01-15T10:00:00Z",
"updated_at": "2024-03-01T14:30:00Z"
}
]
Get dashboard
Get details about a specific dashboard.
curl -X GET \
https://your-metabase.com/api/dashboard/1 \
-H 'X-Metabase-Session: SESSION_TOKEN'
Parameters
Response
Array of cards on the dashboard with their positions and sizes
Dashboard-level parameters for filtering
Dashboard tabs if using tabbed layout
Collection containing this dashboard
Create dashboard
Create a new dashboard.
curl -X POST \
https://your-metabase.com/api/dashboard \
-H 'Content-Type: application/json' \
-H 'X-Metabase-Session: SESSION_TOKEN' \
-d '{
"name": "New Dashboard",
"description": "Dashboard description",
"collection_id": 5
}'
Request body
Collection to save the dashboard in
Dashboard parameters for filtering cards
Update dashboard
Update an existing dashboard.
curl -X PUT \
https://your-metabase.com/api/dashboard/1 \
-H 'Content-Type: application/json' \
-H 'X-Metabase-Session: SESSION_TOKEN' \
-d '{
"name": "Updated Dashboard Name",
"description": "Updated description"
}'
Parameters
Request body
All fields are optional.
Updated dashboard parameters
Updated cards, positions, and sizes
Archive or unarchive the dashboard
Delete dashboard
Permanently delete a dashboard.
DELETE /api/dashboard/{id}
curl -X DELETE \
https://your-metabase.com/api/dashboard/1 \
-H 'X-Metabase-Session: SESSION_TOKEN'
This permanently deletes the dashboard. To soft delete, use PUT /api/dashboard/{id} with "archived": true.
Add card to dashboard
Add a card to a dashboard.
POST /api/dashboard/{dashboard-id}/cards
curl -X POST \
https://your-metabase.com/api/dashboard/1/cards \
-H 'Content-Type: application/json' \
-H 'X-Metabase-Session: SESSION_TOKEN' \
-d '{
"cardId": 5,
"row": 0,
"col": 0,
"sizeX": 4,
"sizeY": 4
}'
Request body
Column position (0-based, max 12)
Width in grid units (1-12)
How dashboard parameters map to card parameters
Card-specific visualization overrides
Update dashboard card
Update position, size, or settings for a card on a dashboard.
PUT /api/dashboard/{dashboard-id}/cards
curl -X PUT \
https://your-metabase.com/api/dashboard/1/cards \
-H 'Content-Type: application/json' \
-H 'X-Metabase-Session: SESSION_TOKEN' \
-d '{
"cards": [
{
"id": 10,
"row": 2,
"col": 0,
"sizeX": 6,
"sizeY": 4
}
]
}'
Remove card from dashboard
Remove a card from a dashboard.
DELETE /api/dashboard/{dashboard-id}/cards
curl -X DELETE \
https://your-metabase.com/api/dashboard/1/cards \
-H 'Content-Type: application/json' \
-H 'X-Metabase-Session: SESSION_TOKEN' \
-d '{
"dashcardId": 10
}'
Execute dashboard card query
Run the query for a specific card on a dashboard.
POST /api/dashboard/{dashboard-id}/dashcard/{dashcard-id}/card/{card-id}/query
curl -X POST \
https://your-metabase.com/api/dashboard/1/dashcard/10/card/5/query \
-H 'Content-Type: application/json' \
-H 'X-Metabase-Session: SESSION_TOKEN' \
-d '{
"parameters": []
}'
Parameters
Request body
Dashboard parameter values to apply
Skip cached results (default: false)
Download dashboard card results
Execute a dashboard card query and download results.
POST /api/dashboard/{dashboard-id}/dashcard/{dashcard-id}/card/{card-id}/query/{export-format}
curl -X POST \
https://your-metabase.com/api/dashboard/1/dashcard/10/card/5/query/csv \
-H 'Content-Type: application/json' \
-H 'X-Metabase-Session: SESSION_TOKEN' \
-d '{
"parameters": [],
"format_rows": true
}' \
-o results.csv
Parameters
Export format: csv, xlsx, or json
Public sharing
Create public link
Generate a public sharing link for a dashboard.
POST /api/dashboard/{dashboard-id}/public_link
curl -X POST \
https://your-metabase.com/api/dashboard/1/public_link \
-H 'X-Metabase-Session: SESSION_TOKEN'
Requires public sharing to be enabled and admin permissions.
Response
{
"uuid": "110c3d96-ff3a-4ec6-9a82-7c2d5e073fa2"
}
The dashboard can be accessed at /public/dashboard/{uuid}.
Delete public link
Remove the public sharing link.
DELETE /api/dashboard/{dashboard-id}/public_link
curl -X DELETE \
https://your-metabase.com/api/dashboard/1/public_link \
-H 'X-Metabase-Session: SESSION_TOKEN'
Dashboard subscriptions
Create subscription
Create an email or Slack subscription for a dashboard.
POST /api/dashboard/{dashboard-id}/subscriptions
List subscriptions
Get all subscriptions for a dashboard.
GET /api/dashboard/{dashboard-id}/subscriptions
Save dashboard
Create a new dashboard from an existing one.
curl -X POST \
https://your-metabase.com/api/dashboard/save \
-H 'Content-Type: application/json' \
-H 'X-Metabase-Session: SESSION_TOKEN' \
-d '{
"name": "Saved Dashboard",
"description": "Description",
"dashcards": [],
"parameters": []
}'
List embeddable dashboards
Get all dashboards that can be embedded.
GET /api/dashboard/embeddable
curl -X GET \
https://your-metabase.com/api/dashboard/embeddable \
-H 'X-Metabase-Session: SESSION_TOKEN'