Dashboard
/api/dashboard endpoints.
DELETE /api/dashboard/:dashboard-id/public_link
Delete the publicly-accessible link to this Dashboard.
PARAMS:
dashboard-id
value must be an integer greater than zero.
DELETE /api/dashboard/:id
Delete a Dashboard.
This will remove also any questions/models/segments/metrics that use this database.
PARAMS:
id
value must be an integer greater than zero.
GET /api/dashboard/
Get Dashboards
. With filter option f
(default all
), restrict results as follows:
all
- Return all Dashboards.mine
- Return Dashboards created by the current user.archived
- Return Dashboards that have been archived. (By default, these are excluded.).
PARAMS:
f
value may be nil, or if non-nil, value must be one of:all
,archived
,mine
.
GET /api/dashboard/:dashboard-id/dashcard/:dashcard-id/execute
Fetches the values for filling in execution parameters. Pass PK parameters and values to select.
PARAMS:
-
dashboard-id
value must be an integer greater than zero. -
dashcard-id
value must be an integer greater than zero. -
parameters
value must be a valid JSON string.
GET /api/dashboard/:id
Get Dashboard with ID.
PARAMS:
id
value must be an integer greater than zero.
GET /api/dashboard/:id/params/:param-key/search/:query
Fetch possible values of the parameter whose ID is :param-key
that contain :query
. Optionally restrict
these values by passing query parameters like other-parameter=value
e.g.
;; fetch values for Dashboard 1 parameter 'abc' that contain 'Cam' and are possible when parameter 'def' is set
;; to 100
GET /api/dashboard/1/params/abc/search/Cam?def=100
Currently limited to first 1000 results.
PARAMS:
-
id
value must be an integer greater than zero. -
param-key
-
query
-
query-params
GET /api/dashboard/:id/params/:param-key/values
Fetch possible values of the parameter whose ID is :param-key
. If the values come directly from a query, optionally
restrict these values by passing query parameters like other-parameter=value
e.g.
;; fetch values for Dashboard 1 parameter 'abc' that are possible when parameter 'def' is set to 100
GET /api/dashboard/1/params/abc/values?def=100.
PARAMS:
-
id
value must be an integer greater than zero. -
param-key
-
query-params
GET /api/dashboard/:id/related
Return related entities.
PARAMS:
id
value must be an integer greater than zero.
GET /api/dashboard/:id/revisions
Fetch Revisions
for Dashboard with ID.
PARAMS:
id
value must be an integer greater than zero.
GET /api/dashboard/embeddable
Fetch a list of Dashboards where enable_embedding
is true
. The dashboards can be embedded using the embedding
endpoints and a signed JWT.
GET /api/dashboard/params/valid-filter-fields
Utility endpoint for powering Dashboard UI. Given some set of filtered
Field IDs (presumably Fields used in
parameters) and a set of filtering
Field IDs that will be used to restrict values of filtered
Fields, for each
filtered
Field ID return the subset of filtering
Field IDs that would actually be used in a chain filter query
with these Fields.
e.g. in a chain filter query like
GET /api/dashboard/10/params/PARAM_1/values?PARAM_2=100
Assume PARAM_1
maps to Field 1 and PARAM_2
maps to Fields 2 and 3. The underlying MBQL query may or may not
filter against Fields 2 and 3, depending on whether an FK relationship that lets us create a join against Field 1
can be found. You can use this endpoint to determine which of those Fields is actually used:
GET /api/dashboard/params/valid-filter-fields?filtered=1&filtering=2&filtering=3
;; ->
{1 [2 3]}
Results are returned as a map of
`filtered` Field ID -> subset of `filtering` Field IDs that would be used in chain filter query.
PARAMS:
-
filtered
value must satisfy one of the following requirements: 1) value must be a valid integer greater than zero. 2) value must be an array. Each value must be a valid integer greater than zero. The array cannot be empty. -
filtering
value may be nil, or if non-nil, value must satisfy one of the following requirements: 1) value must be a valid integer greater than zero. 2) value must be an array. Each value must be a valid integer greater than zero. The array cannot be empty.
GET /api/dashboard/public
Fetch a list of Dashboards with public UUIDs. These dashboards are publicly-accessible if public sharing is enabled.
POST /api/dashboard/
Create a new Dashboard.
PARAMS:
-
name
value must be a non-blank string. -
description
value may be nil, or if non-nil, value must be a string. -
parameters
value may be nil, or if non-nil, value must be an array. Each parameter must be a map with :id and :type keys -
cache_ttl
value may be nil, or if non-nil, value must be an integer greater than zero. -
collection_id
value may be nil, or if non-nil, value must be an integer greater than zero. -
collection_position
value may be nil, or if non-nil, value must be an integer greater than zero. -
_dashboard
POST /api/dashboard/:dashboard-id/dashcard/:dashcard-id/card/:card-id/query
Run the query associated with a Saved Question (Card
) in the context of a Dashboard
that includes it.
PARAMS:
-
dashboard-id
-
dashcard-id
-
card-id
-
parameters
value may be nil, or if non-nil, value must be an array. Each value must be a parameter map with an ‘id’ key
POST /api/dashboard/:dashboard-id/dashcard/:dashcard-id/card/:card-id/query/:export-format
Run the query associated with a Saved Question (Card
) in the context of a Dashboard
that includes it, and return
its results as a file in the specified format.
parameters
should be passed as query parameter encoded as a serialized JSON string (this is because this endpoint
is normally used to power ‘Download Results’ buttons that use HTML form
actions).
PARAMS:
-
dashboard-id
-
dashcard-id
-
card-id
-
export-format
value must be one of:api
,csv
,json
,xlsx
. -
parameters
value may be nil, or if non-nil, value must be a valid JSON string. -
request-parameters
POST /api/dashboard/:dashboard-id/dashcard/:dashcard-id/execute
Execute the associated Action in the context of a Dashboard
and DashboardCard
that includes it.
parameters
should be the mapped dashboard parameters with values.
extra_parameters
should be the extra, user entered parameter values.
PARAMS:
-
dashboard-id
value must be an integer greater than zero. -
dashcard-id
value must be an integer greater than zero. -
parameters
value may be nil, or if non-nil, value must be a map with schema: ( value must be a map with schema: ( p? : pred-name : ) : value must be a map with schema: ( _ : ) ) -
_body
POST /api/dashboard/:dashboard-id/public_link
Generate publicly-accessible links for this Dashboard. Returns UUID to be used in public links. (If this Dashboard has already been shared, it will return the existing public link rather than creating a new one.) Public sharing must be enabled.
You must be a superuser to do this.
PARAMS:
dashboard-id
value must be an integer greater than zero.
POST /api/dashboard/:from-dashboard-id/copy
Copy a Dashboard.
PARAMS:
-
from-dashboard-id
nullable value must be an integer greater than zero. -
name
nullable value must be a non-blank string. -
description
nullable string -
collection_id
nullable value must be an integer greater than zero. -
collection_position
nullable value must be an integer greater than zero. -
is_deep_copy
nullable boolean -
_dashboard
POST /api/dashboard/:id/revert
Revert a Dashboard to a prior Revision
.
PARAMS:
-
id
value must be an integer greater than zero. -
revision_id
value must be an integer greater than zero.
POST /api/dashboard/pivot/:dashboard-id/dashcard/:dashcard-id/card/:card-id/query
Run a pivot table query for a specific DashCard.
PARAMS:
-
dashboard-id
-
dashcard-id
-
card-id
-
parameters
value may be nil, or if non-nil, value must be an array. Each value must be a parameter map with an ‘id’ key
POST /api/dashboard/save
Save a denormalized description of dashboard.
PARAMS:
dashboard
POST /api/dashboard/save/collection/:parent-collection-id
Save a denormalized description of dashboard into collection with ID :parent-collection-id
.
PARAMS:
-
parent-collection-id
value must be an integer greater than zero. -
dashboard
PUT /api/dashboard/:id
Update a Dashboard.
Usually, you just need write permissions for this Dashboard to do this (which means you have appropriate
permissions for the Cards belonging to this Dashboard), but to change the value of enable_embedding
you must be a
superuser.
PARAMS:
-
parameters
value may be nil, or if non-nil, value must be an array. Each parameter must be a map with :id and :type keys -
points_of_interest
value may be nil, or if non-nil, value must be a string. -
description
value may be nil, or if non-nil, value must be a string. -
archived
value may be nil, or if non-nil, value must be a boolean. -
collection_position
value may be nil, or if non-nil, value must be an integer greater than zero. -
show_in_getting_started
value may be nil, or if non-nil, value must be a boolean. -
enable_embedding
value may be nil, or if non-nil, value must be a boolean. -
collection_id
value may be nil, or if non-nil, value must be an integer greater than zero. -
dash-updates
-
name
value may be nil, or if non-nil, value must be a non-blank string. -
caveats
value may be nil, or if non-nil, value must be a string. -
embedding_params
value may be nil, or if non-nil, value must be a valid embedding params map. -
cache_ttl
value may be nil, or if non-nil, value must be an integer greater than zero. -
id
-
position
value may be nil, or if non-nil, value must be an integer greater than zero.
PUT /api/dashboard/:id/cards
Update Cards
and Tabs
on a Dashboard. Request body should have the form:
{:cards [{:id ... ; DashboardCard ID
:size_x ...
:size_y ...
:row ...
:col ...
:parameter_mappings ...
:series [{:id 123
...}]}
...]
:ordered_tabs [{:id ... ; DashboardTab ID
:name ...}]}.
PARAMS:
-
id
value must be an integer greater than zero. -
cards
value must be seq of maps in which ids are unique -
ordered_tabs
nullable value must be seq of maps in which ids are unique