[role="xpack"]
[testenv="basic"]
[[reset-transform]]
= Reset {transform} API

[subs="attributes"]
++++
<titleabbrev>Reset {transform}</titleabbrev>
++++

.New API reference
[sidebar]
--
For the most up-to-date API details, refer to {api-es}/group/endpoint-transform[{transform-cap} APIs].
--

Resets a {transform}.

[[reset-transform-request]]
== {api-request-title}

`POST _transform/<transform_id>/_reset`

[[reset-transform-prereqs]]
== {api-prereq-title}

* Requires the `manage_transform` cluster privilege. This privilege is included
in the `transform_admin` built-in role.

[reset-transform-desc]]
== {api-description-title}

Before you can reset the {transform}, you must stop it; alternatively, use the
`force` query parameter.

If you reset a {transform}, all checkpoints, states, and the destination index 
(if it was created by the {transform}) are deleted. The {transform} is updated 
to the latest format as if the <<update-transform>> API was used. The 
{transform} is ready to start again as if it had just been created.


[[reset-transform-path-parms]]
== {api-path-parms-title}

`<transform_id>`::
(Required, string)
include::{es-ref-dir}/rest-api/common-parms.asciidoc[tag=transform-id]

[[reset-transform-query-parms]]
== {api-query-parms-title}

`force`::
(Optional, Boolean)
If this value is `true`, the {transform} is reset regardless of its current
state. If it's false, the {transform} must be `stopped` before it can be reset.
The default value is `false`

`timeout`::
(Optional, time)
Period to wait for a response. If no response is received before the timeout
expires, the request fails and returns an error. Defaults to `30s`.

[[reset-transform-examples]]
== {api-examples-title}

[source,console]
--------------------------------------------------
POST _transform/ecommerce_transform/_reset
--------------------------------------------------
// TEST[skip:setup kibana sample data]

When the {transform} is reset, you receive the following results:

[source,console-result]
----
{
  "acknowledged" : true
}
----
