Create Metrics using API
You can create and manage metrics through the workspace entity API interface. The entity API interface for metrics uses the following endpoints:
/api/v1/entities/workspaces/{workspace-id}/metrics
View existing metrics in the workspace, or add new metrics to the workspace./api/v1/entities/workspaces/{workspace-id}/metrics/{metric-id}
View a specific metric, edit a metric, or delete a metric in the workspace.
Where:
{workspace-id}
Specifies the ID of the workspace to access.{metric-id}
Specifies the ID of the metric to access.
View Metrics with the Entity API Interface
Metrics can be viewed by submitting the appropriate GET request:
- To view all of the metrics in a workspace, submit a GET request to
/api/v1/entities/workspaces/{workspace-id}/metrics
. - To view a specific metric in the workspace, submit a GET request to
/api/v1/entities/workspaces/{workspace-id}/metrics/{metric-id}
.
Create a Metric with the Entity API Interface
To create a new metric, submit a POST request to /api/v1/entities/workspaces/{workspace-id}/metrics
with the metric as the body payload.
Body Syntax for Metrics in the Entity API Interface
The payload for creating a new metric has the following syntax:
{
"data": {
"attributes": {
"title": "<metric_title>",
"description":"<metric_description>",
"content": {
"format": "<number_format>",
"maql": "<maql_expression>"
}
},
"id": "<metric_id>",
"type": "metric"
}
}
Where:
<metric_title>
Specifies the name of the metric. For example,Order Amount
.<metric_description>
Specifies the description of the metric. For example,Sum of order prices
.<number_format>
Specifies the display format for the numbers in visualizations that use this metric. For example,$#,##0
. For more information number formats, see Format Numbers.<maql_expression>
Specifies the MAQL expression that comprises the metric. For example,SELECT SUM({fact/order_lines.price}*{fact/order_lines.quantity})
.<metric_id>
Specifies the unique ID that represents the metric. This value is used when making API calls to the metric endpoint. For example,order_amount
.
Example: Create the Order Amount Metric
The following example creates a metric that is the sum price of all the orders that the metric is applied against.
{
"data": {
"attributes": {
"title": "Order Amount",
"description":"Sum of order prices",
"content": {
"format": "$#,##0",
"maql": "SELECT SUM({fact/order_lines.price}*{fact/order_lines.quantity})"
}
},
"id": "order_amount",
"type": "metric"
}
}
Update a Metric with the Entity API Interface
To edit a metric, submit a PUT request with the modified metric body data in the payload to /api/v1/entities/workspaces/{workspace-id}/metrics/{metric-id}
where {metric-id}
is the ID of the metric to update.
Consider the following points before updating a metric:
- It is not possible to update the metric ID through the entity API interface. To update the ID for a metric, use the Metric Editor or the declarative API interface.
- If you update the MAQL expression or format for a metric, other metrics, dashboards, and visualizations that use the metric will also use the updated expression or format.
Delete a Metric with the Entity API Interface
To delete a metric, submit a DELETE request to /api/v1/entities/workspaces/{workspace-id}/metrics/{metric-id}
where {metric-id}
is the ID of the metric to delete.
Consider the following point before deleting a metric:
- If you delete a metric, other metrics, dashboards, and visualizations that use the metric will become inaccessible.