EasyRoutes API

API Changelog

New features, improvements, and fixes in the EasyRoutes API.

rev bb5086d
1endpoint

Endpoint changes

Added endpoint to resync route orders

Added the POST /routes/{routeId}/resync-orders endpoint to refresh order-backed stops from Shopify with the latest fulfillment statuses, item updates, notes, and tags.

TagsRoutes
Added

Added the POST /routes/{routeId}/resync-orders endpoint to resync Shopify order data across a route's stops and return the updated route.

AffectsPOST/routes/{routeId}/resync-orders

rev 559604c
28endpoint

Endpoint changes

Added idempotency support to mutating endpoints

You can now safely retry route, stop, and webhook requests using idempotency headers. See our guide for more details.

TagsRoutes · Stops · Webhooks
Changed

Added the optional Idempotency-Key request header.

Changed

Added the Idempotency-Key response header on 200 responses.

Changed

Added the Idempotency-Replayed response header on 200 responses.

28 affected endpoints
POST/routes
POST/routes/{id}/reoptimize
PATCH/routes/{routeId}
DELETE/routes/{routeId}/dispatch
POST/routes/{routeId}/dispatch
DELETE/routes/{routeId}/driver
PUT/routes/{routeId}/driver
PATCH/routes/{routeId}/end/location
PUT/routes/{routeId}/end/tasks
PATCH/routes/{routeId}/start/location
PUT/routes/{routeId}/start/tasks
POST/routes/{routeId}/stops
DELETE/routes/{routeId}/stops/{stopIds}
PATCH/routes/{routeId}/stops/{stopId}
PUT/routes/{routeId}/stops/{stopId}/items
PATCH/routes/{routeId}/stops/{stopId}/location
PUT/routes/{routeId}/stops/{stopId}/position
PUT/routes/{routeId}/stops/{stopId}/tasks
DELETE/routes/{routeId}/vehicle
PUT/routes/{routeId}/vehicle
POST/stops/imports
DELETE/stops/imports/{id}
PATCH/stops/imports/{id}
PUT/stops/imports/{id}/items
PATCH/stops/imports/{id}/location
PUT/stops/imports/{id}/tasks
POST/webhooks
DELETE/webhooks/{id}

rev cc6f98e
5schema1endpoint

Schema changes

Added order reference URL to imported stops

You can now view an external order reference URL on imported stops.

TagsStops
Changed

Added orderReferenceUrl to provide a reference HTTPS URL for the order associated with the stop, such as a link to an order management system.

7 affected endpoints
GET/stops/imports
POST/stops/imports
GET/stops/imports/{id}
PATCH/stops/imports/{id}
PUT/stops/imports/{id}/items
PATCH/stops/imports/{id}/location
PUT/stops/imports/{id}/tasks

Imported stop update support for order reference URLs

You can now update the order reference URL for an imported stop.

TagsStops
Changed

Added the optional orderReferenceUrl request field to update the HTTPS reference link to the order in your external order management system.

AffectsPATCH/stops/imports/{id}

Added order reference URL to RouteStop

You can now view an external order reference link directly on imported route stops.

TagsRoutes · Stops
Changed

Added optional orderReferenceUrl field providing a link to the order associated with the stop in an external system for imported stops.

23 affected endpoints
GET/routes
POST/routes
GET/routes/{id}
POST/routes/{id}/reoptimize
PATCH/routes/{routeId}
DELETE/routes/{routeId}/dispatch
POST/routes/{routeId}/dispatch
DELETE/routes/{routeId}/driver
PUT/routes/{routeId}/driver
PATCH/routes/{routeId}/end/location
PUT/routes/{routeId}/end/tasks
PATCH/routes/{routeId}/start/location
PUT/routes/{routeId}/start/tasks
POST/routes/{routeId}/stops
DELETE/routes/{routeId}/stops/{stopIds}
GET/routes/{routeId}/stops/{stopId}
PATCH/routes/{routeId}/stops/{stopId}
PUT/routes/{routeId}/stops/{stopId}/items
PATCH/routes/{routeId}/stops/{stopId}/location
PUT/routes/{routeId}/stops/{stopId}/position
PUT/routes/{routeId}/stops/{stopId}/tasks
DELETE/routes/{routeId}/vehicle
PUT/routes/{routeId}/vehicle

Added order reference URL when updating route stops

You can now update the external order reference URL for an existing stop on a route.

TagsStops
Changed

Added the optional orderReferenceUrl request field to update the stop's external order reference URL, such as a link to the order in your order management system (must be a valid HTTPS URL).

AffectsPATCH/routes/{routeId}/stops/{stopId}

Added order reference URL to imported stops

You can now include an external order reference link when importing stops.

TagsStops
Changed

Added the optional orderReferenceUrl field to link an imported stop to an external order management system via an HTTPS URL.

AffectsPOST/stops/imports

Endpoint changes

Route sorting updates

