[role="xpack"] [[ml-delete-job]] = Delete {anomaly-jobs} API ++++ Delete jobs ++++ Deletes an existing {anomaly-job}. [[ml-delete-job-request]] == {api-request-title} `DELETE _ml/anomaly_detectors/` [[ml-delete-job-prereqs]] == {api-prereq-title} * Requires the `manage_ml` cluster privilege. This privilege is included in the `machine_learning_admin` built-in role. * Before you can delete a job, you must close it (unless you specify the `force` parameter). See <>. [[ml-delete-job-desc]] == {api-description-title} All job configuration, model state and results are deleted. IMPORTANT: Deleting an {anomaly-job} must be done via this API only. Do not delete the job directly from the `.ml-*` indices using the {es} delete document API. When {es} {security-features} are enabled, make sure no `write` privileges are granted to anyone over the `.ml-*` indices. It is not currently possible to delete multiple jobs using wildcards or a comma separated list. If you delete a job that has a {dfeed}, the request first tries to delete the {dfeed}. This behavior is equivalent to calling <> with the same `timeout` and `force` parameters as the delete job request. [[ml-delete-job-path-parms]] == {api-path-parms-title} ``:: (Required, string) include::{es-ref-dir}/ml/ml-shared.asciidoc[tag=job-id-anomaly-detection] [[ml-delete-job-query-parms]] == {api-query-parms-title} `force`:: (Optional, Boolean) Use to forcefully delete an opened job; this method is quicker than closing and deleting the job. `wait_for_completion`:: (Optional, Boolean) Specifies whether the request should return immediately or wait until the job deletion completes. Defaults to `true`. `delete_user_annotations`:: (Optional, Boolean) Specifies whether annotations that have been added by the user should be deleted along with any auto-generated annotations when the job is reset. Defaults to `false`. [[ml-delete-job-example]] == {api-examples-title} [source,console] -------------------------------------------------- DELETE _ml/anomaly_detectors/total-requests -------------------------------------------------- // TEST[skip:setup:server_metrics_job] When the job is deleted, you receive the following results: [source,console-result] ---- { "acknowledged": true } ---- In the next example we delete the `total-requests` job asynchronously: [source,console] -------------------------------------------------- DELETE _ml/anomaly_detectors/total-requests?wait_for_completion=false -------------------------------------------------- // TEST[skip:setup:server_metrics_job] When `wait_for_completion` is set to `false`, the response contains the id of the job deletion task: [source,console-result] ---- { "task": "oTUltX4IQMOUUVeiohTt8A:39" } ---- // TESTRESPONSE[s/"task": "oTUltX4IQMOUUVeiohTt8A:39"/"task": $body.task/]