---
type: api
title: Get the SLO definitions
description: You must have the `read` privileges for the **SLOs** feature in the **Observability** section of the Kibana feature privileges.
url: https://www.elastic.co/elastic/docs-builder/docs/4371/api/doc/kibana/v9/operation/operation-getdefinitionsop
resource: https://www.elastic.co/elastic/docs-builder/docs/4371/api/doc/kibana/v9/operation/operation-getdefinitionsop
products:
  - Kibana
---

# Get the SLO definitions

- Server: `https://{kibana_url}`

## Paths

- `GET` `/s/{spaceId}/internal/observability/slos/_definitions`

- [Api key auth](/elastic/docs-builder/docs/4371/api/doc/kibana/v9/authentication#apikeyauth)
- [Basic auth](/elastic/docs-builder/docs/4371/api/doc/kibana/v9/authentication#basicauth)

#### Path Parameters

- `spaceId` (string)
  An identifier for the space. If `/s/` and the identifier are omitted from the path, the default space is used.

## Description

You must have the `read` privileges for the **SLOs** feature in the **Observability** section of the Kibana feature privileges.

## Query String Parameters

- `includeOutdatedOnly` (boolean)
  Indicates if the API returns only outdated SLO or all SLO definitions
- `includeHealth` (boolean)
  Indicates if the API returns SLO health data with definitions
- `tags` (string)
  Filters the SLOs by tag
- `search` (string)
  Filters the SLOs by name
- `page` (number)
  The page to use for pagination, must be greater or equal than 1
- `perPage` (integer · max: 1000 · default: 100)
  Number of SLOs returned by page

## Responses

#### `200`

Successful request

`application/json`

One of:
- **object**
  - `page` (number)
  - `perPage` (number)
  - `results` ([] object)
    - `budgetingMethod` (enum)
      The budgeting method to use when computing the rollup data.
      Values: `occurrences`, `timeslices`
    - `createdAt` (string)
      The creation date
    - `description` (string)
      The description of the SLO.
    - `enabled` (boolean)
      Indicate if the SLO is enabled
    - `groupBy` (union)
      optional group by field or fields to use to generate an SLO per distinct value
      One of: `string[]` or `string`
    - `id` (string)
      The identifier of the SLO.
    - `indicator` (union oneOf)
      - **SLOs_indicator_properties_custom_kql** (`type: sli.kql.custom`)
        Defines properties for a custom query indicator type
        - `params` (object)
          An object containing the indicator parameters.
          - `dataViewId` (string)
            The kibana data view id to use, primarily used to include data view runtime mappings. Make sure to save SLO again if you add/update run time fields to the data view and if those fields are being used in slo queries.
          - `filter` (union)
            Defines properties for a filter
            - **string**
              the KQL query to filter the documents with.
            - **{ filters, kqlQuery }**
              - `filters` ([] object)
                - `meta` ({})
                  Defines properties for a filter
                  - `alias` (string) — nullable
                  - `controlledBy` (string)
                  - `disabled` (boolean)
                  - `field` (string)
                  - `group` (string)
                  - `index` (string)
                  - `isMultiIndex` (boolean)
                  - `key` (string)
                  - `negate` (boolean)
                  - `params` (object)
                  - `type` (string)
                  - `value` (string)
                - `query` (object)
              - `kqlQuery` (string)
          - `good` (union)
            The KQL query used to define the good events.
            Same options as `filter` in `params`
          - `index` (string)
            The index or index pattern to use
          - `timestampField` (string)
            The timestamp field used in the source indice.
          - `total` (union)
            The KQL query used to define all events.
            Same options as `filter` in `params`
        - `type` (string)
          The type of indicator.
      - **SLOs_indicator_properties_apm_availability** (`type: sli.apm.transactionErrorRate`)
        Defines properties for the APM availability indicator type
        - `params` (object)
          An object containing the indicator parameters.
          - `environment` (string)
            The APM service environment or "*"
          - `filter` (string)
            KQL query used for filtering the data
          - `index` (string)
            The index used by APM metrics
          - `service` (string)
            The APM service name
          - `transactionName` (string)
            The APM transaction name or "*"
          - `transactionType` (string)
            The APM transaction type or "*"
        - `type` (string)
          The type of indicator.
      - **SLOs_indicator_properties_apm_latency** (`type: sli.apm.transactionDuration`)
        Defines properties for the APM latency indicator type
        - `params` (object)
          An object containing the indicator parameters.
          - `environment` (string)
            The APM service environment or "*"
          - `filter` (string)
            KQL query used for filtering the data
          - `index` (string)
            The index used by APM metrics
          - `service` (string)
            The APM service name
          - `threshold` (number)
            The latency threshold in milliseconds
          - `transactionName` (string)
            The APM transaction name or "*"
          - `transactionType` (string)
            The APM transaction type or "*"
        - `type` (string)
          The type of indicator.
      - **SLOs_indicator_properties_custom_metric** (`type: sli.metric.custom`)
        Defines properties for a custom metric indicator type
        - `params` (object)
          An object containing the indicator parameters.
          - `dataViewId` (string)
            The kibana data view id to use, primarily used to include data view runtime mappings. Make sure to save SLO again if you add/update run time fields to the data view and if those fields are being used in slo queries.
          - `filter` (string)
            the KQL query to filter the documents with.
          - `good` (object)
            An object defining the "good" metrics and equation
            - `equation` (string)
              The equation to calculate the "good" metric.
            - `metrics` ([] union oneOf)
              List of metrics with their name, aggregation type, and field.
              - **aggregation: sum**
                - `aggregation` (enum)
                  The aggregation type of the metric.
                  Values: `sum`
                - `field` (string)
                  The field of the metric.
                - `filter` (string)
                  The filter to apply to the metric.
                - `name` (string · pattern: ^[A-Z]$)
                  The name of the metric. Only valid options are A-Z
              - **aggregation: doc_count**
                - `aggregation` (enum)
                  The aggregation type of the metric.
                  Values: `doc_count`
                - `filter` (string)
                  The filter to apply to the metric.
                - `name` (string · pattern: ^[A-Z]$)
                  The name of the metric. Only valid options are A-Z
          - `index` (string)
            The index or index pattern to use
          - `timestampField` (string)
            The timestamp field used in the source indice.
          - `total` (object)
            An object defining the "total" metrics and equation
            - `equation` (string)
              The equation to calculate the "total" metric.
            - `metrics` ([] union oneOf)
              List of metrics with their name, aggregation type, and field.
              - **aggregation: sum**
                - `aggregation` (enum)
                  The aggregation type of the metric.
                  Values: `sum`
                - `field` (string)
                  The field of the metric.
                - `filter` (string)
                  The filter to apply to the metric.
                - `name` (string · pattern: ^[A-Z]$)
                  The name of the metric. Only valid options are A-Z
              - **aggregation: doc_count**
                - `aggregation` (enum)
                  The aggregation type of the metric.
                  Values: `doc_count`
                - `filter` (string)
                  The filter to apply to the metric.
                - `name` (string · pattern: ^[A-Z]$)
                  The name of the metric. Only valid options are A-Z
        - `type` (string)
          The type of indicator.
      - **SLOs_indicator_properties_histogram** (`type: sli.histogram.custom`)
        Defines properties for a histogram indicator type
        - `params` (object)
          An object containing the indicator parameters.
          - `dataViewId` (string)
            The kibana data view id to use, primarily used to include data view runtime mappings. Make sure to save SLO again if you add/update run time fields to the data view and if those fields are being used in slo queries.
          - `filter` (string)
            the KQL query to filter the documents with.
          - `good` (object)
            An object defining the "good" events
            - `aggregation` (enum)
              The type of aggregation to use.
              Values: `value_count`, `range`
            - `field` (string)
              The field use to aggregate the good events.
            - `filter` (string)
              The filter for good events.
            - `from` (number)
              The starting value of the range. Only required for "range" aggregations.
            - `to` (number)
              The ending value of the range. Only required for "range" aggregations.
          - `index` (string)
            The index or index pattern to use
          - `timestampField` (string)
            The timestamp field used in the source indice.
          - `total` (object)
            An object defining the "total" events
            - `aggregation` (enum)
              The type of aggregation to use.
              Values: `value_count`, `range`
            - `field` (string)
              The field use to aggregate the good events.
            - `filter` (string)
              The filter for total events.
            - `from` (number)
              The starting value of the range. Only required for "range" aggregations.
            - `to` (number)
              The ending value of the range. Only required for "range" aggregations.
        - `type` (string)
          The type of indicator.
      - **SLOs_indicator_properties_timeslice_metric** (`type: sli.metric.timeslice`)
        Defines properties for a timeslice metric indicator type
        - `params` (object)
          An object containing the indicator parameters.
          - `dataViewId` (string)
            The kibana data view id to use, primarily used to include data view runtime mappings. Make sure to save SLO again if you add/update run time fields to the data view and if those fields are being used in slo queries.
          - `filter` (string)
            the KQL query to filter the documents with.
          - `index` (string)
            The index or index pattern to use
          - `metric` (object)
            An object defining the metrics, equation, and threshold to determine if it's a good slice or not
            - `comparator` (enum)
              The comparator to use to compare the equation to the threshold.
              Values: `GT`, `GTE`, `LT`, `LTE`
            - `equation` (string)
              The equation to calculate the metric.
            - `metrics` ([] union anyOf)
              List of metrics with their name, aggregation type, and field.
              - **SLOs_timeslice_metric_basic_metric_with_field**
                - `aggregation` (enum)
                  The aggregation type of the metric.
                  Values: `sum`, `avg`, `min`, `max`, `std_deviation`, `last_value`, `cardinality`
                - `field` (string)
                  The field of the metric.
                - `filter` (string)
                  The filter to apply to the metric.
                - `name` (string · pattern: ^[A-Z]$)
                  The name of the metric. Only valid options are A-Z
              - **SLOs_timeslice_metric_percentile_metric**
                - `aggregation` (enum)
                  The aggregation type of the metric. Only valid option is "percentile"
                  Values: `percentile`
                - `field` (string)
                  The field of the metric.
                - `filter` (string)
                  The filter to apply to the metric.
                - `name` (string · pattern: ^[A-Z]$)
                  The name of the metric. Only valid options are A-Z
                - `percentile` (number)
                  The percentile value.
              - **SLOs_timeslice_metric_doc_count_metric**
                - `aggregation` (enum)
                  The aggregation type of the metric. Only valid option is "doc_count"
                  Values: `doc_count`
                - `filter` (string)
                  The filter to apply to the metric.
                - `name` (string · pattern: ^[A-Z]$)
                  The name of the metric. Only valid options are A-Z
            - `threshold` (number)
              The threshold used to determine if the metric is a good slice or not.
          - `timestampField` (string)
            The timestamp field used in the source indice.
        - `type` (string)
          The type of indicator.
    - `instanceId` (string)
      the value derived from the groupBy field, if present, otherwise '*'
    - `name` (string)
      The name of the SLO.
    - `objective` ({})
      Defines properties for the SLO objective
      - `target` (number · > 0 · < 100)
        the target objective between 0 and 1 excluded
      - `timesliceTarget` (number · min: 0 · max: 100)
        the target objective for each slice when using a timeslices budgeting method
      - `timesliceWindow` (string)
        the duration of each slice when using a timeslices budgeting method, as {duraton}{unit}
    - `revision` (number)
      The SLO revision
    - `settings` ({})
      Defines properties for SLO settings.
      - `frequency` (string · default: 1m)
        The interval between checks for changes in the source data. The minimum value is 1m and the maximum is 59m. The default value is 1 minute.
      - `preventInitialBackfill` (boolean · default: false)
        Start aggregating data from the time the SLO is created, instead of backfilling data from the beginning of the time window.
      - `syncDelay` (string · default: 1m)
        The time delay in minutes between the current time and the latest source data time. Increasing the value will delay any alerting. The default value is 1 minute. The minimum value is 1m and the maximum is 359m. It should always be greater then source index refresh interval.
      - `syncField` (string)
        The date field that is used to identify new documents in the source. It is strongly recommended to use a field that contains the ingest timestamp. If you use a different field, you might need to set the delay such that it accounts for data transmission delays. When unspecified, we use the indicator timestamp field.
    - `summary` ({})
      The SLO computed data
      - `errorBudget` ({})
        - `consumed` (number)
          The error budget consummed, as a percentage of the initial value.
        - `initial` (number)
          The initial error budget, as 1 - objective
        - `isEstimated` (boolean)
          Only for SLO defined with occurrences budgeting method and calendar aligned time window.
        - `remaining` (number)
          The error budget remaining, as a percentage of the initial value.
      - `sliValue` (number)
      - `status` (enum)
        Values: `NO_DATA`, `HEALTHY`, `DEGRADING`, `VIOLATED`
    - `tags` ([] string)
      List of tags
    - `timeWindow` ({})
      Defines properties for the SLO time window
      - `duration` (string)
        the duration formatted as {duration}{unit}. Accepted values for rolling: 7d, 30d, 90d. Accepted values for calendar aligned: 1w (weekly) or 1M (monthly)
      - `type` (enum)
        Indicates weither the time window is a rolling or a calendar aligned time window.
        Values: `rolling`, `calendarAligned`
    - `updatedAt` (string)
      The last update date
    - `version` (number)
      The internal SLO version
  - `total` (number)
- **{ searchAfter, size }**
  - `page` (number · default: 1)
    for backward compability
  - `perPage` (number)
    for backward compability
  - `results` ([] object)
    Same fields as `results` in `object`
  - `searchAfter` ([] string)
    the cursor to provide to get the next paged results
  - `size` (number)
  - `total` (number)
#### `400`

Bad request

`application/json`

- `error` (string)
- `message` (string)
- `statusCode` (number)
#### `401`

Unauthorized response

`application/json`

- `error` (string)
- `message` (string)
- `statusCode` (number)
#### `403`

Forbidden response

`application/json`

- `error` (string)
- `message` (string)
- `statusCode` (number)
## Code Examples

#### Console

```console
GET /s/{spaceId}/internal/observability/slos/_definitions
```

#### curl

```curl
curl -X GET "https://{kibana_url}/s/{spaceId}/internal/observability/slos/_definitions" \
  -H "kbn-xsrf: true"
```

