[role="xpack"]
[testenv="platinum"]
[[ml-delete-job]]
=== Delete jobs API
++++
Delete jobs
++++
Deletes an existing anomaly detection job.
==== Request
`DELETE _ml/anomaly_detectors/`
==== Description
All job configuration, model state and results are deleted.
IMPORTANT: Deleting a job must be done via this API only. Do not delete the
job directly from the `.ml-*` indices using the Elasticsearch delete document
API. When {es} {security-features} are enabled, make sure no `write` privileges
are granted to anyone over the `.ml-*` indices.
Before you can delete a job, you must delete the {dfeeds} that are associated
with it. See <>. Unless the `force` parameter
is used the job must be closed before it can be deleted.
It is not currently possible to delete multiple jobs using wildcards or a comma
separated list.
==== Path Parameters
`job_id` (required)::
(string) Identifier for the job
===== Query Parameters
`force`::
(boolean) Use to forcefully delete an opened job; this method is quicker than
closing and deleting the job.
`wait_for_completion`::
(boolean) Specifies whether the request should return immediately or wait
until the job deletion completes. Defaults to `true`.
==== Authorization
If {es} {security-features} are enabled, you must have `manage_ml`, or `manage`
cluster privileges to use this API.
For more information, see {stack-ov}/security-privileges.html[Security Privileges].
==== Examples
The following example deletes the `total-requests` job:
[source,js]
--------------------------------------------------
DELETE _ml/anomaly_detectors/total-requests
--------------------------------------------------
// CONSOLE
// TEST[skip:setup:server_metrics_job]
When the job is deleted, you receive the following results:
[source,js]
----
{
"acknowledged": true
}
----
// TESTRESPONSE
In the next example we delete the `total-requests` job asynchronously:
[source,js]
--------------------------------------------------
DELETE _ml/anomaly_detectors/total-requests?wait_for_completion=false
--------------------------------------------------
// CONSOLE
// 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,js]
----
{
"task": "oTUltX4IQMOUUVeiohTt8A:39"
}
----
// TESTRESPONSE[s/"task": "oTUltX4IQMOUUVeiohTt8A:39"/"task": $body.task/]