In short
You POST a shipment or a pickup. What follows is a sequence of stages — we validate and
de-duplicate the request, create the object, obtain a label, move the parcel through drop-off, sortation
and the carrier network, and notify you at every milestone. This page animates that sequence and shows
the exact JSON of the request and the response at each partner-visible step.
Reached stages have happened for this parcel. Ahead stages have
not happened yet — a return sitting at a drop-off counter has not reached the carrier. Click any
stage, or any step on the timeline, to see its JSON. Play the demo for the shape of a whole flow, or enter
a tracking number to follow a real one of yours — sign in once with your API key and this
browser stays signed in; the demos need no sign-in at all.
What this page is for
You POST a shipment or a pickup and get a 201 back. Everything
after that happens without you — and the usual way to learn it is to read a
specification and hope your mental model matches ours.
This page animates the whole sequence instead, and shows the exact JSON of the
request and the response at each step you can see. What you read here is what your
integration will receive.
Reached and ahead
- Reached — this has happened for this parcel.
- Ahead — it has not happened yet. A return sitting on a drop-off counter has
not reached the carrier, and the page shows that honestly rather than greying out the
difference.
Click any stage, or any step on the timeline, to see its JSON.
Only what you can see
The stages here are the partner-visible ones. Which of our services drew a label,
or which subcontractor ran a sweep, is our operational concern and is deliberately not
named — if it were on this page it would become something you write code against,
and then we could not change it without breaking you.
What is contract: the endpoints, the JSON shapes, the event names, and the
identifiers. Those match openapi/relay.openapi.yaml exactly.
Webhooks and tracking are both offered on purpose
Every milestone is pushed to you as a signed POST at your registered
endpoint, and the same state is available to pull from
GET /v2/tracking/{tracking}. Push is how you find out promptly; pull is how you
reconcile after an outage. An integration that only pushes has no way to catch up.
Demos, and following your own parcel
Both demos are invented shipments and need no sign-in — they show the shape of
a complete flow, including the parts a live parcel has not reached yet.
To follow one of your own, sign in once with your API key; this browser stays signed in.
You only ever see your own shipments.