Read routing schedule
curl --request GET \
--url https://apiweb.mile.app/api/v3/routing/schedules \
--header 'Authorization: Bearer <token>'import requests
url = "https://apiweb.mile.app/api/v3/routing/schedules"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://apiweb.mile.app/api/v3/routing/schedules', 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/v3/routing/schedules",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
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/v3/routing/schedules"
req, _ := http.NewRequest("GET", 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.get("https://apiweb.mile.app/api/v3/routing/schedules")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://apiweb.mile.app/api/v3/routing/schedules")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"status": true,
"message": "Success",
"routingSchedules": {
"current_page": 1,
"data": [
{
"_id": "66f0a1b2c3d4e5f600000001",
"organizationId": "65a1b2c3d4e5f60000000001",
"hubId": "65b2c3d4e5f6000000000002",
"configurationId": "65c3a1b2c3d4e5f600000009",
"name": "Morning Routing Jakarta",
"autoDispatch": true,
"periode": "daily",
"frequency": null,
"interval": null,
"startTime": "2026-09-10 00:00",
"endTime": "2026-12-31 23:59",
"schedules": [
{
"time": [
"08:00"
]
}
],
"timeSchedules": [
"08:00"
],
"isDeleted": false,
"createdBy": "ops@acme.com",
"createdTime": "2026-09-09T10:00:00+00:00",
"updatedTime": "2026-09-09T10:00:00+00:00",
"logExecuted": {
"status": "SUCCESS",
"reason": null,
"message": "Success",
"resultId": "66f0b9c8d7e6f5a400000042",
"visitFetched": 342,
"visitTruncated": false,
"visitWithoutCoordinate": 3,
"vehicleTotal": 8,
"dispatch": {
"executed": true,
"success": 339,
"failed": 0
},
"lastExecute": "2026-09-10 08:00:04"
}
}
],
"first_page_url": "https://apiweb.mile.app/api/v3/routing/schedules?page=1",
"from": 1,
"last_page": 1,
"last_page_url": "https://apiweb.mile.app/api/v3/routing/schedules?page=1",
"next_page_url": null,
"path": "https://apiweb.mile.app/api/v3/routing/schedules",
"per_page": 20,
"prev_page_url": null,
"to": 1,
"total": 1
},
"dataVersion": "1789000000"
}{
"status": false,
"message": "Access denied. You do not have permission for view routing schedule. Please contact your admin to request access.",
"failedCode": "sys-035"
}{
"status": false,
"message": "The selected status is invalid.",
"errors": {
"status": [
"The selected status is invalid."
]
},
"failedCode": "sched-001"
}{
"status": false,
"message": "Internal server error, please contact support@mile.app."
}Routing Schedule
Read routing schedule
Retrieves the routing schedules of your organization, with the outcome of the last run of each one in logExecuted.
Requires the view/routing-schedule permission.
GET
/
routing
/
schedules
Read routing schedule
curl --request GET \
--url https://apiweb.mile.app/api/v3/routing/schedules \
--header 'Authorization: Bearer <token>'import requests
url = "https://apiweb.mile.app/api/v3/routing/schedules"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://apiweb.mile.app/api/v3/routing/schedules', 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/v3/routing/schedules",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
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/v3/routing/schedules"
req, _ := http.NewRequest("GET", 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.get("https://apiweb.mile.app/api/v3/routing/schedules")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://apiweb.mile.app/api/v3/routing/schedules")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"status": true,
"message": "Success",
"routingSchedules": {
"current_page": 1,
"data": [
{
"_id": "66f0a1b2c3d4e5f600000001",
"organizationId": "65a1b2c3d4e5f60000000001",
"hubId": "65b2c3d4e5f6000000000002",
"configurationId": "65c3a1b2c3d4e5f600000009",
"name": "Morning Routing Jakarta",
"autoDispatch": true,
"periode": "daily",
"frequency": null,
"interval": null,
"startTime": "2026-09-10 00:00",
"endTime": "2026-12-31 23:59",
"schedules": [
{
"time": [
"08:00"
]
}
],
"timeSchedules": [
"08:00"
],
"isDeleted": false,
"createdBy": "ops@acme.com",
"createdTime": "2026-09-09T10:00:00+00:00",
"updatedTime": "2026-09-09T10:00:00+00:00",
"logExecuted": {
"status": "SUCCESS",
"reason": null,
"message": "Success",
"resultId": "66f0b9c8d7e6f5a400000042",
"visitFetched": 342,
"visitTruncated": false,
"visitWithoutCoordinate": 3,
"vehicleTotal": 8,
"dispatch": {
"executed": true,
"success": 339,
"failed": 0
},
"lastExecute": "2026-09-10 08:00:04"
}
}
],
"first_page_url": "https://apiweb.mile.app/api/v3/routing/schedules?page=1",
"from": 1,
"last_page": 1,
"last_page_url": "https://apiweb.mile.app/api/v3/routing/schedules?page=1",
"next_page_url": null,
"path": "https://apiweb.mile.app/api/v3/routing/schedules",
"per_page": 20,
"prev_page_url": null,
"to": 1,
"total": 1
},
"dataVersion": "1789000000"
}{
"status": false,
"message": "Access denied. You do not have permission for view routing schedule. Please contact your admin to request access.",
"failedCode": "sys-035"
}{
"status": false,
"message": "The selected status is invalid.",
"errors": {
"status": [
"The selected status is invalid."
]
},
"failedCode": "sched-001"
}{
"status": false,
"message": "Internal server error, please contact support@mile.app."
}Authorizations
Use a valid Bearer token to authenticate.
Query Parameters
The page number of results to retrieve. Example: 2
Maximum number of schedules to retrieve in a single request. Example: 50. Default: 20. Maximum: 100
Required range:
1 <= x <= 100Filter by schedule name, matching any part of it. Example: morning
Filter by the Configuration Profile the schedule uses. Example: 65c3a1b2c3d4e5f600000009
Filter by the outcome of the last run. Example: SKIPPED
Available options:
SUCCESS, ONGOING, SKIPPED, FAILED Field the result-set is sorted on. Example: name. Default: createdTime
Available options:
createdTime, name Ascending or descending order for the sorting. Example: asc. Default: desc
Available options:
asc, desc Response
Success