LoadCargo.in — Cargo Loading Optimization Software

Container Loading API

Create loading plans straight from your ERP. Send a cargo list, get back the containers you need, the placement of every box, a PDF or Excel loading plan for the delivery note — and a link to the interactive 3D plan you can paste onto the order.

Cargo in

Post the cargo lines from your order and the equipment you want to load into.

Plan out

Get JSON with every box placement, plus a PDF or Excel loading plan for the delivery note.

3D link

Every plan comes with a public link to the interactive 3D view. Paste it onto the order.

Works with any ERP

This is a plain REST API over HTTPS with JSON. Anything that can call a web service can call it — SAP (via CPI/PI or an ABAP HTTP client), Microsoft Dynamics 365 Business Central (via Power Automate or an AL extension), Odoo, Helios, Money, Abra, or an integration platform sitting between them. Your integrator wires it to your own document flow; there is no plug-in to install on our side and nothing to install on yours.

Download the OpenAPI 3 specification and generate a client in your language of choice.

Authentication

Every request carries an API key. Create one in the web app under your account → API keys. The key acts as your account and uses your existing subscription — there is no separate API plan and nothing extra to buy. It is shown once, when you create it; we store only a hash of it.

Authorization: Bearer lci_live_...

Quick start

1

Send your cargo and equipment

Group cargo into shipments to control the unloading order on multi-stop routes. At least one container is always required — in the automatic modes the algorithm starts from it and adds or swaps equipment as the cargo demands.

curl -X POST https://loadcargo.in/api/v1/plans \
  -H "Authorization: Bearer lci_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "name": "SO-2026-00123",
    "customer": "ACME GmbH",
    "reference": "ERP-ORDER-77",
    "containers": [
      { "equipment_code": "Maersk 40 standard", "quantity": 1 }
    ],
    "cargo": [
      { "shipment": "STOP-1", "box_id": "PN-4471", "quantity": 40,
        "length": 120, "width": 80, "height": 95, "weight": 340,
        "stackable": true, "stack_weight": 800, "turnable": 1 },
      { "shipment": "STOP-2", "box_id": "PN-9002", "quantity": 30,
        "length": 100, "width": 120, "height": 110, "weight": 500,
        "stackable": false }
    ]
  }'
2

Get the plan back

share_url is a public, read-only link to the interactive 3D plan — paste it onto the order in your ERP and whoever opens it needs no account.

{
  "plan_id": 71,
  "reference": "ERP-ORDER-77",
  "status": "calculated",
  "share_url": "https://loadcargo.in/share/a5723ccb...",
  "summary": {
    "containers_used": 4,
    "boxes_placed": 70,
    "boxes_unplaced": 0,
    "total_weight": 28600,
    "total_volume": 76.08
  },
  "containers": [
    { "index": 0, "equipment_code": "Maersk 40 standard",
      "boxes": 42, "weight": 14600, "fill_volume_pct": 57.8 }
  ],
  "unplaced": []
}

Endpoints

Base URL https://loadcargo.in/api/v1

POST
/plans

Create a plan from a cargo list and calculate it. Returns the summary, the per-container result and the share link.

GET
/plans/{id}

Read a plan back, including the placement of every box (origin corner, placed dimensions, load order).

GET
/plans/{id}/export?format=pdf|xlsx|rtf

Download the loading plan as a document — the same report the web app produces. Add lang=cs for Czech.

DELETE
/plans/{id}

Delete a plan and its cargo. Handy for cleaning up test runs from your sandbox.

GET
/equipment

List the container and truck catalogue, so you can map your own master data onto it.

Cargo fields

Dimensions in centimetres, weights in kilograms. Only the four dimension fields are mandatory; everything else has a sensible default.

FieldTypeMeaning
length
required
numberBox length in cm.
width
required
numberBox width in cm.
height
required
numberBox height in cm.
weight
required
numberWeight of ONE box, in kg.
quantityintegerHow many identical boxes. Defaults to 1.
shipmentstringGroups cargo into drops. Earlier shipments are loaded so they come out first — this is what drives multi-stop unloading order.
box_idstringYour part number. Echoed back, including in the unplaced list.
stackablebooleanWhether other boxes may be stacked ON TOP of this one. Defaults to false.
stack_weightnumberMaximum weight this box can carry on top of it, in kg.
turnableinteger0 = no rotation, 1 = around the vertical axis only, 2 = any rotation.
floor_onlybooleanThe box must stand on the container floor.
priorityintegerLoading priority.

Errors

StatusCodeMeaning
401INVALID_API_KEYMissing, unknown or revoked key.
402SUBSCRIPTION_REQUIREDThe account has no active subscription or trial.
404NOT_FOUNDNo such plan in this account.
409NOT_CALCULATEDThe plan exists but has no computed result to read or export.
422VALIDATION_ERRORThe request was rejected. details lists each offending field.

Validation errors carry a details array naming each rejected field, so you can surface the problem in your ERP instead of guessing.

Frequently asked

Ready to integrate?

Start a free 14-day trial, create an API key, and make your first call in minutes. No card required.

Start free trial