Sequence Routes
POST
https://routecloud.telogis.com/v1/sequence.- Authentication required.
- Request body: sequence_request.
- Response body: If
wait=1
specified, returns the task result (see below). Otherwise, returns a task_redirect_response. - Task result: If return_request is
true
, returns a problem. Otherwise, returns a sequence_response.
Sequencing routes reorders the jobs on each route to minimize their costs. Sequencing is useful when you want to minimize cost without allowing stops to move to other routes. Sequencing is very fast and takes only a few seconds, even for large requests.
Query Parameters
wait=1
- Optional. Wait until thesequence
completes before returning the result. See Retrieving API Results.
Status codes
200
- Success.302
- Ifwait=1
was provided and thesequence
result is not yet available, a redirect is sent instead of a normal result every 15 seconds to refresh the HTTP timeout. See Retrieving API Results.400
- The input problem is invalid. The response is an error_response.401
- Authentication required.429
- Exceeded usage limits.
sequence_request
The sequence_request
type inherits all fields from problem.
Name | Type | Description |
---|---|---|
custom | custom | Inherited. User-supplied custom fields that are returned unmodified in the response. These have no effect on optimization. |
drivers | driver[] | Inherited. If specified, the drivers involved in this sequence call. |
id | string | Inherited. An identifier for the request. See Request IDs. |
jobs | job[] | Inherited. The jobs involved in this sequence call. |
markers | marker[] | Inherited. The markers involved in this request. If defined here, markers can be referenced by id elsewhere; for example, job.location. |
name | string | Inherited. A name for the request. See Request IDs. |
return_request | boolean | Optional. Defines if the original request, with calculated values, is returned as the response. If not, a Sequence Response is returned. See Full vs Partial Responses. Defaults to false . |
routes | route[] | Inherited. The routes with existing stops to be sequenced. |
schedules | schedule[] | Inherited. If specified, applies recurring schedule constraints to the jobs. |
settings | settings | Inherited. The settings to apply during the sequence call. |
vehicles | vehicle[] | The vehicles involved in this optimization problem. If defined here, vehicles can be referenced by id elsewhere; for example, route.vehicle. |
{
"id": "request+1234567",
"name": "territory1",
"routes": [
{
"id": "route0",
"start_time": "08:30",
"max_working_time": "09:00",
"location": "-43.552723, 172.634758",
"jobs": [
{ "id": "job0", "time_on_site": "00:10", "location": "-43.549062, 172.642059" },
{ "id": "job1", "time_on_site": "00:10", "location": "-43.544839, 172.628252" },
{ "id": "job2", "time_on_site": "00:15", "location": "-43.551746, 172.610160" },
{ "id": "job3", "time_on_site": "00:18", "location": "-43.522026, 172.630837" },
{ "id": "job4", "location": "-43.511665, 172.598252" }
]
}
]
}
An example sequence request.
sequence_response
Note
The result of a sequence is a problem instead of a sequence_response
, if return_request
was set to true
on the input.
The sequence_response
type inherits all fields from problem_response.
Name | Type | Description |
---|---|---|
custom | custom | Inherited. User-supplied custom fields that were sent in the request. |
routes | route_response[] | Inherited. The routes with reordered jobs. |
schedules | schedule_response[] | Inherited. Schedules that had their base dates assigned, if any. See Routing with Schedules. |
{
"routes": [
{
"id": "route0",
"cost": 28.13,
"internal_cost": 146.1,
"distance_meters": 17652.0,
"working_time": "01:38:24",
"driving_time": "00:45:24",
"stops": [
{
"location": "-43.552723,172.634758",
"type": "depot",
"arrival_time": "08:30:00",
"time_on_site": "00:00:00",
"distance_to_meters": 0.0,
"time_to": "00:00:00"
},
{
"type": "job",
"id": "job0",
"arrival_time": "08:33:16",
"time_on_site": "00:10:00",
"distance_to_meters": 992.0,
"time_to": "00:03:16"
},
{
"type": "job",
"id": "job1",
"arrival_time": "08:46:54",
"time_on_site": "00:10:00",
"distance_to_meters": 1726.0,
"time_to": "00:03:38"
},
{
"type": "job",
"id": "job3",
"arrival_time": "09:05:08",
"time_on_site": "00:18:00",
"distance_to_meters": 2872.0,
"time_to": "00:08:14"
},
{
"type": "job",
"id": "job4",
"arrival_time": "09:32:04",
"time_on_site": "00:00:00",
"distance_to_meters": 3710.0,
"time_to": "00:08:56"
},
{
"type": "job",
"id": "job2",
"arrival_time": "09:46:22",
"time_on_site": "00:15:00",
"distance_to_meters": 5432.0,
"time_to": "00:14:18"
},
{
"location": "-43.552723,172.634758",
"type": "depot",
"arrival_time": "10:08:24",
"time_on_site": "00:00:00",
"distance_to_meters": 2920.0,
"time_to": "00:07:02"
}
]
}
]
}
An example sequence response.