The ShipConnect API.
A clean REST API over the same platform our team runs. Request multi-carrier quotes, track shipments, and subscribe to milestone webhooks. JSON in, JSON out.
Authentication
Authenticate every request with a bearer token—your ShipConnect API key. Keep it server-side; never ship it in a browser. All requests are over HTTPS and scoped to your account.
https://api.shipconnect.com/v1$ curl https://api.shipconnect.com/v1/shipments \
-H "Authorization: Bearer sk_live_…"Create a quote
Submit an origin, destination, and freight details to get live rates across every eligible carrier and mode. Returns one row per carrier option, sorted by total.
/v1/quotes{
"origin": { "country": "CN", "city": "Shanghai" },
"destination": { "country": "CA", "postal": "L5B" },
"mode": "ocean",
"pieces": [{ "weight_kg": 4209, "count": 8 }]
}{
"quote_id": "qt_8Kd2…",
"options": [
{ "carrier": "DAY ROSS", "total": 2841.00, "transit_days": 21 },
{ "carrier": "FASTFRATE", "total": 3012.50, "transit_days": 19 }
]
}Track a shipment
Fetch the current status, milestones, and latest ETA for a shipment—the same data that powers the customer portal.
/v1/shipments/{id}{
"id": "SHP-00421",
"status": "in_transit",
"lane": "Shanghai → Long Beach",
"eta": "2026-08-18",
"milestones": [
{ "name": "vessel_departed", "at": "2026-07-28" }
]
}List shipments
Page through your shipments, filtered by status, lane, or date. Cursor-paginated.
/v1/shipments?status=in_transit&limit=50Webhooks
Subscribe to events instead of polling. We POST a signed payload to your endpoint whenever a shipment changes—an ETA shift, a new milestone, or an exception.
{
"event": "shipment.eta_changed",
"shipment_id": "SHP-00421",
"from": "2026-08-16", "to": "2026-08-18",
"delta_days": 2
}Verify the X-ShipConnect-Signature header against your signing secret before trusting a payload.
Build on ShipConnect.
Tell us what you’re building and we’ll get you API keys and a sandbox.