[role="xpack"]
[testenv="basic"]
[[preview-data-frame-transform]]
=== Preview {dataframe-transforms} API

[subs="attributes"]
++++
<titleabbrev>Preview {dataframe-transforms}</titleabbrev>
++++

beta[]

Previews a {dataframe-transform}.

[discrete]
[[preview-data-frame-transform-request]]
==== {api-request-title}

`POST _data_frame/transforms/_preview`

[discrete]
[[preview-data-frame-transform-prereq]]
==== {api-prereq-title}

* If the {es} {security-features} are enabled, you must have
`manage_data_frame_transforms` cluster privileges to use this API. The built-in
`data_frame_transforms_admin` role has these privileges. You must also have
`read` and `view_index_metadata` privileges on the source index for the
{dataframe-transform}. For more information, see
{stack-ov}/security-privileges.html[Security privileges] and
{stack-ov}/built-in-roles.html[Built-in roles].

[discrete]
[[preview-data-frame-transform-request-body]]
==== {api-request-body-title}

`source` (Required)::
  (object) The source index or index pattern.

`pivot` (Required)::
  (object) Defines the pivot function `group by` fields and the aggregation to
  reduce the data. See <<data-frame-transform-pivot>>.

[discrete]
==== {api-examples-title}

[source,js]
--------------------------------------------------
POST _data_frame/transforms/_preview
{
  "source": {
    "index": "kibana_sample_data_ecommerce"
  },
  "pivot": {
    "group_by": {
      "customer_id": {
        "terms": {
          "field": "customer_id"
        }
      }
    },
    "aggregations": {
      "max_price": {
        "max": {
          "field": "taxful_total_price"
        }
      }
    }
  }
}
--------------------------------------------------
// CONSOLE
// TEST[skip:set up sample data]

The data that is returned for this example is as follows:
[source,js]
----
{
  "preview" : [
    {
      "max_price" : 171.0,
      "customer_id" : "10"
    },
    {
      "max_price" : 233.0,
      "customer_id" : "11"
    },
    {
      "max_price" : 200.0,
      "customer_id" : "12"
    }
    ...
  ],
  "mappings": {
    "properties": {
      "max_price": {
        "type": "double"
      },
      "customer_id": {
        "type": "keyword"
      }
    }
  }
}
----
// NOTCONSOLE