Your shipments,
in your systems.

Every shipment Cubic moves for you is available through a simple API. Pull it into your ERP or a spreadsheet, or hand it to an AI assistant and ask questions.

Read the docs
GET https://api.gocubic.io/v1/shipments/QB10293
{
  "reference": "QB10293",
  "status": "Active",
  "serviceType": "OceanDDP",
  "tags": ["PO-8841"],
  "portOfLoading": { "name": "Yantian", "code": "CNYTN" },
  "portOfDischarge": { "name": "Long Beach", "code": "USLGB" },
  "carrier": { "name": "COSCO", "type": "ShippingLine" },
  "booking": {
    "masterBill": "COSU6412345670",
    "cargoCutoff": "2026-07-05"
  },
  "cargo": {
    "containers": [{ "number": "CSNU1234567", "type": "FortyFtHighCube" }]
  },
  "milestones": [
    { "type": "OriginPort", "completed": true },
    { "type": "DestinationPort", "completed": false,
      "arrival": { "date": "2026-07-28", "actual": false } },
    { "type": "Delivery", "completed": false }
  ],
  "currentMilestoneIndex": 0,
  "updatedAt": "2026-07-14T06:40:00Z"
}

Ask a question. Get an answer from your real shipments.

Give Claude Code, Cursor, or a ChatGPT agent your API key and a link to the docs. It reads your shipments through the API and answers questions that used to mean checking shipment by shipment in the app.

>Which POs are still waiting on a container number?
>Anything landing at ONT8 before Friday?
>Which air shipments are transshipping through Anchorage?
>List every shipment with a cargo cutoff in the next 3 days.

The docs include a page written for AI agents, so they get the details right the first time.

Claude Code
>What's arriving in Long Beach before the end of the month? And flag anything with a cargo cutoff in the next few days.
GET /v1/shipments?status=Active&limit=100 → 200 · 37 shipments · 212 ms

Three shipments arrive in Long Beach before the end of July:

RefPOVesselETA
QB10293PO-8841COSCO ANDES 027EJul 28
QB10305PO-8850ONE HARBOUR 112WJul 30
QB10318PO-8852MSC CAMILLE 214AJul 31

⚠ QB10322 (PO-8861) has a cargo cutoff on Jul 16, two days from now, and the carrier has not confirmed the booking yet. Worth checking with your account manager.

>Which POs still don't have a container number?
filtering 37 shipments where cargo.containers[].number is null
Two: PO-8861 (QB10322, FCL, booking unconfirmed) and PO-8863 (QB10331, FCL, cargo ready Jul 20). QB10331 is normal for this stage. QB10322 is the one to chase, same as above.

Every shipment detail you see in Cubic, as data.

Shipment
{
// Status, route and where it is right now
"reference": "QB10293",
"status": "Active",
"serviceType": "OceanDDP",
"origin": { "city": "Shenzhen", "countryCode": "CN" },
"portOfLoading": { "code": "CNYTN" },
"portOfDischarge": { "code": "USLGB" },
"destination": { "name": "ONT8", "type": "FulfillmentCenter" },
"currentMilestoneIndex": 2,
// Every stop on the route with its dates. actual: false means an estimate
"milestones": [
{ "type": "Pickup", "departure": { "date": "2026-07-03", "actual": true } },
{ "type": "OriginPort", "transportToNext": { "vessel": "COSCO ANDES", "voyageNumber": "027E" } },
{ "type": "DestinationPort", "arrival": { "date": "2026-07-28", "time": "08:00", "actual": true } },
{ "type": "Delivery", "arrival": { "date": "2026-08-04", "actual": false } }
],
// Bills of lading, cutoffs and free days
"booking": {
"masterBill": "COSU6412345670",
"houseBill": "SZX2607001",
"cargoCutoff": "2026-07-05",
"destinationPortFreeDays": 4
},
// Containers and packages, in the units they were entered in
"cargo": {
"totalWeight": { "value": 1082, "unit": "KG" },
"containers": [{ "number": "CSNU1234567", "type": "FortyFtHighCube", "sealNumber": "CN8812045" }],
"packages": [{ "type": "Box", "quantity": 62, "weight": { "value": 17.45, "unit": "KG" } }]
},
// Parcel tracking and Amazon IDs, when the shipment has them
"parcels": { "carrier": "UPS", "trackingNumbers": ["1Z84R2E70312345678"] },
"amazon": { "fbaIds": ["FBA18K4TQ9ZB"], "referenceIds": ["7KQ2M9XA"] },
// Your PO numbers, as tags
"tags": ["PO-8841"],
"updatedAt": "2026-07-29T06:40:00Z"
}

Where each shipment is, when it lands, which vessel it is on, what is in the container, and which PO it belongs to. The bill of lading numbers, the cargo cutoff, the free days at the port, the parcel tracking for the last mile. All of it, for every shipment, whenever your systems ask.

Feed your ERP the real ETA instead of the one from the booking email. Hand your accountant the bill numbers without digging through emails. Let your warehouse plan around arrivals it can see.

Every field, documented

Your first request in three steps.

Create a key

In the Cubic app, open Settings and create an API key. No approval, no sales call.

Settings → API keys → Create

Verify it

One request confirms the key and names your account.

curl https://api.gocubic.io/v1/me \
  -H "Authorization: Bearer $CUBIC_API_KEY"

List your shipments

Active shipments, most recently updated first. Drop the filter to include delivered and cancelled ones.

curl -G https://api.gocubic.io/v1/shipments \
  -d status=Active \
  -H "Authorization: Bearer $CUBIC_API_KEY"

Questions.

More on how Cubic works on the platform page.

What is the Cubic API?

The Cubic API is a REST API that gives you programmatic access to your Cubic shipments. You can pull status, route milestones, ETAs, carrier and bill numbers, containers, packages, and parcel tracking into your own systems as JSON.

Who can use the Cubic API?

Any Cubic customer. Create an API key in the Cubic app under Settings, then follow the quickstart at developers.gocubic.io. There is no application or approval process.

Does the API cost extra?

No. API access is included for every Cubic customer at no additional charge.

Can I ask an AI assistant about my shipments?

Yes. Any assistant that can make HTTP requests, such as Claude Code, Cursor, or a ChatGPT agent, can read your shipments through the API. Give it your API key and the docs URL, then ask questions in plain English.

Can I connect Cubic to my ERP or e-commerce platform?

Yes. The API is designed for syncing shipment data into ERPs, warehouse systems, spreadsheets, and dashboards. If you need help with a specific system, our team can support the integration.

What is coming next?

The API is expanding. New endpoints and capabilities ship regularly. Follow the changelog at developers.gocubic.io/changelog to see what is new.

Put your shipments to work.

Already a Cubic customer? Create a key and make your first request in minutes. New to Cubic? Get a quote, and the API comes with your account.

Read the docs