﻿---
title: stack es index cli command
description: Create or update a document in an index. 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/cmd-index
applies_to:
  - Elastic Cloud Serverless: Preview
  - Elastic Stack: Preview
---

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

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

Create or update a document in an index.
**Behaviour flags:**
`--dry-run` — validate all inputs and exit without performing any action

## Options

<definitions>
  <definition term="--index string required">
    The name of the data stream or index to target.
    If the target doesn't exist and matches the name or wildcard (`*`) pattern of an index template with a `data_stream` definition, this request creates the data stream.
    If the target doesn't exist and doesn't match a data stream template, this request creates the index.
    You can check for existing targets with the resolve index API.
  </definition>
  <definition term="--if-primary-term number">
    Only perform the operation if the document has this primary term.
  </definition>
  <definition term="--if-seq-no number">
    Only perform the operation if the document has this sequence number.
  </definition>
  <definition term="--include-source-on-error">
    True or false if to include the document source in the error message in case of parsing errors.
  </definition>
  <definition term="--op-type enum">
    Set to `create` to only index the document if it does not already exist (put if absent).
    If a document with the specified `_id` already exists, the indexing operation will fail.
    The behavior is the same as using the `<index>/_create` endpoint.
    If a document ID is specified, this paramater defaults to `index`.
    Otherwise, it defaults to `create`.
    If the request targets a data stream, an `op_type` of `create` is required.
    **Values:** index, create
  </definition>
  <definition term="--pipeline string">
    The ID of the pipeline to use to preprocess incoming documents.
    If the index has a default ingest pipeline specified, then setting the value to `_none` disables the default ingest pipeline for this request.
    If a final pipeline is configured it will always run, regardless of the value of this parameter.
  </definition>
  <definition term="--refresh enum">
    If `true`, Elasticsearch refreshes the affected shards to make this operation visible to search.
    If `wait_for`, it waits for a refresh to make this operation visible to search.
    If `false`, it does nothing with refreshes.
    **Values:** true, false, wait_for
  </definition>
  <definition term="--routing string">
    A custom value that is 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="--timeout string">
    The period the request waits for the following operations: automatic index creation, dynamic mapping updates, waiting for active shards. This parameter is useful for situations where the primary shard assigned to perform the operation might not be available when the operation runs.
    Some reasons for this might be that the primary shard is currently recovering from a gateway or undergoing relocation.
    By default, the operation will wait on the primary shard to become available for at least 1 minute before failing and responding with an error.
    The actual wait time could be longer, particularly when multiple waits occur.
  </definition>
  <definition term="--version number">
    An explicit version number for concurrency control.
    It must be a non-negative long number.
  </definition>
  <definition term="--version-type enum">
    The version type.
    **Values:** internal, external, external_gte
  </definition>
  <definition term="--wait-for-active-shards string">
    The number of shard copies that must be active before proceeding with the operation.
    You can set it to `all` or any positive integer up to the total number of shards in the index (`number_of_replicas+1`).
    The default value of `1` means it waits for each primary shard to be active.
  </definition>
  <definition term="--require-alias">
    If `true`, the destination must be an index alias.
  </definition>
  <definition term="--require-data-stream">
    If `true`, the request's actions must target a data stream (existing or to be created).
  </definition>
  <definition term="--document string">
  </definition>
  <definition term="--id string">
    A unique identifier for the document.
    To automatically generate a document ID, use the `POST /<target>/_doc/` request format and omit this parameter.
  </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>