Your first request.
One header, one GET. Lists are not wrapped in an envelope — the collection sits
under a name that says what it is, next to a cursor for paging. See
pagination for what to do with that cursor.
curl -H 'X-Cargoplot-Key: 1234|1a2b3c4d-5e6f-7890-abcd-ef1234567890' \
'https://api.cargoplot.com/v1/shipment?limit=5'
{
"shipments": [
{ "reference": "C3AT-XHM0", "status": "STATUS_ACTIVE" }
],
"cursor": { "after": "eyJpZCI6NjUxfQ" }
}
What it covers
This first release is read-only. Every operation is a GET; there is nothing
you can create, change or delete through it.
| Resource | Endpoints |
|---|---|
| Shipments | /v1/shipment, /v1/shipment/{shipment} |
| Shipment tracking | /v1/shipment/{shipment}/tracking |
| Inquiries | /v1/inquiry, /v1/inquiry/{inquiry} |
| Invoices | /v1/invoice, /v1/invoice/{invoice}, /v1/invoice/{invoice}/download, /v1/shipment/{shipment}/invoice |
| Documents | /v1/shipment/{shipment}/document, /v1/document/{document}/download |
| Your profile | /v1/profile/user, /v1/profile/organization |
| Colleagues | /v1/user/{user} |
Responses are full of freight vocabulary: port codes, Incoterms, container types, milestone names. The glossary explains all of it.
You see exactly what your account sees in the Cargoplot app — your own organisation's records, and nothing else. Invoices you have not been issued yet are not part of it, and a few document types are held back the same way the app holds them back.
Base URL
https://api.cargoplot.com
So a shipment list is https://api.cargoplot.com/v1/shipment.
If you are pointing an agent or a generated client at this API, the one thing to give it is the spec:
/openapi.json — the complete contract, generated from the
API's own definitions on every deploy. Nothing here is hand-maintained, so it
cannot describe a version we are no longer running.