# CargoDuo Packing API > 3D load planning over HTTPS. Send vehicles (trucks, trailers, containers, pallets) and items; get a load plan with exact positions, orientations, loading steps and a PDF link. JSON, centimetres and kilograms, billed in credits (1 credit = 1 USD). Integrating? Fetch the playbook and follow it: https://runner.cargoduo.com/api/public/api-docs/llms-full.txt ## Get started - [Introduction](https://runner.cargoduo.com/api/public/api-docs/pages/introduction.md): Plan how cargo fits into trucks, trailers, containers and pallets with one API call. - [Quickstart](https://runner.cargoduo.com/api/public/api-docs/pages/quickstart.md): Create a key, send one request, read the plan. - [Authentication](https://runner.cargoduo.com/api/public/api-docs/pages/authentication.md): API keys, scopes and IP allowlists. - [Errors](https://runner.cargoduo.com/api/public/api-docs/pages/errors.md): One error envelope, stable codes, clear retry rules. - [Rate limits & limits](https://runner.cargoduo.com/api/public/api-docs/pages/limits.md): Request rates, job size, concurrency and retention. - [Credits & pricing](https://runner.cargoduo.com/api/public/api-docs/pages/credits.md): What a job costs and where credits come from. - [Idempotency](https://runner.cargoduo.com/api/public/api-docs/pages/idempotency.md): Retry POST /v1/pack without creating a second job. - [Results & coordinates](https://runner.cargoduo.com/api/public/api-docs/pages/results.md): Where every item sits, in which orientation and loading order. - [PDF reports](https://runner.cargoduo.com/api/public/api-docs/pages/pdf-reports.md): A shareable link that builds the loading plan PDF. - [Saved data & projects](https://runner.cargoduo.com/api/public/api-docs/pages/saved-data.md): Vehicles, templates and projects shared with the app. ## API reference - [Overview](https://runner.cargoduo.com/api/public/api-docs/pages/api-reference.md): Base URL, conventions and every endpoint. - [Create a packing job](https://runner.cargoduo.com/api/public/api-docs/pages/create-pack-job.md): `POST /v1/pack`. Validates the request, reserves the worst-case price from your credits and queues a job. - [Estimate a packing job](https://runner.cargoduo.com/api/public/api-docs/pages/estimate-pack-job.md): `POST /v1/estimate`. Runs the same validation as POST /v1/pack and returns the price range, without creating a job or reserving credits. - [List jobs](https://runner.cargoduo.com/api/public/api-docs/pages/list-jobs.md): `GET /v1/jobs`. Your organization's jobs, newest first, one page at a time. - [Get a job](https://runner.cargoduo.com/api/public/api-docs/pages/get-job.md): `GET /v1/jobs/{id}`. A job's status, progress, summary and cost. - [Get a job result](https://runner.cargoduo.com/api/public/api-docs/pages/get-job-result.md): `GET /v1/jobs/{id}/result`. The load plan of a succeeded job: every vehicle used, every placement, what did not fit and the PDF link. - [Cancel a job](https://runner.cargoduo.com/api/public/api-docs/pages/cancel-job.md): `DELETE /v1/jobs/{id}`. Stops a queued or running job. - [List projects](https://runner.cargoduo.com/api/public/api-docs/pages/list-projects.md): `GET /v1/projects`. Your organization's projects (the app's load plans), newest first, one page at a time. - [Create a project](https://runner.cargoduo.com/api/public/api-docs/pages/create-project.md): `POST /v1/projects`. Creates a project that opens in the app: a name, and optionally vehicles (saved vehicles by vehicle_id), items and groups in the /v1/pack shapes and the stored options. - [Get a project](https://runner.cargoduo.com/api/public/api-docs/pages/get-project.md): `GET /v1/projects/{id}`. A project with its vehicles, items, groups, options and a summary of its current plan (with the PDF link while the plan is the one an API job saved). - [Update a project](https://runner.cargoduo.com/api/public/api-docs/pages/update-project.md): `PATCH /v1/projects/{id}`. Renames a project, changes its options, or replaces its vehicles or its items (with groups). - [Delete a project](https://runner.cargoduo.com/api/public/api-docs/pages/delete-project.md): `DELETE /v1/projects/{id}`. Deletes a project with its vehicles, items and plan history, in the app too. - [Pack a project](https://runner.cargoduo.com/api/public/api-docs/pages/pack-project.md): `POST /v1/projects/{id}/pack`. Packs the project's vehicles and items exactly like POST /v1/pack: same price, credit reservation, limits, Idempotency-Key, ?wait= and job. - [List vehicles](https://runner.cargoduo.com/api/public/api-docs/pages/list-vehicles.md): `GET /v1/vehicles`. Every vehicle you can name with vehicle_id: the presets (containers, trailers, trucks, pallets of the types your organization may use), then your organization's own vehicles. - [Get a vehicle](https://runner.cargoduo.com/api/public/api-docs/pages/get-vehicle.md): `GET /v1/vehicles/{id}`. A preset or one of your vehicles. - [Create a vehicle](https://runner.cargoduo.com/api/public/api-docs/pages/create-vehicle.md): `POST /v1/vehicles`. Saves a vehicle to your organization's fleet (it shows in the app too). - [Update a vehicle](https://runner.cargoduo.com/api/public/api-docs/pages/update-vehicle.md): `PATCH /v1/vehicles/{id}`. Changes one of your vehicles. - [Delete a vehicle](https://runner.cargoduo.com/api/public/api-docs/pages/delete-vehicle.md): `DELETE /v1/vehicles/{id}`. Deletes one of your vehicles. - [List templates](https://runner.cargoduo.com/api/public/api-docs/pages/list-templates.md): `GET /v1/templates`. Your organization's cargo templates (saved items), newest first. - [Get a template](https://runner.cargoduo.com/api/public/api-docs/pages/get-template.md): `GET /v1/templates/{id}`. One template. - [Create a template](https://runner.cargoduo.com/api/public/api-docs/pages/create-template.md): `POST /v1/templates`. Saves an item as a template (it shows in the app too). - [Update a template](https://runner.cargoduo.com/api/public/api-docs/pages/update-template.md): `PATCH /v1/templates/{id}`. Changes a template. - [Delete a template](https://runner.cargoduo.com/api/public/api-docs/pages/delete-template.md): `DELETE /v1/templates/{id}`. Deletes a template. - [Get limits](https://runner.cargoduo.com/api/public/api-docs/pages/get-limits.md): `GET /v1/limits`. The limits that apply to your organization and the rate card new jobs are priced with. - [Get the balance](https://runner.cargoduo.com/api/public/api-docs/pages/get-balance.md): `GET /v1/balance`. Available, plan, purchased and reserved credits. - [Get usage](https://runner.cargoduo.com/api/public/api-docs/pages/get-usage.md): `GET /v1/usage`. Requests, jobs, credits, compute seconds and vehicles per UTC day. ## AI tools - [Agent prompt](https://runner.cargoduo.com/api/public/api-docs/pages/agent-prompt.md): One line that sets up a coding agent to integrate the API. - [llms.txt](https://runner.cargoduo.com/api/public/api-docs/pages/llms-txt.md): Machine-readable docs: llms.txt, llms-full.txt, OpenAPI and Markdown pages. ## Optional - [Integration playbook](https://runner.cargoduo.com/api/public/api-docs/llms-full.txt): everything an agent needs, in one file. - [OpenAPI 3.1](https://runner.cargoduo.com/api/public/api-docs/openapi.json): every endpoint and schema. - [pages.json](https://runner.cargoduo.com/api/public/api-docs/pages.json): every page with its Markdown. - Also served at https://runner.cargoduo.com/v1/llms.txt, https://runner.cargoduo.com/v1/llms-full.txt and https://runner.cargoduo.com/v1/openapi.json.