---
type: api
title: Search for saved objects
description: **Spaces method and path for this operation:**
url: https://www.elastic.co/elastic/docs-builder/docs/4641/api/doc/kibana/v8/operation/operation-findsavedobjects
resource: https://www.elastic.co/elastic/docs-builder/docs/4641/api/doc/kibana/v8/operation/operation-findsavedobjects
products:
  - Kibana
---

# Search for saved objects

deprecated

Authentication: required

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

## Paths

- `GET` `/api/saved_objects/_find`
- `GET` `/s/{space_id}/api/saved_objects/_find`

#### 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.

## Description

Retrieve a paginated set of Kibana saved objects.

## Query string parameters

- `aggs` (string) — optional
  An aggregation structure, serialized as a string. The field format is similar to filter, meaning that to use a saved object type attribute in the aggregation, the `savedObjectType.attributes.title: "myTitle"` format must be used. For root fields, the syntax is `savedObjectType.rootField`. NOTE: As objects change in Kibana, the results on each page of the response also change. Use the find API for traditional paginated results, but avoid using it to export large amounts of data.
- `default_search_operator` (string) — optional
  The default operator to use for the `simple_query_string`.
- `fields` (unknown[]) — optional
  The fields to return in the attributes key of the response.
- `filter` (string) — optional
  The filter is a KQL string with the caveat that if you filter with an attribute from your saved object type, it should look like that: `savedObjectType.attributes.title: "myTitle"`. However, if you use a root attribute of a saved object such as `updated_at`, you will have to define your filter like that: `savedObjectType.updated_at > 2018-12-22`.
- `has_no_reference` (object) — optional
  Filters to objects that do not have a relationship with the type and identifier combination.
- `has_no_reference_operator` (string) — optional
  The operator to use for the `has_no_reference` parameter. Either `OR` or `AND`. Defaults to `OR`.
- `has_reference` (object) — optional
  Filters to objects that have a relationship with the type and ID combination.
- `has_reference_operator` (string) — optional
  The operator to use for the `has_reference` parameter. Either `OR` or `AND`. Defaults to `OR`.
- `page` (integer) — optional
  The page of objects to return.
- `per_page` (integer) — optional
  The number of objects to return per page.
- `search` (string) — optional
  An Elasticsearch `simple_query_string` query that filters the objects in the response.
- `search_fields` (unknown[]) — optional
  The fields to perform the `simple_query_string` parsed query against.
- `sort_field` (string) — optional
  Sorts the response. Includes "root" and "type" fields. "root" fields exist for all saved objects, such as "updated_at". "type" fields are specific to an object type, such as fields returned in the attributes key of the response. When a single type is defined in the type parameter, the "root" and "type" fields are allowed, and validity checks are made in that order. When multiple types are defined in the type parameter, only "root" fields are allowed.
- `type` (unknown[]) — required
  The saved object types to include.

## Responses

#### `200`

Indicates a successful call.

`application/json`

Type: `object`

#### `400`

Bad request

`application/json`

- `error` (enum)
  Values: `Bad Request`
- `message` (string)
- `statusCode` (enum)
  Values: `400`
## Code examples

#### Console

```console
GET kbn:/api/saved_objects/_find?type=TYPE
```

#### curl

```curl
curl -X GET "${KIBANA_URL}/api/saved_objects/_find?type=${TYPE}" \
  -H "Authorization: ApiKey ${API_KEY}"
```

## Response examples

#### 200

`application/json`

Generated from the API spec. Values are representative. Unions use the first variant; deeply nested or large bodies may omit fields.

```json
{}
```

#### 400

`application/json`

Generated from the API spec. Values are representative. Unions use the first variant; deeply nested or large bodies may omit fields.

```json
{
  "error": "Bad Request",
  "message": "string",
  "statusCode": 400
}
```

