API Endpoints

This page describes the API Endpoints available on the instance.

API Base URL for on-premise instances: http://localhost:3000 unless changed in the compose file.

Customer Object

Name
Type
Description

demand

Integer

Demand value,

dueTime

Integer

Due time

number

Integer

Customer number, E.g., 1

readyTime

Integer

Ready time

serviceTime

Integer

Time taken to service the customer

xCoordinate

Integer

Location of customer on X-Axis

yCoordinate

Integer

Location of customer on Y-Axis

Vehicle Object

Name
Type
Description

capacity

Integer

Capacity of the vehicle

number

Integer

Vehicle number

Distribution Object

Name
Type
Description

customers

Customer[]

Array of customer objects

depot

Customer

Customer object for the depot

label

String

Label identifying the distribution

vehicle

Vehicle

The vehicle object

Route Object

Name
Type
Description

customerNumbers

Integer[]

Array of integers (each integer maps to a customer number)

routeNumber

Integer

Number identifying the route

Solution Object

Name
Type
Description

cost

Integer

Total cost of the solution

routes

Route[]

Array of routes

Create or update an entry

POST /api/upsert/:label

A single entry consists of the distribution and the solution, both. This route allows you to create new entries or update existing entries. Each entry is uniquely identified using its label.

Path Parameters

Name
Value

label

Unique label identifying an entry

Headers

Name
Value

Content-Type

application/json

Body

Name
Type
Description

distribution

object

The distribution object

solution

object

The solution object

description

string

(Optional) Description for the entry

Response

