Updating an API-created project in the web browser
Introduction
The standard workflow for working with the Goodloading service looks as follows:
- build a Request – Example: Request
- have it processed by the service
- receive a Response, i.e. the service’s reply containing the recommended arrangement of the loads within the requested loading spaces – Example: Response_ver.1
- the processing result can also be obtained as a visualization – example: Response_ver.1 visualization
It may turn out, however, that the user would like to make a small tweak to the results produced by the algorithm. In that case they can:
- copy the project identifier from the returned Response into the web application Retrieving the project identifier from the Response
- make the desired changes to the project directly within the web application Making changes to the project
- fetch the latest version of the project Fetching the latest version of the project
- review the changes in Response_ver.2
Request
{
"loads": [
{
"quantity": 6,
"name": "load 1",
"length": 120,
"width": 80,
"height": 100,
"weight": 100
}
],
"loadingSpaces": [
{
"quantity": 1,
"name": "truck 1",
"parts": [
{
"length": 800,
"width": 200,
"height": 200,
"limit": 24000
}
]
}
],
"options": {
}
}
Response_ver.1
The Response parameters, as described in Response Body
{
"loadingSpaces": [
{
"id": 1,
"name": "truck 1",
"parts": [
{
"height": 200,
"length": 800,
"width": 200,
"limit": 24000,
"loads": [
{
"id": 1,
"allowToRotate": true,
"stacking": true,
"name": "load 1",
"loadType": 0,
"priority": 0,
"quantity": 6,
"width": 120,
"length": 80,
"height": 100,
"weight": 100,
"diameter": 0,
"origin": null,
"destination": null,
"pctSupport": 100,
"alongFloor": false,
"boxesBelowAllowed": [],
"color": 6989903,
"placement": [
{
"height": 100,
"length": 80,
"width": 120,
"diameter": 0,
"loadsPerAxis": {
"x": 1,
"y": 2,
"z": 1
},
"position": {
"x": 0,
"y": 0,
"z": 0
},
"cubeId": 0
},
{
"height": 100,
"length": 120,
"width": 80,
"diameter": 0,
"loadsPerAxis": {
"x": 1,
"y": 2,
"z": 1
},
"position": {
"x": 120,
"y": 0,
"z": 0
},
"cubeId": 0
},
{
"height": 100,
"length": 80,
"width": 120,
"diameter": 0,
"loadsPerAxis": {
"x": 1,
"y": 2,
"z": 1
},
"position": {
"x": 0,
"y": 0,
"z": 80
},
"cubeId": 0
}
]
}
],
"loadingSide": "back",
"summary": {
"freeLdm": 640,
"occupiedLdm": 160,
"freeSurface": 13120000,
"occupiedSurface": 2880000,
"freeVolume": 262400000000,
"occupiedVolume": 57600000000,
"percentLdmUsd": 20,
"percentVolumeUsd": 18,
"totalLoadsWeight": 600
},
"axis": []
}
],
"type": "vehicle"
}
],
"notFittedLoads": [],
"options": {
"allowOverweight": false,
"unit": "cm",
"keepLoadsTogether": false,
"newAlgorithm": true,
"arrangeOptimally": false,
"loadingOrder": "default",
"keepGroupsInGivenSpaces": false,
"isMagnetOn": false,
"multiStops": false,
"includeSavedLoadingSpaces": false,
"additionOrder": true,
"userOrder": false,
"volumeOrder": false,
"weightOrder": false
},
"_links": [
{
"rel": "preview",
"href": "https://app.goodloading.com/session?id=cdaa9650-1fed-46a0-98df-b68654818c08&pref=opt-names-opened"
}
]
}
Response_ver.1 visualization


Making changes to the project
1. Retrieve the project identifier from the Response
"href": "https://app.goodloading.com/session?id=cdaa9650-1fed-46a0-98df-b68654818c08&pref=opt-names-opened"
2. Open the project in the web application.
3. Make the changes in the application
Adding 2 new loads.

4. Save the new version of the project with the changes


Fetching the latest version of the project
1. Retrieve the identifier of the project modified in the web application

2. Goodloading service request: https://api.goodloading.com/api/external/calculation/result?id=
3. Append the retrieved identifier of the modified project to the request 3263583f-c8f3-415a-8de8-d03df45d35cc&pref=opt-names-opened

Response_ver.2
The fetched Response now includes the 2 loads added in the application
{
"loadingSpaces": [
{
"id": 1,
"name": "truck 1",
"type": "vehicle",
"parts": [
{
"length": 1000,
"width": 200,
"height": 200,
"limit": 24000,
"axis": [],
"loadingSide": "back",
"summary": {
"freeLdm": 780,
"occupiedLdm": 220,
"freeVolume": 33280000,
"occupiedVolume": 6720000,
"freeSurface": 161600,
"occupiedSurface": 38400,
"percentLdmUsd": 22,
"percentVolumeUsd": 16.8,
"totalLoadsWeight": 100
},
"COG": {
"x": 100,
"y": 100,
"z": 66.66
},
"loads": [
{
"placement": [
{
"width": 80,
"height": 100,
"length": 60,
"diameter": 0,
"position": {
"x": 120,
"y": 0,
"z": 120
},
"loadsPerAxis": {
"x": 1,
"y": 1,
"z": 1
}
},
{
"width": 80,
"height": 100,
"length": 60,
"diameter": 0,
"position": {
"x": 0,
"y": 0,
"z": 160
},
"loadsPerAxis": {
"x": 1,
"y": 1,
"z": 1
}
}
],
"id": 2,
"name": "1/2 palety Euro",
"quantity": 2,
"width": 60,
"height": 100,
"length": 80,
"diameter": null,
"loadType": 0,
"weight": 0,
"allowToRotate": null,
"stacking": false,
"priority": null
},
{
"placement": [
{
"width": 80,
"height": 100,
"length": 120,
"diameter": 0,
"position": {
"x": 120,
"y": 0,
"z": 0
},
"loadsPerAxis": {
"x": 1,
"y": 2,
"z": 1
}
},
{
"position": {
"x": 0,
"y": 0,
"z": 0
},
"loadsPerAxis": {
"x": 1,
"y": 2,
"z": 1
}
},
{
"position": {
"x": 0,
"y": 0,
"z": 80
},
"loadsPerAxis": {
"x": 1,
"y": 2,
"z": 1
}
}
],
"id": 1,
"name": "load 1",
"quantity": 6,
"width": 120,
"height": 100,
"length": 80,
"diameter": 0,
"loadType": 0,
"weight": 100,
"allowToRotate": null,
"stacking": true,
"priority": null
}
]
}
]
}
],
"notFittedLoads": [],
"options": {
"allowOverweight": false,
"unit": "cm",
"keepLoadsTogether": false,
"loadingOrder": "default",
"keepGroupsInGivenSpaces": false,
"isMagnetOn": false,
"newAlgorithm": false,
"arrangeOptimally": false,
"multiStops": false
},
"name": "Projekt z dnia: 2026-03-12 - Podmiana_OK",
"note": null,
"_links": [
{
"rel": "preview",
"href": "https://app.goodloading.com/session?id=3263583f-c8f3-415a-8de8-d03df45d35cc&pref=opt-names-opened"
}
]
}