---
title: "Get a paginated list of SLOs"
method: GET
path: "/s/{spaceId}/api/observability/slos"
tags: ["slo"]
---

# Get a paginated list of SLOs

`GET /s/{spaceId}/api/observability/slos`

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

## Path parameters

- `spaceId` string, required

## Query parameters

- `kqlQuery` string
- `size` integer
- `searchAfter` string[]
- `page` integer
- `perPage` integer
- `sortBy` 'sli_value' | 'status' | 'error_budget_consumed' | 'error_budget_remaining'
- `sortDirection` 'asc' | 'desc'
- `hideStale` boolean

## Headers

- `kbn-xsrf` string, required

## Response `200`

Successful request

- SLOsFindSloResponse — A paginated response of SLOs matching the query.
  - `page` number
  - `perPage` number
  - `results` SLOsSloWithSummaryResponse[]
    - `budgetingMethod` 'occurrences' | 'timeslices', required — The budgeting method to use when computing the rollup data.
    - `createdAt` string, required — The creation date
    - `description` string, required — The description of the SLO.
    - `enabled` boolean, required — Indicate if the SLO is enabled
    - `groupBy` union, required — optional group by field or fields to use to generate an SLO per distinct value
      - string
      - string[]
    - `id` string, required — The identifier of the SLO.
    - `indicator` union, required
      - SLOsIndicatorPropertiesCustomKql — Defines properties for a custom query indicator type
        - `params` object, required — 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.
            - object
              - …
          - `good` union, required — The KQL query used to define the good events.
            - string — the KQL query to filter the documents with.
            - object
              - …
          - `index` string, required — The index or index pattern to use
          - `timestampField` string, required — The timestamp field used in the source indice.
          - `total` union, required — The KQL query used to define all events.
            - string — the KQL query to filter the documents with.
            - object
              - …
        - `type` string, required — The type of indicator.
      - SLOsIndicatorPropertiesApmAvailability — Defines properties for the APM availability indicator type
        - `params` object, required — An object containing the indicator parameters.
          - `environment` string, required — The APM service environment or "*"
          - `filter` string — KQL query used for filtering the data
          - `index` string, required — The index used by APM metrics
          - `service` string, required — The APM service name
          - `transactionName` string, required — The APM transaction name or "*"
          - `transactionType` string, required — The APM transaction type or "*"
        - `type` string, required — The type of indicator.
      - SLOsIndicatorPropertiesApmLatency — Defines properties for the APM latency indicator type
        - `params` object, required — An object containing the indicator parameters.
          - `environment` string, required — The APM service environment or "*"
          - `filter` string — KQL query used for filtering the data
          - `index` string, required — The index used by APM metrics
          - `service` string, required — The APM service name
          - `threshold` number, required — The latency threshold in milliseconds
          - `transactionName` string, required — The APM transaction name or "*"
          - `transactionType` string, required — The APM transaction type or "*"
        - `type` string, required — The type of indicator.
      - SLOsIndicatorPropertiesCustomMetric — Defines properties for a custom metric indicator type
        - `params` object, required — 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, required — An object defining the "good" metrics and equation
            - `equation` string, required — The equation to calculate the "good" metric.
            - `metrics` union[], required — List of metrics with their name, aggregation type, and field.
              - …
          - `index` string, required — The index or index pattern to use
          - `timestampField` string, required — The timestamp field used in the source indice.
          - `total` object, required — An object defining the "total" metrics and equation
            - `equation` string, required — The equation to calculate the "total" metric.
            - `metrics` union[], required — List of metrics with their name, aggregation type, and field.
              - …
        - `type` string, required — The type of indicator.
      - SLOsIndicatorPropertiesHistogram — Defines properties for a histogram indicator type
        - `params` object, required — 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, required — An object defining the "good" events
            - `aggregation` 'value_count' | 'range', required — The type of aggregation to use.
            - `field` string, required — 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, required — The index or index pattern to use
          - `timestampField` string, required — The timestamp field used in the source indice.
          - `total` object, required — An object defining the "total" events
            - `aggregation` 'value_count' | 'range', required — The type of aggregation to use.
            - `field` string, required — 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, required — The type of indicator.
      - SLOsIndicatorPropertiesTimesliceMetric — Defines properties for a timeslice metric indicator type
        - `params` object, required — 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, required — The index or index pattern to use
          - `metric` object, required — An object defining the metrics, equation, and threshold to determine if it's a good slice or not
            - `comparator` 'GT' | 'GTE' | 'LT' | 'LTE', required — The comparator to use to compare the equation to the threshold.
            - `equation` string, required — The equation to calculate the metric.
            - `metrics` union[], required — List of metrics with their name, aggregation type, and field.
              - …
            - `threshold` number, required — The threshold used to determine if the metric is a good slice or not.
          - `timestampField` string, required — The timestamp field used in the source indice.
        - `type` string, required — The type of indicator.
    - `instanceId` string, required — the value derived from the groupBy field, if present, otherwise '*'
    - `name` string, required — The name of the SLO.
    - `objective` SLOsObjective, required — Defines properties for the SLO objective
      - `target` number, required — the target objective between 0 and 1 excluded
      - `timesliceTarget` number — 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, required — The SLO revision
    - `settings` SLOsSettings, required — Defines properties for SLO settings.
      - `frequency` string — 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.
      - `preventCrossProjectSearch` boolean — Pin the L1 rollup transform to the local/origin project only, preventing flat-world (cross-linked-project) reads. Only applies on serverless. Default is false (flat-world).
      - `preventInitialBackfill` boolean — Start aggregating data from the time the SLO is created, instead of backfilling data from the beginning of the time window.
      - `syncDelay` string — 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` SLOsSummary, required — The SLO computed data
      - `errorBudget` SLOsErrorBudget, required
        - `consumed` number, required — The error budget consummed, as a percentage of the initial value.
        - `initial` number, required — The initial error budget, as 1 - objective
        - `isEstimated` boolean, required — Only for SLO defined with occurrences budgeting method and calendar aligned time window.
        - `remaining` number, required — The error budget remaining, as a percentage of the initial value.
      - `sliValue` number, required
      - `status` 'NO_DATA' | 'HEALTHY' | 'DEGRADING' | 'VIOLATED', required
    - `tags` string[], required — List of tags
    - `timeWindow` SLOsTimeWindow, required — Defines properties for the SLO time window
      - `duration` string, required — the duration formatted as {duration}{unit}. Accepted values for rolling: 7d, 30d, 90d. Accepted values for calendar aligned: 1w (weekly) or 1M (monthly)
      - `type` 'rolling' | 'calendarAligned', required — Indicates weither the time window is a rolling or a calendar aligned time window.
    - `updatedAt` string, required — The last update date
    - `version` number, required — The internal SLO version
  - `searchAfter` string
  - `size` number — Size provided for cursor based pagination
  - `total` number

## Other responses

- `400` — Bad request
- `401` — Unauthorized response
- `403` — Forbidden response
- `404` — Not found response

---

[API](https://skmtc.net/elastic/apis/kibana-apis.md) · [All operations](https://skmtc.net/elastic/apis/kibana-apis/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/elastic/kibana-apis/versions/531c9e2a7d23/schema)
