﻿---
title: stack es get cli command
description: Get a document by its ID. Behaviour flags: --dry-run — validate all inputs and exit without performing any action 
url: https://www.elastic.co/elastic/docs-builder/docs/4120/reference/elastic-cli/cli/stack/es/get
applies_to:
  - Elastic Cloud Serverless: Preview
  - Elastic Stack: Preview
---

# stack es get cli command
<cli-modifiers>
</cli-modifiers>

```bash
elastic stack es get --id <id> --index <index> [options]
```

Get a document by its ID.
**Behaviour flags:**
`--dry-run` — validate all inputs and exit without performing any action

## Options

<definitions>
  <definition term="--id string required">
    A unique document identifier.
  </definition>
  <definition term="--index string required">
    The name of the index that contains the document.
  </definition>
  <definition term="--preference string">
    The node or shard the operation should be performed on.
    By default, the operation is randomized between the shard replicas. If it is set to `_local`, the operation will prefer to be run on a local allocated shard when possible.
    If it is set to a custom value, the value is used to guarantee that the same shards will be used for the same custom value.
    This can help with "jumping values" when hitting different shards in different refresh states.
    A sample value can be something like the web session ID or the user name.
  </definition>
  <definition term="--realtime">
    If `true`, the request is real-time as opposed to near-real-time.
  </definition>
  <definition term="--refresh">
    If `true`, the request refreshes the relevant shards before retrieving the document.
    Setting it to `true` should be done after careful thought and verification that this does not cause a heavy load on the system (and slow down indexing).
  </definition>
  <definition term="--routing string">
    A custom value used to route operations to a specific shard.
    Not allowed when `index.slice.enabled` is `true` for the target index; use `_slice` instead.
    **Repeatable:** pass `--routing` multiple times to supply more than one value
  </definition>
  <definition term="--source string">
    Indicates whether to return the `_source` field (`true` or `false`) or lists the fields to return.
  </definition>
  <definition term="--source-excludes string">
    A comma-separated list of source fields to exclude from the response.
    You can also use this parameter to exclude fields from the subset specified in `_source_includes` query parameter.
    If the `_source` parameter is `false`, this parameter is ignored.
    **Repeatable:** pass `--source-excludes` multiple times to supply more than one value
  </definition>
  <definition term="--source-exclude-vectors">
    Whether vectors should be excluded from _source
  </definition>
  <definition term="--source-includes string">
    A comma-separated list of source fields to include in the response.
    If this parameter is specified, only these source fields are returned.
    You can exclude fields from this subset using the `_source_excludes` query parameter.
    If the `_source` parameter is `false`, this parameter is ignored.
    **Repeatable:** pass `--source-includes` multiple times to supply more than one value
  </definition>
  <definition term="--stored-fields string">
    A comma-separated list of stored fields to return as part of a hit.
    If no fields are specified, no stored fields are included in the response.
    If this field is specified, the `_source` parameter defaults to `false`.
    Only leaf fields can be retrieved with the `stored_fields` option.
    Object fields can't be returned; if specified, the request fails.
    **Repeatable:** pass `--stored-fields` multiple times to supply more than one value
  </definition>
  <definition term="--version number">
    The version number for concurrency control.
    It must match the current version of the document for the request to succeed.
  </definition>
  <definition term="--version-type enum">
    The version type.
    **Values:** internal, external, external_gte
  </definition>
  <definition term="--error-trace">
    When set to `true` Elasticsearch will include the full stack trace of errors
    when they occur.
  </definition>
  <definition term="--filter-path string">
    Comma-separated list of filters in dot notation which reduce the response
    returned by Elasticsearch.
    **Repeatable:** pass `--filter-path` multiple times to supply more than one value
  </definition>
  <definition term="--human">
    When set to `true` will return statistics in a format suitable for humans.
    For example `"exists_time": "1h"` for humans and
    `"exists_time_in_millis": 3600000` for computers. When disabled the human
    readable values will be omitted. This makes sense for responses being consumed
    only by machines.
  </definition>
  <definition term="--pretty">
    If set to `true` the returned JSON will be "pretty-formatted". Only use
    this option for debugging only.
  </definition>
  <definition term="--input-file string">
    path to a JSON file to use as command input
  </definition>
  <definition term="--dry-run">
    validate all inputs and exit without performing any action (preview changes without applying them)
  </definition>
</definitions>


## Global Options

<definitions>
  <definition term="--json">
    output as JSON
  </definition>
</definitions>