﻿---
title: stack es transform put-transform cli command
description: Create a transform. Behaviour flags: --dry-run — validate all inputs and exit without performing any action 
url: https://www.elastic.co/elastic/docs-builder/docs/4089/reference/elastic-cli/cli/stack/es/transform/put-transform
applies_to:
  - Elastic Cloud Serverless: Preview
  - Elastic Stack: Preview
---

# stack es transform put-transform cli command
<cli-modifiers>
</cli-modifiers>

```bash
elastic stack es transform put-transform \
  --dest <dest> \
  --source <source> \
  --transform-id <transform-id> \
  [options]
```

Create a transform.
**Behaviour flags:**
`--dry-run` — validate all inputs and exit without performing any action

## Options

<definitions>
  <definition term="--dest string required">
    The destination for the transform.
  </definition>
  <definition term="--source string required">
    The source of the data for the transform.
  </definition>
  <definition term="--transform-id string required">
    Identifier for the transform. This identifier can contain lowercase alphanumeric characters (a-z and 0-9),
    hyphens, and underscores. It has a 64 character limit and must start and end with alphanumeric characters.
  </definition>
  <definition term="--defer-validation">
    When the transform is created, a series of validations occur to ensure its success. For example, there is a
    check for the existence of the source indices and a check that the destination index is not part of the source
    index pattern. You can use this parameter to skip the checks, for example when the source index does not exist
    until after the transform is created. The validations are always run when you start the transform, however, with
    the exception of privilege checks.
  </definition>
  <definition term="--timeout string">
    Period to wait for a response. If no response is received before the timeout expires, the request fails and returns an error.
  </definition>
  <definition term="--description string">
    Free text description of the transform.
  </definition>
  <definition term="--frequency string">
    The interval between checks for changes in the source indices when the transform is running continuously. Also
    determines the retry interval in the event of transient failures while the transform is searching or indexing.
    The minimum value is `1s` and the maximum is `1h`.
  </definition>
  <definition term="--latest string">
    The latest method transforms the data by finding the latest document for each unique key.
  </definition>
  <definition term="--meta string">
    Defines optional transform metadata.
  </definition>
  <definition term="--pivot string">
    The pivot method transforms the data by aggregating and grouping it. These objects define the group by fields
    and the aggregation to reduce the data.
  </definition>
  <definition term="--retention-policy string">
    Defines a retention policy for the transform. Data that meets the defined criteria is deleted from the
    destination index.
  </definition>
  <definition term="--settings string">
    Defines optional transform settings.
  </definition>
  <definition term="--sync string">
    Defines the properties transforms require to run continuously.
  </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>