This article provides sample API calls for managing Metrics:
- 
/api/metric: Get all Metrics or a specified Metric available to User, validate, collect data, enable, update live chart, delete a Metric.
PREREQUISITES:
- Set up API access
- Verify that you have API access
- Obtain a token via a get token call since all API calls require a token
TABLE OF CONTENTS:
1. Access Admin > System > API Toolkit
2. Get All Metrics
The GET request to /api/metric returns all Metrics data available to the User.
- Item: metric
- Method: GET
- Enter an API Token
- [Run request]
Example Response
{
  "metrics": [
    {
      "id": 152742,
      "measurement_interval": 3,
      "values_are_additive_across_time_periods": "Yes",
      "name": "Fruit Sales Italy In Store",
      "description": "Fruit Sales Italy In Store Metric",
      "category": 123,
      "display_mask": 13,
      "display_mask_example": "1,234.1K",
      "unit_of_measure": "avocados",
      "data_values": "integer",
      "for_this_metric": "Y",
      "data_source": "dataset",
      "data_collection_trigger": 1,
      "dimension": 0,
      "include_only_new_report_data": "N",
      "dataset_id": 21418,
      "dataset_filter_id": 0,
      "primary_segment_value_ds_column": 9008,
      "secondary_segment_value_ds_column": 9008,
      "measurement_date_ds_column": 9009,
      "measurement_value_ds_column": 9010,
      "ds_aggregate_function": "SUM",
      "ds_incremental_load_ind": "all_data",
      "stoplight_calculation_method": "fixed range",
      "metric_stoplight_color_for_high_values": "#077E45",
      "metric_stoplight_color_for_low_values": "#AC2B2B",
      "stoplight_compare_value_to": 1,
      "compare_value_period": 0,
      "stoplight_range_start": 123,
      "stoplight_range_end": 456,
      "metric_compare_value_range_method": "fixed",
      "metric_stoplight_range_start": 0,
      "metric_stoplight_range_end": 0,
      "metric_compare_value_range_percent": 0,
      "chart_type": "lines",
      "use_different_color_bars_for_positive_vs_negative_values": "the same color",
      "moving_average_interval": "30 day",
      "max_time_before_expired_period": 2,
      "max_time_before_expired_unit": "day",
      "show_minimum_ever_line": "N",
      "chart_layout": 1,
      "do_not_chart_values_smaller_than": 0,
      "do_not_chart_values_greater_than": 0,
      "statistical_view_standard_deviations": 2,
      "can_be_viewed_without_login": "public",
      "batch_load_data_going_back_no_more_than": 0,
      "project_value_of_partial_days": "No",
      "project_values_of_future_days": "No",
      "project_future_day_using": "linear_regression",
      "metric_future_projection_reference_metric_id": 152742,
      "tile_variance_compare_to": 3,
      "baseline_trend_to_avg_of_prior": 1,
      "extend_target_interval": "N",
      "target_view_extend_scope": "current",
      "target_view_extend_measurement_interval": 4,
      "include_metric_data_table_in_e_mail_digests": "No",
      "suppress_alerts_on_partial_period_data": "Yes",
      "business_owner_id": 88,
      "technical_owner_id": 118
    }
   ]
}Fields Description
This description covers only the fields that contain information useful for Portal Page development, the fields that are not covered are for internal use only.
| Field Name | Value Type | Description | 
|---|---|---|
| id | integer | The ID of the Metric. | 
| measurement_interval | integer | The ID of the Measurement Interval. | 
| values_are_additive_across_time_periods | string | Whether or not daily values can be aggregated into weekly and monthly totals. Takes value “Y” if values are additive, “N” if not. | 
| name | string | The name of the Metric. | 
| description | string | The description of the Metric. | 
| category | integer | The ID of the Metric’s category. | 
| display_mask | integer | The ID of the applied display mask. | 
| display_mask_example | string | An example of the display mask format. | 
| unit_of_measure | string | Metric's value display units. | 
| data_values | string | Defines whether data values are “integer” or “decimal”. | 
| for_this_metric | string | Defines the stoplight expectation for this
metric. Takes value “Y” if higher values are better, “N” if lower
values are better, “RANGE” if measurements should fall within a
certain range, and “N/A” if there is no expectation for what is
better. | 
| data_source | string | The data source of the Metric. | 
| data_collection_trigger | integer | The ID of the associated Trigger. | 
| dimension | integer | The ID of the Metric's Dimension. Takes value "0" if not dimensioned. | 
| data_fetch_command | string | The command used to fetch data for the Metric. | 
| include_only_new_report_data | string | Whether Metric values are calculated for new data only ("Y"), or for all data ("N"). | 
| dataset_id | integer | The ID of the Dataset from which the Metric is populated. | 
| dataset_filter_id | integer | The ID of the Dataset View from which the Metric is populated. | 
| ds_aggregate_function | string | The aggregation function applied to Dataset values. | 
| business_owner_id | integer | The ID of the Metric’s Business Owner. | 
| data_steward_id | integer | The ID of the Metric’s Data Steward. | 
| technical_owner_id | integer | The ID of the Metric’s Technical Owner. | 
3. Get Specified Metric Info
- The GET request to /api/metric/id/<id>returns the specified Metric's data.
- Item: metric
- Method: GET
- 
ID: Enter the ID of the Metric- Metric ID can be determined in the web browser URL of the Metric Editor. For example:
 
 https://<hostname>/editor/element/metric/152742- Enter an API Token
- 
[Run request]- See Example Response and Fields Description for details.
 
4. Update a Metric
4.1. Validate a Metric
The PUT request to /api/metric/id/<id> with body {"call": "validate", "last_measurement_time": "<time>"} validates the specified Metric.
- Item: metric
- Method: PUT
- ID: Enter the ID of the Metric
- Actions: Validate
- Select JSON request, specify the last_measurement_time
- Enter an API Token
- [Run request]
The PUT request to /api/metric/id/<id> with body {"call": "collect", "compute_metric_values_after": "<time>"} collects data for the specified Metric.
- Item: metric
- Method: PUT
- ID: Enter the ID of the Metric
- Actions: Collect Data
- Select JSON request, specify the compute_metric_values_after
- Enter an API Token
- [Run request]
The PUT request to /api/metric/id/<id> with body {"call": "enable"} enables the specified Metric.
- Item: metric
- Method: PUT
- ID: Enter the ID of the Metric
- Actions: Enable
- Enter an API Token
- [Run request]
4.4. Update Live Chart
The PUT request to /api/metric/id/<id> with body {"call": "generate"} updates the live chart for the specified Metric.
- Item: metric
- Method: PUT
- ID: Enter the ID of the Metric
- Actions: Update Live Chart
- Enter an API Token
- [Run request]
5. Delete Metric
The DELETE request to /api/metric/id/<id>  deletes the specified Metric.
- Item: metric
- Method: DELETE
- ID: Enter the ID of the Metric
- Enter an API Token
- [Run request]
