Skip to main content
GET
Retrieve a single shipment by its reference ID. The response comes from our database and never calls the carrier. A background sync refreshes every shipment (every 10 minutes for GO!, hourly for DHL) and synced_at tells you when the carrier was last asked. Requires the shipments_view or shipments_manage scope.

Request

Path parameters

string
required
Shipment reference ID (e.g., P2604154821).

Response

On success, the API returns 200 OK with the shipment object.
string
required
Shipment reference identifier.
string
required
Shipment lifecycle status. One of pending, in_transit, delivered, fault, or cancelled.
string
required
Logistics provider. One of go, dhl_parcel, tof, rotrunner or rapido. Every home-kit parcel is dhl_parcel.
string
External tracking number from the logistics provider. May be null.
string
Free-text description of what is in the parcel, as given at creation (e.g. "Medizinisch freigestellte Probe", "Home test kit"). Informational only — whether a parcel is heading to a laboratory is read off destination, and its counterpart off paired_with. May be null.
string
required
Who printed the label: aniva, probatix or biomes. Only aniva shipments accept Update and Cancel; a parcel booked by a fulfilment partner is tracked but returns 501 on either.
string
Reference of the other parcel of a two-parcel consignment — the parcel that carried a return label, and the parcel that label brings back. Set on both. null for a one-way parcel.
object
Pickup address. May be null.
object
Delivery address. Same structure as origin. May be null.
object
Scheduled pickup window. May be null.
string
Optional notes. May be null.
object[]
required
Chronological lifecycle events from the logistics provider (oldest first). Empty array if the provider has not reported any events yet. Use this for per-event UI, audit and the finer carrier signals; rely on status for the canonical current state.
ShipmentAppointmentLink[]
required
Appointments linked to this shipment, oldest-link first. Each entry is { id, added_at }; cross-reference each id against Get Appointment for the full appointment payload. Empty array when no appointments are linked.
ShipmentHomeKitOrderLink[]
required
Home-kit orders linked to this shipment, oldest-link first, in the same { id, added_at } shape. Cross-reference each id against Get Home Kit Order. Empty array for practice parcels.
string
When the shipment was last reconciled with its carrier, as a UTC instant. Reads never call the carrier — a background sync keeps shipments fresh — so this is how old the answer is. null until the first sync.
string
required
Creation timestamp (ISO 8601).
string
Last update timestamp (ISO 8601). May be null.

Error responses