Resolve alert
curl --request POST \
--url https://apiweb.mile.app/api/v4/alert/{id}/resolve \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"notes": "Delivery confirmed with customer."
}
'import requests
url = "https://apiweb.mile.app/api/v4/alert/{id}/resolve"
payload = { "notes": "Delivery confirmed with customer." }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({notes: 'Delivery confirmed with customer.'})
};
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 => "POST",
CURLOPT_POSTFIELDS => json_encode([
'notes' => 'Delivery confirmed with customer.'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://apiweb.mile.app/api/v4/alert/{id}/resolve"
payload := strings.NewReader("{\n \"notes\": \"Delivery confirmed with customer.\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://apiweb.mile.app/api/v4/alert/{id}/resolve")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"notes\": \"Delivery confirmed with customer.\"\n}")
.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::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"notes\": \"Delivery confirmed with customer.\"\n}"
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",
"hubId": null,
"data": {
"geofenceId": "66e0a1b2c3d4e5f6a7b8c9d0",
"geofenceName": "Warehouse A",
"geofenceGroup": "66e0a0b1c2d3e4f5a6b7c8d9"
},
"isResolved": true,
"resolvedTime": "2026-10-15T03:00:00+00:00",
"resolvedBy": "[email protected]",
"resolvedByName": "Dispatcher One",
"resolvedNotes": "Delivery confirmed with customer.",
"createdTime": "2026-10-15T02:10:02+00:00",
"updatedTime": "2026-10-15T03:00:00+00:00"
}
}{
"status": false,
"message": "Bad request - invalid parameters provided."
}{
"status": false,
"message": "Data not found"
}Alert
Resolve alert
Marks an alert as resolved by the caller, with optional notes. Linked notifications are marked resolved too. Resolving an alert that is already resolved keeps the first resolver and notes.
An alert of another organization returns 404.
Requires permission resolve/alert.
POST
/
alert
/
{id}
/
resolve
Resolve alert
curl --request POST \
--url https://apiweb.mile.app/api/v4/alert/{id}/resolve \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"notes": "Delivery confirmed with customer."
}
'import requests
url = "https://apiweb.mile.app/api/v4/alert/{id}/resolve"
payload = { "notes": "Delivery confirmed with customer." }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({notes: 'Delivery confirmed with customer.'})
};
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 => "POST",
CURLOPT_POSTFIELDS => json_encode([
'notes' => 'Delivery confirmed with customer.'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://apiweb.mile.app/api/v4/alert/{id}/resolve"
payload := strings.NewReader("{\n \"notes\": \"Delivery confirmed with customer.\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://apiweb.mile.app/api/v4/alert/{id}/resolve")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"notes\": \"Delivery confirmed with customer.\"\n}")
.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::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"notes\": \"Delivery confirmed with customer.\"\n}"
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",
"hubId": null,
"data": {
"geofenceId": "66e0a1b2c3d4e5f6a7b8c9d0",
"geofenceName": "Warehouse A",
"geofenceGroup": "66e0a0b1c2d3e4f5a6b7c8d9"
},
"isResolved": true,
"resolvedTime": "2026-10-15T03:00:00+00:00",
"resolvedBy": "[email protected]",
"resolvedByName": "Dispatcher One",
"resolvedNotes": "Delivery confirmed with customer.",
"createdTime": "2026-10-15T02:10:02+00:00",
"updatedTime": "2026-10-15T03:00:00+00:00"
}
}{
"status": false,
"message": "Bad request - invalid parameters provided."
}{
"status": false,
"message": "Data not found"
}Path Parameters
Body
application/json