VERSO route optimization API (1.0.0)

Documentation for VERSO route optimization API to solve vehicle routing problems.

  • All durations and timestamps are seconds
  • All distances are meters
  • The expected order for all coordinates arrays is [lon, lat]
  • A task means either a job (see job schema), a pickup or a delivery (see shipment schema).

Authentication

ApiKeyAuth

Security Scheme Type API Key
Query parameter name: api_key

Route optimization endpoints

Our two endpoints cover different use-cases:

  • solve computes a solution to the provided vehicle routing problem, deciding how to assign tasks to vehicles and order routes to match all constraints while minimizing cost
  • plan ingests a set of pre-ordered routes and outputs ETA for all tasks in a way that minimizes potential time window violations. Constraint violations are reported for all routes so this endpoint can be used to evaluate the validity of any solution.

Retrieve a set of routes optimizing task assignment and ordering.

Authorizations:
Request Body schema: application/json

The available fleet is described in input using vehicle objects. The geolocated tasks to perform can be either described as:

  • job objects, modeling an operation taking place at a single location

  • shipment objects, modeling a typical pickup & delivery situation with two locations (pickup and delivery happen "en route", in the same route and in the right order).

    Both jobs and shipments arrays are optional and any mix of task types is allowed.

Array of objects (job)
Array of objects (shipment)
Array of objects (vehicle) non-empty

Responses

Request samples

Content type
application/json
{
  • "vehicles": [
    ],
  • "jobs": [
    ],
  • "shipments": [
    ]
}

Response samples

Content type
application/json
{
  • "code": 0,
  • "summary": {
    },
  • "unassigned": [ ],
  • "routes": [
    ]
}

Process pre-ordered routes to provide ETA for all route steps and report all constraints violations.

Authorizations:
Request Body schema: application/json

The route schedule in response will match the ordering of tasks assigned to vehicles in input. ETA are determined in order to minimize potential time window violations. Input and output format are similar to the /solve endpoint, except that:

  • forcing the ordering of tasks in vehicle routes happens with the steps key for vehicles
  • violations arrays in output may be non-empty to provide feedback on constraints violations.
Array of objects (job)
Array of objects (shipment)
Array of objects (vehicle) non-empty

Responses

Request samples

Content type
application/json
{
  • "vehicles": [
    ],
  • "jobs": [
    ]
}

Response samples

Content type
application/json
{
  • "code": 0,
  • "summary": {
    },
  • "unassigned": [ ],
  • "routes": [
    ]
}