You can now sort routes by their scheduled date and time.

TagsRoutes
Changed

Added the SCHEDULED_AT option to the sortKey query parameter.

AffectsGET/routes

rev 90e013a
6schema5endpoint

Schema changes

Imported Stop Update

You can now update additional stop details including timing, sequencing, and custom disclosures.

TagsStops
Changed

Add a duration to the stop.

Changed

Specify an order name.

Changed

Set a delivery date.

Changed

Define the stop type.

Changed

Include a custom signature disclosure.

AffectsPATCH/stops/imports/{id}

Route

You can now access vehicle information directly within route details.

TagsRoutes · Stops
Changed

Includes the assigned vehicle.

18 affected endpoints
GET/routes
POST/routes
GET/routes/{id}
POST/routes/{id}/reoptimize
PATCH/routes/{routeId}
DELETE/routes/{routeId}/dispatch
POST/routes/{routeId}/dispatch
DELETE/routes/{routeId}/driver
PUT/routes/{routeId}/driver
PATCH/routes/{routeId}/end/location
PUT/routes/{routeId}/end/tasks
PATCH/routes/{routeId}/start/location
PUT/routes/{routeId}/start/tasks
POST/routes/{routeId}/stops
DELETE/routes/{routeId}/stops/{stopIds}
PUT/routes/{routeId}/stops/{stopId}/position
DELETE/routes/{routeId}/vehicle
PUT/routes/{routeId}/vehicle

Endpoint changes

Unassign route vehicle

A new endpoint has been added to unassign a vehicle from a route by its ID. The response returns the updated route without an assigned vehicle.

TagsRoutes
Added

The endpoint DELETE /routes/{routeId}/vehicle has been added.

AffectsDELETE/routes/{routeId}/vehicle

List vehicles

Fetch a paginated list of vehicles associated with the shop.

TagsVehicles
Added

Added the GET /vehicles endpoint to retrieve a paginated list of vehicles.

AffectsGET/vehicles

Get vehicle

Fetch a single vehicle by ID.

TagsVehicles
Added

Added the GET /vehicles/{id} endpoint to fetch a single vehicle by ID.

AffectsGET/vehicles/{id}

Assign route vehicle

Assigns a vehicle to a route by route ID. The response will include the updated route with the new vehicle assigned.

TagsRoutes
Added

Added the PUT /routes/{routeId}/vehicle endpoint to assign a vehicle to a specific route.

AffectsPUT/routes/{routeId}/vehicle

Update imported stop tasks

Updates the tasks on an existing imported stop by ID, without needing to re-send the full stop payload via ImportStops. This is a full replacement: the entire list of tasks on the stop is replaced with the task templates provided in the request body.

TagsStops
Added

Added the PUT /stops/imports/{id}/tasks endpoint to allow full replacement of tasks on an imported stop record.

AffectsPUT/stops/imports/{id}/tasks

rev dae72f5
3schema4endpoint

Schema changes

Imported stop updates

You can now update time windows, attributes, and priority levels for imported stops.

TagsStops
Changed

Add optional time windows to the update request.

Changed

Include custom attributes when updating a stop.

Changed

Set or modify the priority level for the stop.

AffectsPATCH/stops/imports/{id}

Endpoint changes

Update imported stop location

Updates the address and/or coordinates for an imported stop by ID. This partial update modifies the imported stop record itself using a provided update mask.

TagsStops
Added

Added the UpdateImportedStopLocation endpoint to allow partial updates to an imported stop's address or coordinates.

AffectsPATCH/stops/imports/{id}/location

Update route end tasks

Updates the tasks required to complete a route by route ID. This is a full replacement: the entire list of tasks on the route end is replaced with the task templates provided in the request body, so existing tasks not included in the request will be removed. Task and item IDs are always regenerated by the server, and any existing completion state, input, or timestamps are cleared, since only the driver (via the driver app) can mark a task or item complete or provide input. The route must have an end location and must not be archived. The response returns the full updated route.

TagsRoutes
Added

Added the UpdateRouteEndTasks endpoint to replace tasks on a route's end location.

AffectsPUT/routes/{routeId}/end/tasks

Update route start tasks

Updates the tasks required before starting a route by route ID. This is a full replacement: the entire list of tasks on the route start is replaced with the task templates provided in the request body, so existing tasks not included in the request will be removed. Task and item IDs are always regenerated by the server, and any existing completion state, input, or timestamps are cleared, since only the driver (via the driver app) can mark a task or item complete or provide input. The route must not be archived. The response returns the full updated route.

TagsRoutes
Added

Added the PUT /routes/{routeId}/start/tasks endpoint.

AffectsPUT/routes/{routeId}/start/tasks

Update imported stop items

Updates the items on an existing imported stop by ID. This is a full replacement of the item list and supports both the EasyRoutes ID or a client-provided ID.

TagsStops
Added

Added the PUT /stops/imports/{id}/items endpoint to allow full replacement of items on an imported stop record.

