EasyRoutes API

Update imported stop tasks

PUT
/stops/imports/{id}/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. 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 ID can be the EasyRoutes id returned on import or the client-provided clientStopId. Note that this only updates the imported stop record; if the stop has already been added to a route, use UpdateRouteStopTasks to update its tasks on that route.

Authorization

bearerAuth
AuthorizationBearer <token>

Access token from /authenticate

In: header

Path Parameters

id*string

The ID of the imported stop to update tasks for. You provide the EasyRoutes id returned on import or the client-provided clientStopId.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

[index: integer]?

A template for creating tasks at a stop. Task templates may have one or more items for CHECKBOXES or RADIO_BUTTONS. Imported stops may have task templates that are used to create tasks when the stop is added to a route.

Response Body

application/json

application/json

curl -X PUT "https://example.com/stops/imports/ist-123e4567-e89b-12d3-a456-426614174000/tasks" \  -H "Content-Type: application/json" \  -d '[    {}  ]'
{  "id": "ist-123e4567-e89b-12d3-a456-426614174000",  "clientStopId": "test-order-1234",  "address": {    "address1": "123 Main St",    "address2": "Apt 3B",    "city": "New York",    "provinceCode": "NY",    "countryCode": "US",    "zip": "10001"  },  "contact": {    "firstName": "John",    "lastName": "Doe",    "company": "Roundtrip Systems Inc",    "phone": "+14265551000",    "email": "john.doe@roundtrip.ai"  },  "coordinates": {    "latitude": 40.7128,    "longitude": -74.006  },  "items": [    {      "name": "Bananas",      "quantity": 5,      "grams": 500,      "sku": "BANANA-001"    }  ],  "note": "Leave at door.",  "duration": "300s",  "priority": 5,  "orderName": "#1234",  "importedAt": "2026-03-28T10:00:00Z",  "timeWindows": [    {      "start": {        "hours": 9      },      "end": {        "hours": 17      }    }  ],  "deliveryDate": {    "year": 2025,    "month": 12,    "day": 16  },  "attributes": [    {      "key": "color",      "value": "blue"    }  ],  "tags": [    "foo",    "bar"  ],  "tasks": [    {      "title": "Delivery checklist",      "type": "CHECKBOXES",      "items": [        {          "title": "Pick up package"        }      ],      "requiredToMarkStopAsDelivered": true,      "requiredToMarkStopAsAttempted": true    }  ],  "type": "DELIVERY",  "customSignatureDisclosure": "I acknowledge that I have received this delivery."}
{  "code": 0,  "message": "string",  "details": [    {      "@type": "string"    }  ]}