{
    "msg": "Record inserted / updated successfully",
    "success": true
}
Example JSON Body
Example JSON Body
{
    "description": "Super secret capybara label",
    "distribution": {
        "customers": [
            {
                "demand": 10,
                "dueTime": 967,
                "number": 1,
                "readyTime": 912,
                "serviceTime": 90,
                "xCoordinate": 45,
                "yCoordinate": 68
            },
            {
                "demand": 30,
                "dueTime": 870,
                "number": 2,
                "readyTime": 825,
                "serviceTime": 90,
                "xCoordinate": 45,
                "yCoordinate": 70
            },
            {
                "demand": 10,
                "dueTime": 146,
                "number": 3,
                "readyTime": 65,
                "serviceTime": 90,
                "xCoordinate": 42,
                "yCoordinate": 66
            },
            {
                "demand": 10,
                "dueTime": 782,
                "number": 4,
                "readyTime": 727,
                "serviceTime": 90,
                "xCoordinate": 42,
                "yCoordinate": 68
            },
            {
                "demand": 10,
                "dueTime": 67,
                "number": 5,
                "readyTime": 15,
                "serviceTime": 90,
                "xCoordinate": 42,
                "yCoordinate": 65
            },
            {
                "demand": 20,
                "dueTime": 702,
                "number": 6,
                "readyTime": 621,
                "serviceTime": 90,
                "xCoordinate": 40,
                "yCoordinate": 69
            },
            {
                "demand": 20,
                "dueTime": 225,
                "number": 7,
                "readyTime": 170,
                "serviceTime": 90,
                "xCoordinate": 40,
                "yCoordinate": 66
            },
            {
                "demand": 20,
                "dueTime": 324,
                "number": 8,
                "readyTime": 255,
                "serviceTime": 90,
                "xCoordinate": 38,
                "yCoordinate": 68
            },
            {
                "demand": 10,
                "dueTime": 605,
                "number": 9,
                "readyTime": 534,
                "serviceTime": 90,
                "xCoordinate": 38,
                "yCoordinate": 70
            },
            {
                "demand": 10,
                "dueTime": 410,
                "number": 10,
                "readyTime": 357,
                "serviceTime": 90,
                "xCoordinate": 35,
                "yCoordinate": 66
            },
            {
                "demand": 10,
                "dueTime": 505,
                "number": 11,
                "readyTime": 448,
                "serviceTime": 90,
                "xCoordinate": 35,
                "yCoordinate": 69
            },
            {
                "demand": 20,
                "dueTime": 721,
                "number": 12,
                "readyTime": 652,
                "serviceTime": 90,
                "xCoordinate": 25,
                "yCoordinate": 85
            },
            {
                "demand": 30,
                "dueTime": 92,
                "number": 13,
                "readyTime": 30,
                "serviceTime": 90,
                "xCoordinate": 22,
                "yCoordinate": 75
            },
            {
                "demand": 10,
                "dueTime": 620,
                "number": 14,
                "readyTime": 567,
                "serviceTime": 90,
                "xCoordinate": 22,
                "yCoordinate": 85
            },
            {
                "demand": 40,
                "dueTime": 429,
                "number": 15,
                "readyTime": 384,
                "serviceTime": 90,
                "xCoordinate": 20,
                "yCoordinate": 80
            },
            {
                "demand": 40,
                "dueTime": 528,
                "number": 16,
                "readyTime": 475,
                "serviceTime": 90,
                "xCoordinate": 20,
                "yCoordinate": 85
            },
            {
                "demand": 20,
                "dueTime": 148,
                "number": 17,
                "readyTime": 99,
                "serviceTime": 90,
                "xCoordinate": 18,
                "yCoordinate": 75
            },
            {
                "demand": 20,
                "dueTime": 254,
                "number": 18,
                "readyTime": 179,
                "serviceTime": 90,
                "xCoordinate": 15,
                "yCoordinate": 75
            },
            {
                "demand": 10,
                "dueTime": 345,
                "number": 19,
                "readyTime": 278,
                "serviceTime": 90,
                "xCoordinate": 15,
                "yCoordinate": 80
            },
            {
                "demand": 10,
                "dueTime": 73,
                "number": 20,
                "readyTime": 10,
                "serviceTime": 90,
                "xCoordinate": 30,
                "yCoordinate": 50
            },
            {
                "demand": 20,
                "dueTime": 965,
                "number": 21,
                "readyTime": 914,
                "serviceTime": 90,
                "xCoordinate": 30,
                "yCoordinate": 52
            },
            {
                "demand": 20,
                "dueTime": 883,
                "number": 22,
                "readyTime": 812,
                "serviceTime": 90,
                "xCoordinate": 28,
                "yCoordinate": 52
            },
            {
                "demand": 10,
                "dueTime": 777,
                "number": 23,
                "readyTime": 732,
                "serviceTime": 90,
                "xCoordinate": 28,
                "yCoordinate": 55
            },
            {
                "demand": 10,
                "dueTime": 144,
                "number": 24,
                "readyTime": 65,
                "serviceTime": 90,
                "xCoordinate": 25,
                "yCoordinate": 50
            },
            {
                "demand": 40,
                "dueTime": 224,
                "number": 25,
                "readyTime": 169,
                "serviceTime": 90,
                "xCoordinate": 25,
                "yCoordinate": 52
            },
            {
                "demand": 10,
                "dueTime": 701,
                "number": 26,
                "readyTime": 622,
                "serviceTime": 90,
                "xCoordinate": 25,
                "yCoordinate": 55
            },
            {
                "demand": 10,
                "dueTime": 316,
                "number": 27,
                "readyTime": 261,
                "serviceTime": 90,
                "xCoordinate": 23,
                "yCoordinate": 52
            },
            {
                "demand": 20,
                "dueTime": 593,
                "number": 28,
                "readyTime": 546,
                "serviceTime": 90,
                "xCoordinate": 23,
                "yCoordinate": 55
            },
            {
                "demand": 10,
                "dueTime": 405,
                "number": 29,
                "readyTime": 358,
                "serviceTime": 90,
                "xCoordinate": 20,
                "yCoordinate": 50
            },
            {
                "demand": 10,
                "dueTime": 504,
                "number": 30,
                "readyTime": 449,
                "serviceTime": 90,
                "xCoordinate": 20,
                "yCoordinate": 55
            },
            {
                "demand": 20,
                "dueTime": 237,
                "number": 31,
                "readyTime": 200,
                "serviceTime": 90,
                "xCoordinate": 10,
                "yCoordinate": 35
            },
            {
                "demand": 30,
                "dueTime": 100,
                "number": 32,
                "readyTime": 31,
                "serviceTime": 90,
                "xCoordinate": 10,
                "yCoordinate": 40
            },
            {
                "demand": 40,
                "dueTime": 158,
                "number": 33,
                "readyTime": 87,
                "serviceTime": 90,
                "xCoordinate": 8,
                "yCoordinate": 40
            },
            {
                "demand": 20,
                "dueTime": 816,
                "number": 34,
                "readyTime": 751,
                "serviceTime": 90,
                "xCoordinate": 8,
                "yCoordinate": 45
            },
            {
                "demand": 10,
                "dueTime": 344,
                "number": 35,
                "readyTime": 283,
                "serviceTime": 90,
                "xCoordinate": 5,
                "yCoordinate": 35
            },
            {
                "demand": 10,
                "dueTime": 716,
                "number": 36,
                "readyTime": 665,
                "serviceTime": 90,
                "xCoordinate": 5,
                "yCoordinate": 45
            },
            {
                "demand": 20,
                "dueTime": 434,
                "number": 37,
                "readyTime": 383,
                "serviceTime": 90,
                "xCoordinate": 2,
                "yCoordinate": 40
            },
            {
                "demand": 30,
                "dueTime": 522,
                "number": 38,
                "readyTime": 479,
                "serviceTime": 90,
                "xCoordinate": 0,
                "yCoordinate": 40
            },
            {
                "demand": 20,
                "dueTime": 624,
                "number": 39,
                "readyTime": 567,
                "serviceTime": 90,
                "xCoordinate": 0,
                "yCoordinate": 45
            },
            {
                "demand": 10,
                "dueTime": 321,
                "number": 40,
                "readyTime": 264,
                "serviceTime": 90,
                "xCoordinate": 35,
                "yCoordinate": 30
            },
            {
                "demand": 10,
                "dueTime": 235,
                "number": 41,
                "readyTime": 166,
                "serviceTime": 90,
                "xCoordinate": 35,
                "yCoordinate": 32
            },
            {
                "demand": 20,
                "dueTime": 149,
                "number": 42,
                "readyTime": 68,
                "serviceTime": 90,
                "xCoordinate": 33,
                "yCoordinate": 32
            },
            {
                "demand": 10,
                "dueTime": 80,
                "number": 43,
                "readyTime": 16,
                "serviceTime": 90,
                "xCoordinate": 33,
                "yCoordinate": 35
            },
            {
                "demand": 10,
                "dueTime": 412,
                "number": 44,
                "readyTime": 359,
                "serviceTime": 90,
                "xCoordinate": 32,
                "yCoordinate": 30
            },
            {
                "demand": 10,
                "dueTime": 600,
                "number": 45,
                "readyTime": 541,
                "serviceTime": 90,
                "xCoordinate": 30,
                "yCoordinate": 30
            },
            {
                "demand": 30,
                "dueTime": 509,
                "number": 46,
                "readyTime": 448,
                "serviceTime": 90,
                "xCoordinate": 30,
                "yCoordinate": 32
            },
            {
                "demand": 10,
                "dueTime": 1127,
                "number": 47,
                "readyTime": 1054,
                "serviceTime": 90,
                "xCoordinate": 30,
                "yCoordinate": 35
            },
            {
                "demand": 10,
                "dueTime": 693,
                "number": 48,
                "readyTime": 632,
                "serviceTime": 90,
                "xCoordinate": 28,
                "yCoordinate": 30
            },
            {
                "demand": 10,
                "dueTime": 1066,
                "number": 49,
                "readyTime": 1001,
                "serviceTime": 90,
                "xCoordinate": 28,
                "yCoordinate": 35
            },
            {
                "demand": 10,
                "dueTime": 880,
                "number": 50,
                "readyTime": 815,
                "serviceTime": 90,
                "xCoordinate": 26,
                "yCoordinate": 32
            },
            {
                "demand": 10,
                "dueTime": 786,
                "number": 51,
                "readyTime": 725,
                "serviceTime": 90,
                "xCoordinate": 25,
                "yCoordinate": 30
            },
            {
                "demand": 10,
                "dueTime": 969,
                "number": 52,
                "readyTime": 912,
                "serviceTime": 90,
                "xCoordinate": 25,
                "yCoordinate": 35
            },
            {
                "demand": 20,
                "dueTime": 347,
                "number": 53,
                "readyTime": 286,
                "serviceTime": 90,
                "xCoordinate": 44,
                "yCoordinate": 5
            },
            {
                "demand": 40,
                "dueTime": 257,
                "number": 54,
                "readyTime": 186,
                "serviceTime": 90,
                "xCoordinate": 42,
                "yCoordinate": 10
            },
            {
                "demand": 10,
                "dueTime": 158,
                "number": 55,
                "readyTime": 95,
                "serviceTime": 90,
                "xCoordinate": 42,
                "yCoordinate": 15
            },
            {
                "demand": 30,
                "dueTime": 436,
                "number": 56,
                "readyTime": 385,
                "serviceTime": 90,
                "xCoordinate": 40,
                "yCoordinate": 5
            },
            {
                "demand": 40,
                "dueTime": 87,
                "number": 57,
                "readyTime": 35,
                "serviceTime": 90,
                "xCoordinate": 40,
                "yCoordinate": 15
            },
            {
                "demand": 30,
                "dueTime": 534,
                "number": 58,
                "readyTime": 471,
                "serviceTime": 90,
                "xCoordinate": 38,
                "yCoordinate": 5
            },
            {
                "demand": 10,
                "dueTime": 740,
                "number": 59,
                "readyTime": 651,
                "serviceTime": 90,
                "xCoordinate": 38,
                "yCoordinate": 15
            },
            {
                "demand": 20,
                "dueTime": 629,
                "number": 60,
                "readyTime": 562,
                "serviceTime": 90,
                "xCoordinate": 35,
                "yCoordinate": 5
            },
            {
                "demand": 10,
                "dueTime": 610,
                "number": 61,
                "readyTime": 531,
                "serviceTime": 90,
                "xCoordinate": 50,
                "yCoordinate": 30
            },
            {
                "demand": 20,
                "dueTime": 317,
                "number": 62,
                "readyTime": 262,
                "serviceTime": 90,
                "xCoordinate": 50,
                "yCoordinate": 35
            },
            {
                "demand": 50,
                "dueTime": 218,
                "number": 63,
                "readyTime": 171,
                "serviceTime": 90,
                "xCoordinate": 50,
                "yCoordinate": 40
            },
            {
                "demand": 10,
                "dueTime": 693,
                "number": 64,
                "readyTime": 632,
                "serviceTime": 90,
                "xCoordinate": 48,
                "yCoordinate": 30
            },
            {
                "demand": 10,
                "dueTime": 129,
                "number": 65,
                "readyTime": 76,
                "serviceTime": 90,
                "xCoordinate": 48,
                "yCoordinate": 40
            },
            {
                "demand": 10,
                "dueTime": 875,
                "number": 66,
                "readyTime": 826,
                "serviceTime": 90,
                "xCoordinate": 47,
                "yCoordinate": 35
            },
            {
                "demand": 10,
                "dueTime": 77,
                "number": 67,
                "readyTime": 12,
                "serviceTime": 90,
                "xCoordinate": 47,
                "yCoordinate": 40
            },
            {
                "demand": 10,
                "dueTime": 777,
                "number": 68,
                "readyTime": 734,
                "serviceTime": 90,
                "xCoordinate": 45,
                "yCoordinate": 30
            },
            {
                "demand": 10,
                "dueTime": 969,
                "number": 69,
                "readyTime": 916,
                "serviceTime": 90,
                "xCoordinate": 45,
                "yCoordinate": 35
            },
            {
                "demand": 30,
                "dueTime": 456,
                "number": 70,
                "readyTime": 387,
                "serviceTime": 90,
                "xCoordinate": 95,
                "yCoordinate": 30
            },
            {
                "demand": 20,
                "dueTime": 360,
                "number": 71,
                "readyTime": 293,
                "serviceTime": 90,
                "xCoordinate": 95,
                "yCoordinate": 35
            },
            {
                "demand": 10,
                "dueTime": 505,
                "number": 72,
                "readyTime": 450,
                "serviceTime": 90,
                "xCoordinate": 53,
                "yCoordinate": 30
            },
            {
                "demand": 10,
                "dueTime": 551,
                "number": 73,
                "readyTime": 478,
                "serviceTime": 90,
                "xCoordinate": 92,
                "yCoordinate": 30
            },
            {
                "demand": 50,
                "dueTime": 412,
                "number": 74,
                "readyTime": 353,
                "serviceTime": 90,
                "xCoordinate": 53,
                "yCoordinate": 35
            },
            {
                "demand": 20,
                "dueTime": 1068,
                "number": 75,
                "readyTime": 997,
                "serviceTime": 90,
                "xCoordinate": 45,
                "yCoordinate": 65
            },
            {
                "demand": 10,
                "dueTime": 260,
                "number": 76,
                "readyTime": 203,
                "serviceTime": 90,
                "xCoordinate": 90,
                "yCoordinate": 35
            },
            {
                "demand": 10,
                "dueTime": 643,
                "number": 77,
                "readyTime": 574,
                "serviceTime": 90,
                "xCoordinate": 88,
                "yCoordinate": 30
            },
            {
                "demand": 20,
                "dueTime": 170,
                "number": 78,
                "readyTime": 109,
                "serviceTime": 90,
                "xCoordinate": 88,
                "yCoordinate": 35
            },
            {
                "demand": 10,
                "dueTime": 731,
                "number": 79,
                "readyTime": 668,
                "serviceTime": 90,
                "xCoordinate": 87,
                "yCoordinate": 30
            },
            {
                "demand": 10,
                "dueTime": 820,
                "number": 80,
                "readyTime": 769,
                "serviceTime": 90,
                "xCoordinate": 85,
                "yCoordinate": 25
            },
            {
                "demand": 30,
                "dueTime": 124,
                "number": 81,
                "readyTime": 47,
                "serviceTime": 90,
                "xCoordinate": 85,
                "yCoordinate": 35
            },
            {
                "demand": 20,
                "dueTime": 420,
                "number": 82,
                "readyTime": 369,
                "serviceTime": 90,
                "xCoordinate": 75,
                "yCoordinate": 55
            },
            {
                "demand": 10,
                "dueTime": 338,
                "number": 83,
                "readyTime": 265,
                "serviceTime": 90,
                "xCoordinate": 72,
                "yCoordinate": 55
            },
            {
                "demand": 20,
                "dueTime": 523,
                "number": 84,
                "readyTime": 458,
                "serviceTime": 90,
                "xCoordinate": 70,
                "yCoordinate": 58
            },
            {
                "demand": 30,
                "dueTime": 612,
                "number": 85,
                "readyTime": 555,
                "serviceTime": 90,
                "xCoordinate": 68,
                "yCoordinate": 60
            },
            {
                "demand": 10,
                "dueTime": 238,
                "number": 86,
                "readyTime": 173,
                "serviceTime": 90,
                "xCoordinate": 66,
                "yCoordinate": 55
            },
            {
                "demand": 20,
                "dueTime": 144,
                "number": 87,
                "readyTime": 85,
                "serviceTime": 90,
                "xCoordinate": 65,
                "yCoordinate": 55
            },
            {
                "demand": 30,
                "dueTime": 708,
                "number": 88,
                "readyTime": 645,
                "serviceTime": 90,
                "xCoordinate": 65,
                "yCoordinate": 60
            },
            {
                "demand": 10,
                "dueTime": 802,
                "number": 89,
                "readyTime": 737,
                "serviceTime": 90,
                "xCoordinate": 63,
                "yCoordinate": 58
            },
            {
                "demand": 10,
                "dueTime": 84,
                "number": 90,
                "readyTime": 20,
                "serviceTime": 90,
                "xCoordinate": 60,
                "yCoordinate": 55
            },
            {
                "demand": 10,
                "dueTime": 889,
                "number": 91,
                "readyTime": 836,
                "serviceTime": 90,
                "xCoordinate": 60,
                "yCoordinate": 60
            },
            {
                "demand": 20,
                "dueTime": 441,
                "number": 92,
                "readyTime": 368,
                "serviceTime": 90,
                "xCoordinate": 67,
                "yCoordinate": 85
            },
            {
                "demand": 40,
                "dueTime": 518,
                "number": 93,
                "readyTime": 475,
                "serviceTime": 90,
                "xCoordinate": 65,
                "yCoordinate": 85
            },
            {
                "demand": 10,
                "dueTime": 336,
                "number": 94,
                "readyTime": 285,
                "serviceTime": 90,
                "xCoordinate": 65,
                "yCoordinate": 82
            },
            {
                "demand": 30,
                "dueTime": 239,
                "number": 95,
                "readyTime": 196,
                "serviceTime": 90,
                "xCoordinate": 62,
                "yCoordinate": 80
            },
            {
                "demand": 10,
                "dueTime": 156,
                "number": 96,
                "readyTime": 95,
                "serviceTime": 90,
                "xCoordinate": 60,
                "yCoordinate": 80
            },
            {
                "demand": 30,
                "dueTime": 622,
                "number": 97,
                "readyTime": 561,
                "serviceTime": 90,
                "xCoordinate": 60,
                "yCoordinate": 85
            },
            {
                "demand": 20,
                "dueTime": 84,
                "number": 98,
                "readyTime": 30,
                "serviceTime": 90,
                "xCoordinate": 58,
                "yCoordinate": 75
            },
            {
                "demand": 10,
                "dueTime": 820,
                "number": 99,
                "readyTime": 743,
                "serviceTime": 90,
                "xCoordinate": 55,
                "yCoordinate": 80
            },
            {
                "demand": 20,
                "dueTime": 726,
                "number": 100,
                "readyTime": 647,
                "serviceTime": 90,
                "xCoordinate": 55,
                "yCoordinate": 85
            }
        ],
        "depot": {
            "demand": 0,
            "dueTime": 1236,
            "number": 0,
            "readyTime": 0,
            "serviceTime": 0,
            "xCoordinate": 40,
            "yCoordinate": 50
        },
        "label": "C102",
        "vehicle": {
            "capacity": 200,
            "number": 25
        }
    },
    "solution": {
        "cost": 827.3,
        "routes": [
            {
                "customerNumbers": [
                    5,
                    3,
                    7,
                    8,
                    10,
                    11,
                    9,
                    6,
                    4,
                    2,
                    1,
                    75
                ],
                "routeNumber": 1
            },
            {
                "customerNumbers": [
                    13,
                    17,
                    18,
                    19,
                    15,
                    16,
                    14,
                    12
                ],
                "routeNumber": 2
            },
            {
                "customerNumbers": [
                    20,
                    24,
                    25,
                    27,
                    29,
                    30,
                    28,
                    26,
                    23,
                    22,
                    21
                ],
                "routeNumber": 3
            },
            {
                "customerNumbers": [
                    32,
                    33,
                    31,
                    35,
                    37,
                    38,
                    39,
                    36,
                    34
                ],
                "routeNumber": 4
            },
            {
                "customerNumbers": [
                    43,
                    42,
                    41,
                    40,
                    44,
                    46,
                    45,
                    48,
                    51,
                    50,
                    52,
                    49,
                    47
                ],
                "routeNumber": 5
            },
            {
                "customerNumbers": [
                    57,
                    55,
                    54,
                    53,
                    56,
                    58,
                    60,
                    59
                ],
                "routeNumber": 6
            },
            {
                "customerNumbers": [
                    67,
                    65,
                    63,
                    62,
                    74,
                    72,
                    61,
                    64,
                    68,
                    66,
                    69
                ],
                "routeNumber": 7
            },
            {
                "customerNumbers": [
                    81,
                    78,
                    76,
                    71,
                    70,
                    73,
                    77,
                    79,
                    80
                ],
                "routeNumber": 8
            },
            {
                "customerNumbers": [
                    90,
                    87,
                    86,
                    83,
                    82,
                    84,
                    85,
                    88,
                    89,
                    91
                ],
                "routeNumber": 9
            },
            {
                "customerNumbers": [
                    98,
                    96,
                    95,
                    94,
                    92,
                    93,
                    97,
                    100,
                    99
                ],
                "routeNumber": 10
            }
        ]
    }
}

Last updated