[role="xpack"] [testenv="basic"] [[put-data-frame-transform]] === Create {dataframe-transforms} API ++++ Create {dataframe-transforms} ++++ Instantiates a {dataframe-transform}. ==== Request `PUT _data_frame/transforms/` //===== Description ==== Path Parameters `data_frame_transform_id` (required):: (string) Identifier for the {dataframe-transform}. This identifier can contain lowercase alphanumeric characters (a-z and 0-9), hyphens, and underscores. It must start and end with alphanumeric characters. ==== Request Body `source`:: The source index or index pattern. `dest`:: The destination index. `pivot`:: Defines the pivot function `group by` fields and the aggregation to reduce the data. //==== Authorization ==== Examples The following example creates a {dataframe-transform} for the {kib} eCommerce sample data: [source,js] -------------------------------------------------- PUT _data_frame/transforms/ecommerce_transform { "source": "kibana_sample_data_ecommerce", "dest": "kibana_sample_data_ecommerce_transform", "pivot": { "group_by": { "customer_id": { "terms": { "field": "customer_id" } } }, "aggregations": { "max_price": { "max": { "field": "taxful_total_price" } } } } } -------------------------------------------------- // CONSOLE // TEST[skip:add sample kibana data] When the transform is created, you receive the following results: [source,js] ---- { "acknowledged" : true } ---- // NOTCONSOLE