AffectsPUT/stops/imports/{id}/items

rev 3a7e902
3endpoint

Endpoint changes

Update imported stop

Updates top-level fields on an existing imported stop by ID without requiring a full payload. This partial update applies only the fields specified in the update mask.

TagsStops
Added

Added the PATCH /stops/imports/{id} endpoint to allow partial updates to imported stops using an update mask.

AffectsPATCH/stops/imports/{id}

Update route end location

A new endpoint has been added to update the address or coordinates for a route's end location. This partial update affects distances, ETAs, and optimization status.

TagsRoutes
Added

Added the PATCH /routes/{routeId}/end/location endpoint to update or set a route's end location.

AffectsPATCH/routes/{routeId}/end/location

Update route start location

Updates the address and/or coordinates for a route's start location by route ID. This partial update requires an updateMask for address or coordinates and results in recalculated distances and ETAs.

TagsRoutes
Added

Added the PATCH /routes/{routeId}/start/location endpoint to update a route's start location address or coordinates.

AffectsPATCH/routes/{routeId}/start/location

rev 39a5531
7schema

Schema changes

RouteUpdate

You can now configure additional constraints and preferences when updating a route.

TagsRoutes
Changed

Added optional maxDuration property.

Changed

Added optional maxStops property.

Changed

Added optional maxItemCount property.

Changed

Added optional maxKilograms property.

Changed

Added optional avoidTolls property.

Changed

Added optional avoidUTurns property.

Changed

Added optional speedFactor property.

AffectsPATCH/routes/{routeId}

rev a2a8e35
1endpoint

Endpoint changes

Update route

Updates top-level fields on a route by route ID. This is a partial update: provide the fields to change in route and list their paths in updateMask. Only the paths listed in updateMask are applied; omitted fields are left unchanged. The route must not be archived. The response returns the full updated route.

TagsRoutes
Added

Added the UpdateRoute endpoint to allow partial updates to route fields using a PATCH request.

AffectsPATCH/routes/{routeId}

rev e45bc94
7schema

Schema changes

Route

Access new route constraints and routing preferences.

TagsRoutes · Stops
Changed

Added maxDuration to specify the maximum allowed time for a route.

Changed

Added maxStops to limit the number of stops on a route.

Changed

Added maxItemCount to define the maximum number of items allowed.

Changed

Added maxKilograms to set the maximum weight capacity.

Changed

Added avoidTolls to indicate if toll roads should be bypassed.

Changed

Added avoidUTurns to indicate if U-turns should be restricted.

Changed

Added speedFactor to adjust travel time calculations.

11 affected endpoints
GET/routes
POST/routes
GET/routes/{id}
POST/routes/{id}/reoptimize
DELETE/routes/{routeId}/dispatch
POST/routes/{routeId}/dispatch
DELETE/routes/{routeId}/driver
PUT/routes/{routeId}/driver
POST/routes/{routeId}/stops
DELETE/routes/{routeId}/stops/{stopIds}
PUT/routes/{routeId}/stops/{stopId}/position

rev 702a824
2endpoint

Endpoint changes

Update route stop tasks

Updates the tasks for an imported stop on a route. Allows you to set or replace the list of driver tasks for a stop that was previously imported via ImportStops.

TagsStops
Added

Added the PUT /routes/{routeId}/stops/{stopId}/tasks endpoint to allow full replacement of driver tasks for imported stops.

AffectsPUT/routes/{routeId}/stops/{stopId}/tasks

Imported stops

Retrieve a list of imported stop locations.

TagsStops
Breaking

The limit parameter now requires a minimum value of 1.

AffectsGET/stops/imports

rev ef74bb4
2schema

Schema changes

Route

Access route-level tags and default stop durations.

TagsRoutes · Stops
Changed

Added optional tags to the Route.

Changed

Added an optional default stop duration.

11 affected endpoints
GET/routes
POST/routes
GET/routes/{id}
POST/routes/{id}/reoptimize
DELETE/routes/{routeId}/dispatch
POST/routes/{routeId}/dispatch
DELETE/routes/{routeId}/driver
PUT/routes/{routeId}/driver
POST/routes/{routeId}/stops
DELETE/routes/{routeId}/stops/{stopIds}
PUT/routes/{routeId}/stops/{stopId}/position

rev 7d39caf
1schema

Schema changes

Route

You can now view additional notes associated with your routes.

TagsRoutes · Stops
Changed

Includes an optional note.

11 affected endpoints
GET/routes
POST/routes
GET/routes/{id}
POST/routes/{id}/reoptimize
DELETE/routes/{routeId}/dispatch
POST/routes/{routeId}/dispatch
DELETE/routes/{routeId}/driver
PUT/routes/{routeId}/driver
POST/routes/{routeId}/stops
DELETE/routes/{routeId}/stops/{stopIds}
PUT/routes/{routeId}/stops/{stopId}/position