---
type: api
title: Compute SLO instance summaries in bulk at a point in time
description: Compute the summary of multiple SLO instances at a given point in time. The endpoint is synchronous and returns results directly. Each result contains either a summary (on success) or a per-instance error. The list of requests is limited to 100 entries. When `instanceId` is omitted or set to `'*'`, the API returns a result for each matching instance (up to 1000 per SLO). 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/v0/operation/operation-bulksnapshotop
resource: https://www.elastic.co/elastic/docs-builder/docs/4371/api/doc/kibana/v0/operation/operation-bulksnapshotop
products:
  - Kibana
---

# Compute SLO instance summaries in bulk at a point in time

Availability: Planned

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

## Paths

- `POST` `/s/{spaceId}/api/observability/slos/_bulk_snapshot`

- [Api key auth](/elastic/docs-builder/docs/4371/api/doc/kibana/v0/authentication#apikeyauth)
- [Basic auth](/elastic/docs-builder/docs/4371/api/doc/kibana/v0/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

Compute the summary of multiple SLO instances at a given point in time. The endpoint is synchronous and returns results directly. Each result contains either a summary (on success) or a per-instance error. The list of requests is limited to 100 entries. When `instanceId` is omitted or set to `'*'`, the API returns a result for each matching instance (up to 1000 per SLO). You must have the `read` privileges for the **SLOs** feature in the **Observability** section of the Kibana feature privileges.

## Request Body

`application/json`

- `at` (string) — required
  The point in time at which to compute the SLO instance summaries
- `requests` ([] object · max: 100) — required
  The list of SLO instances to compute. Limited to 100 entries.
  - `id` (string) — required
    The SLO definition id
  - `instanceId` (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 to return that instance only.

## Responses

#### `200`

Successful response

`application/json`

- `at` (string)
  The point in time at which the summaries were computed
- `results` ([] object)
  The per-instance computation results
  - `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.
  - `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)
      The SLO health status
      Values: `NO_DATA`, `HEALTHY`, `DEGRADING`, `VIOLATED`
    - `total` (number)
      The total number of events
#### `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
POST /s/{spaceId}/api/observability/slos/_bulk_snapshot
{
  "at": "2025-01-12T10:00:00.000Z",
  "requests": [
    {
      "id": "8853df00-ae2e-11ed-90af-09bb6422b258",
      "instanceId": "*"
    },
    {
      "id": "d077e940-1515-11ee-9c50-9d096392f520",
      "instanceId": "host.name:web-01"
    }
  ]
}
```

#### curl

```curl
curl -X POST "https://{kibana_url}/s/{spaceId}/api/observability/slos/_bulk_snapshot" \
  -H "kbn-xsrf: true" \
  -H "Content-Type: application/json" \
  -d '{
  "at": "2025-01-12T10:00:00.000Z",
  "requests": [
    {
      "id": "8853df00-ae2e-11ed-90af-09bb6422b258",
      "instanceId": "*"
    },
    {
      "id": "d077e940-1515-11ee-9c50-9d096392f520",
      "instanceId": "host.name:web-01"
    }
  ]
}'
```

## Response Examples

#### Bulk snapshot response with mixed success and per-instance error

```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
      }
    },
    {
      "error": {
        "message": "SLO [d077e940-1515-11ee-9c50-9d096392f520] not found",
        "statusCode": 404
      },
      "id": "d077e940-1515-11ee-9c50-9d096392f520",
      "instanceId": "host.name:web-01"
    }
  ]
}
```

#### Bad request

```json
{
  "error": "Bad Request",
  "message": "\u0060requests\u0060 is limited to 100 entries",
  "statusCode": 400
}
```

#### Unauthorized

```json
{
  "error": "Unauthorized",
  "message": "security_exception: unable to authenticate user for REST request [/api/observability/slos]",
  "statusCode": 401
}
```

#### Forbidden

```json
{
  "error": "Forbidden",
  "message": "security_exception: action [slo_read] is unauthorized for user",
  "statusCode": 403
}
```

