What a route is
The core of a route is itsstops array, which lists the locations to visit in order. Each stop details:
- The kind of stop (
stopType) - Associated items (
objectIds) - Timing estimates (
arrivalTime,departTime,serviceTime) - Travel details from the prior stop (
distanceFromPrevious,durationFromPrevious) - The physical coordinates (
location)
GET /v1/routes/{id}).
Creating & updating routes
Use Create or Update Route (POST /v1/routes) to create a new route or update an existing one by providing the route configuration and its stop details. This is the manual path: you supply the ordered stops yourself.
You can recalculate timing for a route with POST /v1/routes/{id}/calculate-timing, which computes per-stop ETAs and a polyline using truck routing, updating each stop’s arrival and departure times and returning the route polyline.
You don’t have to build routes by hand. Route optimization generates routes for you from a set of orders, and can save them as route objects you then dispatch.
Naming a route
A route carries an optionalname — a label a dispatcher recognizes, as opposed to the generated identifier. Set it on Create or Update Route, or from the Portal: the Execute page has a Rename route action, and splitting stops into a new route lets you name that route as you create it. Renaming works after dispatch too, so a route can be relabeled once you see how the day is actually running. Clear the name and displays fall back to the route’s external identifier.
Dispatching routes
Once a route is planned, dispatch it with Dispatch Routes (POST /v1/routes/dispatch). This creates jobs for each route and assigns them based on your organization’s dispatch strategy.
Pass the route IDs to dispatch:
When
autoDispatch is true, the resulting jobs are sent to a provider immediately according to your dispatch strategy. Set it to false to create the jobs without dispatching them right away.
Watching routes on the Execute page
Once routes are dispatched, the Execute page in the Portal is where you watch them run. It lists dispatched routes for a date range, and every part of it exists to be narrowed until it shows the routes you’re responsible for. Pick the day first. Execute opens on today. The date control leads with Today, Yesterday, Tomorrow, and This week, each applying the moment you choose it. Custom opens a calendar, and nothing moves until you apply the range. A link carrying its own dates still wins over the default, and so does a saved view. Then narrow it. Filters are grouped by what a dispatcher is deciding — route operations, assignment, orders and locations, and package — rather than by which object each field happens to belong to. Among them are driver group and courier, so someone who owns one group can work only their own routes. Selections are held in the URL and in saved views, which makes a narrowed queue something you can send to a colleague. Check whether the driver is moving. Each assigned driver carries a location freshness reading beneath their name, both in the table and in the route detail panel. A location counts as live through 15 minutes and after that reads as not live, with its age — the same rule the delivery map uses. Select the reading to open a small map at the driver’s last known position. Turn off what you don’t use. The map view, the timeline view, and the KPI cards at the top of the page can each be switched off for the whole organization under Organization settings → Products → Execute. All three start on, so turning one off is the opt-out — for teams who find the full page busier than their work needs. A link that asks for a view you’ve turned off still resolves; it falls back to the table.Remove an order from dispatch
You can remove a dispatched, route-based order by either identifier:- Remove by external ID:
POST /v1/orders/external-identifier/{external_id}/undispatch - Remove by Nash order ID:
POST /v1/orders/{order_id}/undispatch
status: valid. The request has no body.
These operations apply only to an order that is currently dispatched and associated with a route. A standalone order or an order that has not been dispatched returns an error.
Routes vs. route optimization
It’s worth separating two related concepts:- A route is the data object — a defined, ordered sequence of stops. You can author routes directly via the API.
- Route optimization is the engine that produces routes. Given a set of orders and your fleet constraints, the optimizer solves the Vehicle Routing Problem (VRP) — balancing capacity, time windows, driver shifts and breaks, vehicle profiles, traffic, and cost — and returns efficient routes.
Next steps
Create or update route
Build or modify a route and its stops.
Get route
Retrieve a route’s stops, metrics, and orders.
Dispatch routes
Turn routes into jobs and dispatch them.
Remove an order from dispatch
Return a route-based order to a valid, pre-dispatch state.
Route optimization
Generate optimized routes from a set of orders.