[role="xpack"]
[testenv="basic"]
[[stop-transform]]
= Stop {transforms} API

[subs="attributes"]
++++
<titleabbrev>Stop {transforms}</titleabbrev>
++++

Stops one or more {transforms}.


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

`POST _transform/<transform_id>/_stop` +

`POST _transform/<transform_id1>,<transform_id2>/_stop` +

`POST _transform/_all/_stop`


[[stop-transform-prereq]]
== {api-prereq-title}

If the {es} {security-features} are enabled, you must have the following 
built-in roles and privileges:

* `manage_transform` 

The built-in `transform_admin` role has this privilege. 

For more information, see <<security-privileges>> and <<built-in-roles>>.


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

You can stop multiple {transforms} in a single API request by using a
comma-separated list of {transforms} or a wildcard expression.
All {transforms} can be stopped by using `_all` or `*` as the
`<transform_id>`.


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

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

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

`allow_no_match`::
(Optional, boolean)
include::{es-repo-dir}/rest-api/common-parms.asciidoc[tag=allow-no-match-transforms2]

`force`::
  (Optional, boolean) Set to `true` to stop a failed {transform} or to 
  forcefully stop a {transform} that did not respond to the initial stop 
  request.

`timeout`::
  (Optional, time value) If `wait_for_completion=true`, the API blocks for (at
  maximum) the specified duration while waiting for the {transform} to stop. If
  more than `timeout` time has passed, the API throws a timeout exception. Even
  if a timeout exception is thrown, the stop request is still processing and
  eventually moves the {transform} to `STOPPED`. The timeout simply means the API
  call itself timed out while waiting for the status change. Defaults to `30s`

`wait_for_completion`::
  (Optional, boolean) If set to `true`, causes the API to block until the indexer 
  state completely stops. If set to `false`, the API returns immediately and the
  indexer will be stopped asynchronously in the background. Defaults to `false`.

`wait_for_checkpoint`::
  (Optional, boolean) If set to `true`, the transform will not completely stop
  until the current checkpoint is completed. If set to `false`, the {transform}
  stops as soon as possible. Defaults to `false`.

[[stop-transform-response-codes]]
== {api-response-codes-title}

`404` (Missing resources)::
  If `allow_no_match` is `false`, this code indicates that there are no
  resources that match the request or only partial matches for the request. 


[[stop-transform-example]]
== {api-examples-title}

[source,console]
--------------------------------------------------
POST _transform/ecommerce_transform/_stop
--------------------------------------------------
// TEST[skip:set up kibana samples]

When the {transform} stops, you receive the following results:

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