Dashboards
For instructions on how to authenticate to use this endpoint, see API overview.
Endpoints
GET | |
GET | |
POST | |
POST | |
POST | |
PATCH | |
POST | |
POST | |
POST | |
GET |
Retrieve dashboards run widgets
Required API key scopes
dashboard:readPath parameters
- idinteger
Query parameters
- formatstringOne of:
"json""txt" - tile_idsstring
Response
Example request
GET /api /projects /:project_id /dashboards /:id /run_widgetsExample response
Status 200
Retrieve dashboards stream tiles
Stream dashboard metadata and tiles via Server-Sent Events. Sends metadata first, then tiles as they are rendered.
Path parameters
- idinteger
Query parameters
- filters_overridestring
- formatstringOne of:
"json""txt" - layoutSizestringOne of:
"sm""xs" - variables_overridestring
Example request
GET /api /projects /:project_id /dashboards /:id /stream_tilesExample response
Status 200 No response body
Create dashboards subscribe nudge
Send the requesting user an in-app notification suggesting they subscribe to this dashboard. Deduplicated server-side: at most one notification per user and dashboard, ever, so repeat calls return 200 with created=false.
Required API key scopes
dashboard:writePath parameters
- idinteger
Query parameters
- formatstringOne of:
"json""txt"
Response
Example request
POST /api /projects /:project_id /dashboards /:id /subscribe_nudgeExample response
Status 200
Status 201
Create dashboards update text tile
Update the markdown body, layout, or color of an existing text tile on a dashboard.
Required API key scopes
dashboard:writePath parameters
- idinteger
Query parameters
- formatstringOne of:
"json""txt"
Request parameters
- tile_idinteger
- bodystring
- layouts
- colorstringnull
Response
Example request
POST /api /projects /:project_id /dashboards /:id /update_text_tileExample response
Status 200
Create dashboards widgets batch
Add multiple widget tiles to a dashboard in one atomic request.
Required API key scopes
dashboard:writePath parameters
- idinteger
Query parameters
- formatstringOne of:
"json""txt"
Request parameters
- widgetsarray
Response
Example request
POST /api /projects /:project_id /dashboards /:id /widgets /batchExample response
Status 201
Update dashboards update widgets
Update the settings of existing widgets in place, atomically — config, name, and description.
Each entry targets a widget by its tile_id and reuses the same write path as the dashboard PATCH endpoint. The widget_type is immutable. This edits widget settings only (config, name, description); tile placement (layouts, show_description) is a dashboard concern — use the dashboard PATCH endpoint or reorder_tiles for that. All updates succeed or fail together. To add new widgets, use the widgets/batch POST endpoint; to remove one, use delete_tile.
Required API key scopes
dashboard:writePath parameters
- idinteger
Query parameters
- formatstringOne of:
"json""txt"
Request parameters
- widgetsarray
Response
Example request
PATCH /api /projects /:project_id /dashboards /:id /widgets /batch_updateExample response
Status 200
Create dashboards bulk update tags
Bulk update tags on multiple objects.
PAT access: this action has no required_scopes= on the decorator —
inheriting viewsets must add "bulk_update_tags" to their
scope_object_write_actions list to accept personal API keys.
Without that opt-in, APIScopePermission rejects PAT requests with
"This action does not support personal API key access". Done per-viewset
so granting <scope>:write for one resource doesn't leak access to
sibling resources that share this mixin.
Accepts:
- {"ids": [...], "action": "add"|"remove"|"set", "tags": ["tag1", "tag2"]}
Actions:
- "add": Add tags to existing tags on each object
- "remove": Remove specific tags from each object
- "set": Replace all tags on each object with the provided list
Query parameters
- formatstringOne of:
"json""txt"
Request parameters
- idsarray
- action
- tagsarray
Response
Example request
POST /api /projects /:project_id /dashboards /bulk_update_tagsExample response
Status 200
Create dashboards create from template json
Query parameters
- formatstringOne of:
"json""txt"
Request parameters
- namestringnull
- descriptionstring
- pinnedboolean
- last_accessed_atstringnull
- deletedboolean
- breakdown_colors
- data_color_theme_idintegernull
- tagsarray
- restriction_level
- last_refreshstringnull
- quick_filter_idsarraynull
- use_templatestring
- use_dashboardintegernull
- delete_insightsbooleanDefault:
false - _create_in_folderstring
Example request
POST /api /projects /:project_id /dashboards /create_from_template_jsonExample response
Status 200 No response body
Create dashboards create unlisted dashboard
Creates an unlisted dashboard from template by tag. Enforces uniqueness (one per tag per team). Returns 409 if unlisted dashboard with this tag already exists.
Query parameters
- formatstringOne of:
"json""txt"
Request parameters
- namestringnull
- descriptionstring
- pinnedboolean
- last_accessed_atstringnull
- deletedboolean
- breakdown_colors
- data_color_theme_idintegernull
- tagsarray
- restriction_level
- last_refreshstringnull
- quick_filter_idsarraynull
- use_templatestring
- use_dashboardintegernull
- delete_insightsbooleanDefault:
false - _create_in_folderstring
Example request
POST /api /projects /:project_id /dashboards /create_unlisted_dashboardExample response
Status 200 No response body
Retrieve dashboards widget catalog
List registered dashboard widget types and per-type config_schema documentation for agents.
Required API key scopes
dashboard:readQuery parameters
- formatstringOne of:
"json""txt"
Response
Example request
GET /api /projects /:project_id /dashboards /widget_catalog