[role="xpack"] [testenv="basic"] [[rollup-stop-job]] === Stop {rollup-jobs} API [subs="attributes"] ++++ Stop {rollup-jobs} ++++ Stops an existing, started {rollup-job}. experimental[] [[rollup-stop-job-request]] ==== {api-request-title} `POST _rollup/job//_stop` [[rollup-stop-job-prereqs]] ==== {api-prereq-title} * You must have `manage` or `manage_rollup` cluster privileges to use this API. For more information, see {stack-ov}/security-privileges.html[Security privileges]. [[rollup-stop-job-desc]] ===== {api-description-title} If you try to stop a job that does not exist, an exception occurs. If you try to stop a job that is already stopped, nothing happens. [[rollup-stop-job-path-parms]] ==== {api-path-parms-title} ``:: (string) Required. Identifier for the {rollup-job}. [[rollup-stop-job-query-parms]] ==== {api-query-parms-title} `timeout`:: (TimeValue) Optional. If `wait_for_completion` is `true`, the API blocks for (at maximum) the specified duration while waiting for the job to stop. If more than `timeout` time has passed, the API throws a timeout exception. Defaults to `30s`. + -- NOTE: Even if a timeout exception is thrown, the stop request is still processing and eventually moves the job to `STOPPED`. The timeout simply means the API call itself timed out while waiting for the status change. -- `wait_for_completion`:: (boolean) Optional. 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 is stopped asynchronously in the background. Defaults to `false`. [[rollup-stop-job-response-codes]] ==== {api-response-codes-title} `404` (Missing resources):: This code indicates that there are no resources that match the request. It occurs if you try to stop a job that doesn't exist. [[rollup-stop-job-examples]] ==== {api-examples-title} Since only a stopped job can be deleted, it can be useful to block the API until the indexer has fully stopped. This is accomplished with the `wait_for_completion` query parameter, and optionally a `timeout`: [source,js] -------------------------------------------------- POST _rollup/job/sensor/_stop?wait_for_completion=true&timeout=10s -------------------------------------------------- // CONSOLE // TEST[setup:sensor_started_rollup_job] The parameter blocks the API call from returning until either the job has moved to `STOPPED` or the specified time has elapsed. If the specified time elapses without the job moving to `STOPPED`, a timeout exception is thrown.