The spec does not define six APIs. It defines one set of modules, built from one set of objects. A mode is a conformance profile that names which modules are required. A shipment, a rate, a tracker, a contact and a recurrence mean the same thing in every mode, so a client written against a Universal implementer can talk to a Carrier implementer without new code for the shared parts.
1. Modules
2. Mode profiles
R = required, O = optional, — = not applicable.
An implementer MAY operate in more than one mode. A 3PL with its own last-mile vans is
["3pl", "fleet"]. An airline cargo arm is ["carrier", "fleet"]. Any mode can replicate its objects into a data network node (chapter 23 §3). An aggregator that also prices its own resold contracts is ["universal"] with pricing. In that case the union of the required modules applies.
This diagram shows the required modules from the table above. Every mode is built on the same modules, and every module on the same objects.
3. How shared objects behave per mode
The objects do not change between modes. What changes is who produces the data. This flowchart shows where rates and tracking events come from in each mode. The objects they land in are the same.4. Identity of a non-universal implementer
In Carrier, 3PL and Fleet modes, the implementer is a carrier:- It has a carrier ID in the shared registry (
meridian,acme_3pl,zoomvan), which is returned byGET /v1/carriers. - Its services are
serviceobjects from its catalog, with codes namespaced{carrier}_{service}. - Its
shipment_config_schemais derived from its catalog’soptiondefinitions (chapter 14 §3). It is never hand-written. - It publishes
/.well-known/shipping-configurationand/shipping.md, so a Universal implementer can onboard it as a federated carrier (chapter 09 §6) with no carrier-specific code. That is how the four modes connect to each other.
5. Discovery
/.well-known/shipping-configuration and shipping.md frontmatter declare:
carrier is present in every mode except pure universal. Clients SHOULD branch on modules, not on modes. The mode is a summary, and the module list is the contract.