[[search-count]] === Count API Gets the number of matches for a search query. [source,console] -------------------------------------------------- GET /my-index-000001/_count?q=user:kimchy -------------------------------------------------- // TEST[setup:my_index] NOTE: The query being sent in the body must be nested in a `query` key, same as the <> works. [[search-count-api-request]] ==== {api-request-title} `GET //_count` [[search-count-api-desc]] ==== {api-description-title} The count API allows you to execute a query and get the number of matches for that query. The query can either be provided using a simple query string as a parameter, or using the <> defined within the request body. The count API supports <>. You can run a single count API search across multiple data streams and indices. The operation is broadcast across all shards. For each shard id group, a replica is chosen and executed against it. This means that replicas increase the scalability of count. [[search-count-api-path-params]] ==== {api-path-parms-title} ``:: (Optional, string) Comma-separated list of data streams, indices, and index aliases to search. Wildcard (`*`) expressions are supported. + To search all data streams and indices in a cluster, omit this parameter or use `_all` or `*`. [[search-count-api-query-params]] ==== {api-query-parms-title} include::{es-repo-dir}/rest-api/common-parms.asciidoc[tag=allow-no-indices] + Defaults to `true`. include::{es-repo-dir}/rest-api/common-parms.asciidoc[tag=analyzer] include::{es-repo-dir}/rest-api/common-parms.asciidoc[tag=analyze_wildcard] include::{es-repo-dir}/rest-api/common-parms.asciidoc[tag=default_operator] include::{es-repo-dir}/rest-api/common-parms.asciidoc[tag=df] include::{es-repo-dir}/rest-api/common-parms.asciidoc[tag=expand-wildcards] + Defaults to `open`. include::{es-repo-dir}/rest-api/common-parms.asciidoc[tag=ignore_throttled] include::{es-repo-dir}/rest-api/common-parms.asciidoc[tag=index-ignore-unavailable] include::{es-repo-dir}/rest-api/common-parms.asciidoc[tag=lenient] `min_score`:: (Optional, float) Sets the minimum `_score` value that documents must have to be included in the result. include::{es-repo-dir}/rest-api/common-parms.asciidoc[tag=preference] include::{es-repo-dir}/rest-api/common-parms.asciidoc[tag=search-q] include::{es-repo-dir}/rest-api/common-parms.asciidoc[tag=routing] include::{es-repo-dir}/rest-api/common-parms.asciidoc[tag=terminate_after] [[search-count-request-body]] ==== {api-request-body-title} include::{es-repo-dir}/rest-api/common-parms.asciidoc[tag=query] [[search-count-api-example]] ==== {api-examples-title} [source,console] -------------------------------------------------- PUT /my-index-000001/_doc/1?refresh { "user.id": "kimchy" } GET /my-index-000001/_count?q=user:kimchy GET /my-index-000001/_count { "query" : { "term" : { "user.id" : "kimchy" } } } -------------------------------------------------- Both examples above do the same: count the number of documents in `my-index-000001` with a `user.id` of `kimchy`. The API returns the following response: [source,console-result] -------------------------------------------------- { "count": 1, "_shards": { "total": 1, "successful": 1, "skipped": 0, "failed": 0 } } -------------------------------------------------- The query is optional, and when not provided, it will use `match_all` to count all the docs.