Skip to content
Developer docsAPI referenceJobs

Get a job result

The load plan of a succeeded job: every vehicle used, every placement, what did not fit and the PDF link.

GEThttps://runner.cargoduo.com/v1/jobs/{id}/result

Authentication

Bearer API key with scopejobs:readLearn more

Path parameters

NameTypeRequiredDescription
idstringrequired
string
Yes

Job id (job_…).

Example request

curl -X GET "https://runner.cargoduo.com/v1/jobs/job_4bK9mT2xQe7LpW1zRc8VdN3f/result" \
  -H "Authorization: Bearer $CARGODUO_API_KEY"

Example response

200 OK · Result
{
  "job_id": "job_4bK9mT2xQe7LpW1zRc8VdN3f",
  "vehicles": [
    {
      "index": 0,
      "vehicle_id": "trailer",
      "copy": 1,
      "auto_added": false,
      "name": "13.6 m trailer",
      "type": "trailer",
      "length": 1360,
      "width": 245,
      "height": 270,
      "max_weight": 24000,
      "items_placed": 58,
      "total_weight": 8580,
      "volume_utilization": 0.3116,
      "weight_utilization": 0.3575,
      "center_of_gravity": {
        "x": 452.6,
        "y": 68.4,
        "z": 121.8
      },
      "axle_loads": [],
      "placements": [
        {
          "item_id": "pallet-eu",
          "instance": 1,
          "label": "Euro pallet",
          "x": 0,
          "y": 0,
          "z": 0,
          "length": 80,
          "width": 120,
          "height": 140,
          "rotated": true,
          "orientation": "wlh",
          "step": 1,
          "weight": 450
        },
        {
          "item_id": "pallet-eu",
          "instance": 2,
          "label": "Euro pallet",
          "x": 0,
          "y": 0,
          "z": 120,
          "length": 80,
          "width": 120,
          "height": 140,
          "rotated": true,
          "orientation": "wlh",
          "step": 2,
          "weight": 450
        },
        {
          "item_id": "carton-a",
          "instance": 1,
          "label": "Carton A",
          "x": 720,
          "y": 0,
          "z": 0,
          "length": 60,
          "width": 40,
          "height": 40,
          "rotated": false,
          "orientation": "lwh",
          "step": 19,
          "weight": 12
        }
      ]
    }
  ],
  "unplaced": [],
  "warnings": [],
  "pdf_url": "https://app.cargoduo.com/r/Xq7Lm2Vt9KbR4cN8wZp1Hs6Yd3Fg5Jk0Ta2Ue7Wn4Ci",
  "expires_at": "2026-11-02T09:12:03Z"
}

Abridged: 3 of the 58 placements are shown.

Responses

  • 200OKThe load plan.
    NameTypeRequiredDescription
    job_idstring
    string
    No

    The job.

    vehiclesResultVehicle[]
    ResultVehicle[]
    No

    Loaded vehicles in loading order (empty vehicles are left out).

    unplacedUnplacedItem[]
    UnplacedItem[]
    No

    Units that could not be placed, with the reason.

    warningsWarning[]
    Warning[]
    No

    Remarks about the plan.

    pdf_urlstring
    string
    No

    Browser link that renders the plan as a PDF.

    expires_atstring
    string
    No

    When this result is deleted (RFC 3339).

  • 401Unauthorizedunauthorizedkey_revokedkey_expired
    • unauthorizedMissing, malformed or unknown API key.
    • key_revokedThe key was revoked.
    • key_expiredThe key passed its expiry date.
    NameTypeRequiredDescription
    errorErrorBodyrequired
    ErrorBody
    Yes
    All error codes
  • 403Forbiddenip_not_allowedsubscription_inactiveaccount_inactivescope_missing
    • ip_not_allowedThe calling IP is not on the key's allowlist.
    • subscription_inactiveThe organization has no active subscription that includes the API.
    • account_inactiveThe organization is suspended, or has no owner whose account is active.
    • scope_missingThe key lacks a scope this endpoint needs.
    NameTypeRequiredDescription
    errorErrorBodyrequired
    ErrorBody
    Yes
    All error codes
  • 404Not foundjob_not_found
    • job_not_foundNo job with this id in your organization.
    NameTypeRequiredDescription
    errorErrorBodyrequired
    ErrorBody
    Yes
    All error codes
  • 409Conflictjob_not_finishedjob_failedjob_canceled
    • job_not_finishedThe job is still queued or running.
    • job_failedThe job failed; it has no result.
    • job_canceledThe job was canceled; it has no result.
    NameTypeRequiredDescription
    errorErrorBodyrequired
    ErrorBody
    Yes
    All error codes
  • 410Goneresult_expired
    • result_expiredThe result passed the retention window and was deleted.
    NameTypeRequiredDescription
    errorErrorBodyrequired
    ErrorBody
    Yes
    All error codes
  • 429Too many requestsrate_limited
    • rate_limitedToo many requests in the current minute, hour or day (per key or per organization), or more than 60 failed authentications per minute from your IP address.
    NameTypeRequiredDescription
    errorErrorBodyrequired
    ErrorBody
    Yes
    All error codes
  • 500Internal server errorinternal_error
    • internal_errorSomething failed on our side.
    NameTypeRequiredDescription
    errorErrorBodyrequired
    ErrorBody
    Yes
    All error codes
  • 503Service unavailableapi_disabled
    • api_disabledThe API is temporarily disabled (maintenance) or switched off for the organization.
    NameTypeRequiredDescription
    errorErrorBodyrequired
    ErrorBody
    Yes
    All error codes