Note - This is a BETA release feature

We've introduced a new endpoint that will help you in re-estimating arrival times for visits if your driver has fallen behind schedule or if the dispatcher makes manual changes to the routes.

https://api.routific.com/v1/min-idle

The /min-idle endpoint can be used to make manual edits to a previously optimized solution, or to get updated ETAs for your routes.

Check out our guides for more information on real-world applications of this endpoint.

📘

The /min-idle endpoint is intended to be used for estimating arrival times for your visits based on the route sequence provided in the API request. It is not meant for re-optimizing an existing solution.

The schematics of the API request is similar to that of the other API endpoints as it contains a visits, fleet, and an optional options object at the highest level.

The only addition being that it also requires a solution object that lists an array of routes with visit IDs. See the sidebar for how a solution object looks like when sending a request to /min-idle endpoint.

🚧

The solution object in the API request only supports solutions returned by the /vrp and /vrp-long endpoints.
It does not currently support solutions returned by /pdp and /pdp-long endpoints, which have a 'pickup' and 'delivery' type constraint associated with each visit.

{
    "visits": {
        "coco_and_tengtengs": {
            "duration": 10,
            "location": {
                "lat": 49.280231,
                "lng": -123.095983
            }
        },
        "sugar_and_spice": {
            "duration": 10,
            "location": {
                "lat": 49.280232,
                "lng": -123.054692
            }
        },
        "jimmy_pestos": {
            "duration": 10,
            "location": {
                "lat": 49.268199,
                "lng": -123.003409
            }
        },
        "tiny_gyoza": {
            "duration": 15,
            "location": {
                "lat": 49.215390,
                "lng": -123.091364
            }
        },
        "finnegans": {
            "duration": 10,
            "location": {
                "lat": 49.263801,
                "lng": -123.141087
            }
        }
    },
    "fleet": {
        "vehicle_1": {
            "start_location": {
                "lat": 49.2847463,
                "lng": -123.1123453
            },
            "end_location": {
                "lat": 49.2847463,
                "lng": -123.1123453
            }
        }
    },
    "solution": {
        "vehicle_1": [
            "jimmy_pestos",
            "finnegans",
            "sugar_and_spice",
            "tiny_gyoza",
            "coco_and_tengtengs"
        ]
    }
}
{
    "status": "success",
    "total_travel_time": 100,
    "total_idle_time": 0,
    "total_break_time": 0,
    "num_unserved": 0,
    "unserved": null,
    "solution": {
        "vehicle_1": [
            {
                "location_id": "vehicle_1_start",
                "location_name": "Nameless Node",
                "arrival_time": "00:00"
            },
            {
                "location_id": "jimmy_pestos",
                "location_name": "Nameless Node",
                "arrival_time": "00:18",
                "finish_time": "00:28"
            },
            {
                "location_id": "finnegans",
                "location_name": "Nameless Node",
                "arrival_time": "00:51",
                "finish_time": "01:01"
            },
            {
                "location_id": "sugar_and_spice",
                "location_name": "Nameless Node",
                "arrival_time": "01:19",
                "finish_time": "01:29"
            },
            {
                "location_id": "tiny_gyoza",
                "location_name": "Nameless Node",
                "arrival_time": "01:48",
                "finish_time": "02:03"
            },
            {
                "location_id": "coco_and_tengtengs",
                "location_name": "Nameless Node",
                "arrival_time": "02:20",
                "finish_time": "02:30"
            },
            {
                "location_id": "vehicle_1_end",
                "location_name": "Nameless Node",
                "arrival_time": "02:35"
            }
        ]
    },
    "total_working_time": 155
}

The endpoint responds with the following information based on the route sequence provided in the solution object:

  • Total driving time
  • Total distance
  • ETA for each location in the visits object.

The response also contains a boolean identifier called "too_late" that indicates whether a stop falls outside of a delivery window, and as such will be considered late by the ETA estimates.

Note: Total distance is part of the response only when the polylines parameter is enabled in the Options object.