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
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
capacity
Integer
Capacity of the vehicle
number
Integer
Vehicle number
Distribution Object
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
customerNumbers
Integer[]
Array of integers (each integer maps to a customer number)
routeNumber
Integer
Number identifying the route
Solution Object
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
label
Unique label identifying an entry
Headers
Content-Type
application/json
Body
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
}{
"msg": "Invalid solution provided. Please check the input and try again.",
"success": false
}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