Want the full platform? Book a demo
API Reference

Public tools

Two endpoints that need no API key at all — the same ones behind the free tools. Rate limited per IP so you can try them before talking to anyone.

Rate limits are per IP, per day

Tracking allows 5 lookups per IP per 24 hours; HS classification allows 3. Every response tells you where you stand via remaining_lookups and max_lookups. Exceeding the limit returns 429. These are demonstration endpoints — if you need them at volume, talk to us about a keyed plan.

POST/api/tools/trackNo auth

Live container tracking straight from the carrier. The carrier is auto-detected from the container prefix when you don't name one.

Body parameters

  • tracking_numberstringrequired

    Container number, booking reference or bill of lading number. Uppercased before lookup.

  • carrier_codestringoptional

    Skip auto-detection and query a specific carrier, e.g. MSC, MAEU, CMDU, COSU, ONEY, EGLV.

Request

curl -X POST https://www.cargomo.de/api/tools/track \
  -H "Content-Type: application/json" \
  -d '{"tracking_number":"MSCU1234567"}'

Response

200 OK
{
  "success": true,
  "carrier_code": "MSCU",
  "carrier_name": "MSC",
  "booking_data": {
    "booking_reference": "MSC-4471902",
    "port_of_loading": "SGSIN",
    "port_of_discharge": "NLRTM",
    "vessel_name": "MSC ISABELLA",
    "voyage_number": "436W",
    "etd": "2026-09-14",
    "eta": "2026-10-08",
    "shipper_name": null,
    "consignee_name": null,
    "commodity_description": null
  },
  "container_data": [
    { "container_number": "MSCU1234567", "container_type": "40HC" }
  ],
  "events": [
    {
      "event_name": "Gate in at first POL",
      "location": "SGSIN",
      "event_datetime": "2026-09-11T06:22:00Z",
      "actual": true
    }
  ],
  "remaining_lookups": 4,
  "max_lookups": 5
}

Check success, not just the status code. When a carrier's API is unreachable this endpoint still returns 200 with success: false, a null booking_data and an error string — it does not throw.

Commercial fields — shipper, consignee, commodity, incoterms, contract reference — are always null on this public endpoint, even when the carrier returns them. Use the bookings API for your own shipments in full.

POST/api/tools/classify-hsNo auth

Classify goods to HS commodity codes with an AI model, returning ranked candidates with the reasoning behind each.

Body parameters

  • descriptionstringrequired

    Plain-language description of the goods. The more specific — material, use, form — the better the classification.

Request

curl
curl -X POST https://www.cargomo.de/api/tools/classify-hs \
  -H "Content-Type: application/json" \
  -d '{"description":"stainless steel ball bearings for industrial pumps"}'

Response

200 OK
{
  "suggestions": [
    {
      "code": "8482.10",
      "description": "Ball bearings",
      "reasoning": "Ball bearings of any material fall under 8482.10 — the heading covers the bearing itself, not the machine it serves.",
      "confidence": 92
    },
    {
      "code": "8482.99",
      "description": "Parts of ball or roller bearings",
      "reasoning": "Applies only if the goods are components (races, balls) rather than complete bearings.",
      "confidence": 41
    }
  ],
  "remaining_lookups": 2,
  "max_lookups": 3,
  "model_used": "google/gemini-3-flash-preview",
  "tokens_used": 611
}

Suggestions, not rulings. Results are ordered by confidence (0–100) and are a starting point for a human classifier — the legally binding code depends on the destination country's tariff schedule and its own rulings. If the model itself is unavailable the endpoint returns 503.