Unresolve alert
curl --request DELETE \
--url https://apiweb.mile.app/api/v4/alert/{id}/resolve \
--header 'Authorization: Bearer <token>'import requests
url = "https://apiweb.mile.app/api/v4/alert/{id}/resolve"
headers = {"Authorization": "Bearer <token>"}
response = requests.delete(url, headers=headers)
print(response.text)const options = {method: 'DELETE', headers: {Authorization: 'Bearer <token>'}};
fetch('https://apiweb.mile.app/api/v4/alert/{id}/resolve', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://apiweb.mile.app/api/v4/alert/{id}/resolve",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://apiweb.mile.app/api/v4/alert/{id}/resolve"
req, _ := http.NewRequest("DELETE", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.delete("https://apiweb.mile.app/api/v4/alert/{id}/resolve")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://apiweb.mile.app/api/v4/alert/{id}/resolve")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"status": true,
"message": "Success",
"data": {
"_id": "66fb0c1d2e3f4a5b6c7d8e9f",
"organizationId": "64d99303be0ad015c461c932",
"assignee": "[email protected]",
"alertCode": "geofence.enter",
"alertName": "Geofence enter",
"lat": -6.2001,
"lon": 106.8166,
"eventTime": "2026-10-15T02:10:00+00:00",
"data": {
"geofenceId": "66e0a1b2c3d4e5f6a7b8c9d0",
"geofenceName": "Warehouse A",
"geofenceGroup": "66e0a0b1c2d3e4f5a6b7c8d9"
},
"isResolved": false,
"resolvedTime": null,
"resolvedBy": null,
"resolvedByName": null,
"resolvedNotes": null,
"createdTime": "2026-10-15T02:10:02+00:00",
"updatedTime": "2026-10-15T03:05:00+00:00"
}
}{
"status": false,
"message": "Data not found"
}Alert
Unresolve alert
Clears the resolution of an alert (resolver, time and notes) so it is unresolved again. Linked notifications are updated too. Calling it on an unresolved alert changes nothing and still returns 200.
An alert of another organization returns 404.
Requires permission resolve/alert.
DELETE
/
alert
/
{id}
/
resolve
Unresolve alert
curl --request DELETE \
--url https://apiweb.mile.app/api/v4/alert/{id}/resolve \
--header 'Authorization: Bearer <token>'import requests
url = "https://apiweb.mile.app/api/v4/alert/{id}/resolve"
headers = {"Authorization": "Bearer <token>"}
response = requests.delete(url, headers=headers)
print(response.text)const options = {method: 'DELETE', headers: {Authorization: 'Bearer <token>'}};
fetch('https://apiweb.mile.app/api/v4/alert/{id}/resolve', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://apiweb.mile.app/api/v4/alert/{id}/resolve",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://apiweb.mile.app/api/v4/alert/{id}/resolve"
req, _ := http.NewRequest("DELETE", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.delete("https://apiweb.mile.app/api/v4/alert/{id}/resolve")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://apiweb.mile.app/api/v4/alert/{id}/resolve")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"status": true,
"message": "Success",
"data": {
"_id": "66fb0c1d2e3f4a5b6c7d8e9f",
"organizationId": "64d99303be0ad015c461c932",
"assignee": "[email protected]",
"alertCode": "geofence.enter",
"alertName": "Geofence enter",
"lat": -6.2001,
"lon": 106.8166,
"eventTime": "2026-10-15T02:10:00+00:00",
"data": {
"geofenceId": "66e0a1b2c3d4e5f6a7b8c9d0",
"geofenceName": "Warehouse A",
"geofenceGroup": "66e0a0b1c2d3e4f5a6b7c8d9"
},
"isResolved": false,
"resolvedTime": null,
"resolvedBy": null,
"resolvedByName": null,
"resolvedNotes": null,
"createdTime": "2026-10-15T02:10:02+00:00",
"updatedTime": "2026-10-15T03:05:00+00:00"
}
}{
"status": false,
"message": "Data not found"
}Authorizations
Use a valid Bearer token to authenticate.
Path Parameters
Unique identifier of the alert, generated by the system.
Example: 66fb0c1d2e3f4a5b6c7d8e9f