Skip to content
ShipmentVisibility

Shipment tracking API with one event model for every mode

The ShipmentVisibility REST API lets your systems add shipments, read their status and receive webhooks when something changes. Parcel, LTL, FTL, ocean container and air cargo shipments all come back in the same normalized shape, so your developers write one integration instead of one per carrier. The API and webhooks are included on Pro and Enterprise.

See pricing

A track and trace API in four calls

You create a shipment by sending its number, and the carrier and mode are detected from the number format. You can pass a mode or carrier as a hint when a number is ambiguous, for example an LTL PRO that matches more than one carrier format. From then on you read the shipment, read its event history or wait for webhooks.

POST /v1/shipments
GET  /v1/shipments/{id}
GET  /v1/shipments/{id}/events

Webhook event types
shipment.updated
shipment.exception
shipment.delivered
eta.changed
  • POST /v1/shipments adds a shipment by tracking, PRO, container, bill of lading or air waybill number, with your own reference and optional ship to ZIP
  • GET /v1/shipments/{id} returns the current status, carrier, mode, latest event, predicted ETA with its confidence range and the next expected milestone
  • GET /v1/shipments/{id}/events returns the full event history in time order with location and the original carrier wording
  • Webhooks push changes to your endpoint so you never need to poll

One tracking API instead of a UPS, FedEx and USPS tracking API each

Every parcel carrier publishes its own interface with its own authentication, field names, status codes and rate limits. Building against a UPS tracking API, a FedEx tracking API and a USPS tracking API means three integrations to write, three sets of credentials to rotate and three sets of breaking changes to follow. With ShipmentVisibility you send a 1Z number, a 12 or 15 digit FedEx number or a 20 to 22 digit USPS number to the same endpoint and read the answer in the same format. The same call works for an ocean container, an LTL PRO or an air waybill.

  • One set of credentials for every carrier and mode
  • Number validation before tracking: UPS check digit, USPS mod 10, ISO 6346 container check digit, air waybill mod 7
  • Carrier format changes handled on our side, not in your code

A normalized event model across modes

Carriers describe the same moment in very different words. Our event model maps them to milestones that mean the same thing whether the freight is a parcel or a 40 foot container. Each event carries a milestone code, a timestamp with time zone, a location, the carrier's original description and an exception flag.

  • Parcel and LTL milestones: picked up, in transit, at terminal, out for delivery, delivered, with POD reference where the carrier provides it
  • FTL milestones: dispatched, at pickup, in transit, at delivery appointment, delivered
  • Ocean milestones: vessel departure, transshipment, port arrival, discharge, gate out, empty return, with last free day where available
  • Air milestones: booked, departed, arrived, ready for pickup
  • Exception types: address issue, delivery attempt, OS&D, refused, rolled, offloaded, missed connection, hold

Webhooks for every change that matters

Register an HTTPS endpoint and choose the event types you want. shipment.updated fires on every new milestone, shipment.exception fires when an event puts delivery at risk, shipment.delivered fires on the final delivery scan, and eta.changed fires when the predicted delivery window moves. Each webhook carries the shipment id, your reference and the event in the same format as the events endpoint. Failed deliveries to your endpoint are retried, and every webhook is signed so you can verify it came from us.

Authentication and rate limits

The API uses API keys sent in a request header. Account owners create and revoke keys in the dashboard, and each key can be named after the system that uses it, so you know which integration made which call. Requests are rate limited by plan: Pro has a limit that fits steady order and ERP traffic, and Enterprise has a higher limit for large batch imports. Responses tell you how many requests remain in the current window. Shipments added through the API count against the same monthly allowance as shipments added in the dashboard.

  • API keys per system, revocable at any time
  • Rate limits by plan, higher on Enterprise
  • SSO, roles and an audit log of key changes on Enterprise

Package tracking API on Pro and Enterprise

PlanYearly, per monthMonthlyShipments per monthOcean containers per month
Pro$249$4994,000120
Enterprise$749$1,49915,000400

Pro also includes carrier on-time scorecards, ERP and TMS integrations and client sub-accounts for 3PLs. Enterprise adds SSO, an audit log, a 99.9 percent uptime SLA and invoice billing. Both are self-serve with a public price. Compare all plans on shipment tracking software pricing.

Where the API fits in your stack

Use the API when you want tracking inside your own order system, customer portal or data warehouse. If you only need a connector, the shipment tracking integrations cover Shopify, NetSuite, SAP Business One, Microsoft Dynamics and CSV and SFTP feeds without code. For customer facing tracking without building a page, see the branded tracking page. For multi-modal visibility in the dashboard, see the freight visibility platform.

Shipment tracking API questions

Which plans include the API?

Pro and Enterprise. Both include the REST API, webhooks and the same normalized event model.

Do I need my own carrier API credentials?

No. You send numbers to our API and we handle the carrier side. You never manage UPS, FedEx or USPS developer accounts for tracking.

Can I track ocean containers and air waybills through the same API?

Yes. The same POST /v1/shipments call accepts container numbers, bills of lading, air waybills, PRO numbers and parcel numbers, and the response uses the same structure.

How do I know when an ETA changes?

Subscribe to the eta.changed webhook. It sends the new predicted window with its confidence range whenever the prediction moves.

Do API shipments count against my plan?

Yes. Every shipment added in the billing period counts once, whether it comes from the API, a CSV upload or the dashboard. Deleting a shipment does not return quota.

Build on one API for every carrier

Try the number check on any tracking, PRO, container or air waybill number, then choose Pro to get your API key.

See pricing