---
type: api
title: Search runners
description: Retrieves runners that match a given query.
url: https://www.elastic.co/elastic/docs-builder/docs/4371/api/doc/cloud-enterprise/v4/operation/operation-search-runners
resource: https://www.elastic.co/elastic/docs-builder/docs/4371/api/doc/cloud-enterprise/v4/operation/operation-search-runners
products:
  - Elastic Cloud Enterprise
---

# Search runners

## Paths

- `POST` `/platform/infrastructure/runners/_search`

- [Basic auth](/elastic/docs-builder/docs/4371/api/doc/cloud-enterprise/v4/authentication#basicauth)
- [Api key auth](/elastic/docs-builder/docs/4371/api/doc/cloud-enterprise/v4/authentication#apikey)

## Description

Retrieves runners that match a given query.

## Request Body

`application/json`

The optional search request to execute. If not supplied then all runners are matched.

- `from` (integer) — optional
  Deprecated, use cursor for a more scalable approach to paging.
- `cursor` (string) — optional
  To retrieve the next page of hits, set this to the cursor value of the previous response. When set, all other fields are ignored.
- `size` (integer) — optional
  The maximum number of search results to return.
- `query` ({} QueryContainer) — optional
  The container for all of the allowed Elasticsearch queries. Specify only one property each time.
  - `match` (map string to MatchQuery) — optional
    Map values ({} MatchQuery)
    - `query` (string) — required
      The text/numeric/date to query for.
    - `operator` (string) — optional
      The operator flag can be set to or or and to control the boolean clauses (defaults to or).
    - `minimum_should_match` (integer) — optional
      The minimum number of optional should clauses to match.
    - `analyzer` (string) — optional
      The analyzer that will be used to perform the analysis process on the text. Defaults to the analyzer that was used to index the field.
  - `match_all` (MatchAllQuery) — optional
    A query that matches all documents.
  - `match_none` (MatchNoneQuery) — optional
    A query that doesn't match any documents.
  - `term` (map string to TermQuery) — optional
    Map values ({} TermQuery)
    - `value` (string) — required
      The exact value to query for.
  - `bool` ({} BoolQuery) — optional
    A query for documents that match boolean combinations of other queries.
    - `must` ([] QueryContainer) — optional — recursive
      Same fields as `query`
    - `should` ([] QueryContainer) — optional — recursive
      Same fields as `query`
    - `must_not` ([] QueryContainer) — optional — recursive
      Same fields as `query`
    - `filter` ([] QueryContainer) — optional — recursive
      Same fields as `query`
    - `minimum_should_match` (integer) — optional
      The minimum number of optional should clauses to match.
  - `query_string` ({} QueryStringQuery) — optional
    A query that uses the strict query string syntax for parsing. Will return an error for invalid syntax.
    - `query` (string) — required
      The actual query to be parsed.
    - `default_field` (string) — optional
      The default field for query terms if no prefix field is specified.
    - `analyzer` (string) — optional
      The analyzer used to analyze each term of the query when creating composite queries.
    - `default_operator` (string) — optional
      The default operator used if no explicit operator is specified.
    - `allow_leading_wildcard` (boolean) — optional
      When set, * or ? are allowed as the first character. Defaults to false.
  - `nested` ({} NestedQuery) — optional
    A query that matches nested objects.
    - `query` ({} QueryContainer) — required — recursive
      The container for all of the allowed Elasticsearch queries. Specify only one property each time.
      Same fields as `query`
    - `path` (string) — required
      The path to the nested object.
    - `score_mode` (enum) — optional
      Allows to specify how inner children matching affects score of the parent. Refer to the Elasticsearch documentation for details.
      Values: `avg`, `sum`, `min`, `max`, `none`
  - `prefix` (map string to PrefixQuery) — optional
    Map values ({} PrefixQuery)
    - `value` (string) — required
      The prefix to search for.
    - `boost` (number) — optional
      An optional boost value to apply to the query.
  - `exists` ({} ExistsQuery) — optional
    Matches documents that have at least one non-`null` value in the original field.
    - `field` (string) — required
      The field to check for non-null values in.
  - `range` (map string to RangeQuery) — optional
    Map values ({} RangeQuery)
    - `gt` (object) — optional
      Greater-than
    - `gte` (object) — optional
      Greater-than or equal to
    - `lt` (object) — optional
      Less-than
    - `lte` (object) — optional
      Less-than or equal to.
    - `boost` (number) — optional
      An optional boost value to apply to the query.
    - `format` (string) — optional
      Formatted dates will be parsed using the format specified on the date field by default, but it can be overridden by passing the format parameter.
    - `time_zone` (string) — optional
      Dates can be converted from another timezone to UTC either by specifying the time zone in the date value itself (if the format accepts it), or it can be specified as the time_zone parameter.
  - `simple_query_string` ({} SimpleQueryStringQuery) — optional
    A query that uses simple query string syntax. Will ignore invalid syntax.
    - `query` (string) — required
      The query expressed in simple query string syntax.
    - `fields` ([] string) — optional
      Array of fields to search
    - `default_operator` (string) — optional
      The boolean operator used to combine the terms of the query. Valid values are `OR` (default) and `AND`.
    - `analyze_wildcard` (boolean) — optional
      If `true`, the query attempts to analyze wildcard terms. Defaults to `false`.
    - `analyzer` (string) — optional
      The name of the analyzer to use to convert the query text into tokens.
    - `auto_generate_synonyms_phrase_query` (boolean) — optional
      If `true`, the parse creates a `match_phrase` uery for each multi-position token. Defaults to `true`.
    - `flags` (string) — optional
      List of enabled operators for the simple query string syntax. Defaults to `ALL`.
    - `fuzzy_max_expansions` (integer) — optional
      Maximum number of terms to which the query expands for fuzzy matching. Defaults to 50.
    - `fuzzy_prefix_length` (integer) — optional
      Number of beginning characters left unchanged for fuzzy matching. Defaults to 0.
    - `fuzzy_transpositions` (boolean) — optional
      If `true`, edits for fuzzy matching include transpositions of two adjacent characters. Defaults to `false`.
    - `lenient` (boolean) — optional
      If `true`, format-based errors, such as providing a text value for a numeric field are ignored. Defaults to `false`.
    - `minimum_should_match` (string) — optional
      Minimum number of clauses that must match for a document to be returned.
    - `quote_field_suffix` (string) — optional
      Suffix appended to quoted text in the query string.
- `sort` ([] object) — optional
  An array of fields to sort the search results by. Defaults to query rank and last modified date descending.

## Responses

#### `200`

An overview of runners that matched the given search query.

`application/json`

- `runners` ([] RunnerInfo)
  List of runners
  - `runner_id` (string)
    The runner identifier
  - `runner_name` (string)
    The runner name
  - `zone` (string)
    Identifier of the zone
  - `tags` (map string to string)
    Meta data of the runner, like image ID or processor architecture
  - `features` (map string to boolean)
    State of features of the runner
  - `build_info` ({} RunnerBuildInfo)
    - `commit_hash` (string)
      Git commit hash
    - `version` (string)
      Version of the runner artifact
  - `host_ip` (string)
    Host IP for the runner
  - `public_hostname` (string)
    Public hostname for the runner
  - `containers` ([] RunnerContainerInfo)
    Containers for the runner
    - `container_name` (string)
      Name of this container
    - `container_set_name` (string)
      Name of the container set for the container
  - `roles` ([] RunnerRoleInfo)
    Roles for the runner
    - `role_name` (string)
      Name of the role
  - `connected` (boolean)
    Specifies if the runner is connected
  - `healthy` (boolean)
    Specifies if the runner is healthy
  - `health_checks` ({} RunnerHealthChecks)
    The checks performed to determine if an runner is healthy or not.
    - `is_docker_healthy` (boolean)
      Check performed by the runner to figure out if docker is healthy
    - `is_connected_to_zk` (boolean)
      Whether the runner is connected to zk or not
    - `has_containers` (boolean)
      Whether the runner has containers that it manages
  - `region` (string)
    The region that this runner belongs to. Only populated in SaaS or federated ECE.
#### `400`

The search request failed. (code: `runners.search_failed`)

`application/json`

- `errors` ([] BasicFailedReplyElement)
  A list of errors that occurred in the failing request
  - `code` (string)
    A structured code representing the error type that occurred
  - `message` (string)
    A human readable message describing the error that occurred
  - `fields` ([] string)
    If the error can be tied to a specific field or fields in the user request, this lists those fields
##### Response Headers

- `x-cloud-error-codes` (enum)
  The error codes associated with the response

## Code Examples

#### Console

```console
POST /platform/infrastructure/runners/_search
```

#### curl

```curl
curl -X POST "/platform/infrastructure/runners/_search"
```

