---
type: api
title: Compute an SLO instance summary at a point in time
description: Compute the summary of an SLO at a given point in time. When `instanceId` is provided, returns that instance. When `instanceId` is omitted or set to `'*'`, returns all matching instances (up to 1000). The endpoint is synchronous and returns results directly. You must have the `read` privileges for the **SLOs** feature in the **Observability** section of the Kibana feature privileges.<br/><br/>[Required authorization] Route required privileges: slo_read.
url: https://www.elastic.co/elastic/docs-builder/docs/4843/api/doc/kibana/operation/operation-getsnapshotop
resource: https://www.elastic.co/elastic/docs-builder/docs/4843/api/doc/kibana/operation/operation-getsnapshotop
products:
  - Kibana
---

# Compute an SLO instance summary at a point in time

Authentication: required

Availability: Planned

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

## Paths

- `GET` `/api/observability/slos/{id}/_snapshot`
- `GET` `/s/{space_id}/api/observability/slos/{id}/_snapshot`

#### Path parameters

- `space_id` (string) — optional
  An identifier for the space. If `space_id` is not provided in the URL, the default space is used. Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information.
- `id` (string · min length: 8 · max length: 48 · pattern: ^[a-z0-9-_]+$) — required
  The identifier of the SLO.

## Description

Compute the summary of an SLO at a given point in time. When `instanceId` is provided, returns that instance. When `instanceId` is omitted or set to `'*'`, returns all matching instances (up to 1000). The endpoint is synchronous and returns results directly. You must have the `read` privileges for the **SLOs** feature in the **Observability** section of the Kibana feature privileges.

## Required privileges

- Privileges: `slo_read`

## Query string parameters

- `at` (string · max length: 128) — required
  The point in time at which to compute the SLO instance summary (ISO 8601 date-time), for example 2023-01-12T10:03:19.000Z
  Example: `2025-01-12T10:00:00.000Z`
- `instanceId` (union enum | string) — optional
  The SLO instance ID. Omit this parameter or set it to `'*'` to return all instances for the SLO (up to 1000). Set a specific value (for example `web-01`) to return that instance only.
  Values: `*`
  Example: `web-01`

## Request body

`application/json`

Any of:
- **object**
- **object**

## Responses

#### `200`

Successful response

`application/json`

- `at` (string · format: date-time)
  The point in time at which the summaries were computed
- `results` (union anyOf[])
  The per-instance computation results
  - **{ summary }**
    - `id` (string)
      The SLO definition id
    - `instanceId` (string)
      The SLO instance id. '*' represents the default (ungrouped) instance.
    - `summary` (object)
      The SLO instance summary at the requested point in time. Present when the computation succeeded.
      - `errorBudget` (object)
        - `consumed` (number) — nullable
          The error budget consumed, or null when no data is available
        - `initial` (number)
          The initial error budget, derived from the SLO objective
        - `remaining` (number) — nullable
          The error budget remaining, or null when no data is available
      - `good` (number)
        The number of good events
      - `sliValue` (number) — nullable
        The SLI value at the requested point in time, or null when no data is available
      - `status` (enum)
        Values: `NO_DATA`, `HEALTHY`, `DEGRADING`, `VIOLATED`
      - `total` (number)
        The total number of events
  - **{ error }**
    - `error` (object)
      Error information when the computation failed for this SLO instance. Present when the computation failed.
      - `message` (string)
        The error message
      - `statusCode` (number)
        The HTTP status code of the error
    - `id` (string)
      The SLO definition id
    - `instanceId` (string)
      The SLO instance id. '*' represents the default (ungrouped) instance.
#### `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)
#### `404`

Not found response

`application/json`

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

#### Console

```console
GET kbn:/api/observability/slos/ID/_snapshot?at=2025-01-12T10%3A00%3A00.000Z
{}
```

#### curl

```curl
curl -X GET "${KIBANA_URL}/api/observability/slos/${ID}/_snapshot?at=2025-01-12T10%3A00%3A00.000Z" \
  -H "Authorization: ApiKey ${API_KEY}" \
  -H "Content-Type: application/json" \
  -d '{}'
```

## Response examples

#### Snapshot result for a healthy SLO instance

`application/json`

```json
{
  "at": "2025-01-12T10:00:00.000Z",
  "results": [
    {
      "id": "8853df00-ae2e-11ed-90af-09bb6422b258",
      "instanceId": "*",
      "summary": {
        "errorBudget": {
          "consumed": 0.24,
          "initial": 0.01,
          "remaining": 0.76
        },
        "good": 9976,
        "sliValue": 0.9976,
        "status": "HEALTHY",
        "total": 10000
      }
    }
  ]
}
```

#### Snapshot result for a violated SLO instance

`application/json`

```json
{
  "at": "2025-01-12T10:00:00.000Z",
  "results": [
    {
      "id": "8853df00-ae2e-11ed-90af-09bb6422b258",
      "instanceId": "web-01",
      "summary": {
        "errorBudget": {
          "consumed": 5,
          "initial": 0.01,
          "remaining": -4
        },
        "good": 9500,
        "sliValue": 0.95,
        "status": "VIOLATED",
        "total": 10000
      }
    }
  ]
}
```

#### Invalid at query parameter

`application/json`

```json
{
  "error": "Bad Request",
  "message": "[\n  {\n    \u0022code\u0022: \u0022custom\u0022,\n    \u0022path\u0022: [\n      \u0022at\u0022\n    ],\n    \u0022message\u0022: \u0022Invalid date\u0022\n  }\n]",
  "statusCode": 400
}
```

#### Invalid SLO id

`application/json`

```json
{
  "error": "Bad Request",
  "message": "[\n  {\n    \u0022origin\u0022: \u0022string\u0022,\n    \u0022code\u0022: \u0022too_small\u0022,\n    \u0022minimum\u0022: 8,\n    \u0022inclusive\u0022: true,\n    \u0022path\u0022: [\n      \u0022id\u0022\n    ],\n    \u0022message\u0022: \u0022Invalid slo id, must be between 8 and 48 characters and contain only letters, numbers, hyphens, and underscores\u0022\n  },\n  {\n    \u0022origin\u0022: \u0022string\u0022,\n    \u0022code\u0022: \u0022invalid_format\u0022,\n    \u0022format\u0022: \u0022regex\u0022,\n    \u0022pattern\u0022: \u0022/^[a-z0-9-_]\u002B$/\u0022,\n    \u0022path\u0022: [\n      \u0022id\u0022\n    ],\n    \u0022message\u0022: \u0022Invalid slo id, must be between 8 and 48 characters and contain only letters, numbers, hyphens, and underscores\u0022\n  }\n]",
  "statusCode": 400
}
```

#### Unauthorized

`application/json`

```json
{
  "error": "Unauthorized",
  "message": "[security_exception\n\tRoot causes:\n\t\tsecurity_exception: unable to authenticate user [elastic] for REST request [/_security/_authenticate]]: unable to authenticate user [elastic] for REST request [/_security/_authenticate]",
  "statusCode": 401
}
```

#### Forbidden

`application/json`

```json
{
  "error": "Forbidden",
  "message": "API [GET /api/observability/slos/8853df00-ae2e-11ed-90af-09bb6422b258/_snapshot?at=2025-01-12T10:00:00.000Z] is unauthorized for user, this action is granted by the Kibana privileges [slo_read]",
  "statusCode": 403
}
```

#### Not found

`application/json`

```json
{
  "error": "Not Found",
  "message": "SLO [3749f390-03a3-11ee-8139-c7ff60a1692d] not found",
  "statusCode": 404
}
```

