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 — version 1
- the processing result can also be obtained as a visualization – example: Response visualization — version 1
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 — version 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 — version 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 visualization — version 1


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. Call the Goodloading service: 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 — version 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"
}
]
}