List Shipment Trackings
GET/api/shipment-trackings
Paginated cross-entity listing of shipment tracking rows. Powers the Delivery Exceptions view, the global Trackings table, and per-entity filtered subsets.
Any valid API token can call this endpoint — no specific scope required. Manage tokens.
Filters / sorts / per_page are read directly from the request by the repository per the Spatie QueryBuilder pagination idiom.
Allowed filters (filter[...]):
delivery_status— comma-separatedDeliveryStatusEnumvaluestrackable_type— comma-separated friendly slugs (see query param description for the full alias list)search— substring match ontracking_numberdate_from/date_to—m/d/Ybounds onlast_event_at(app timezone)stalled—1forin_transitrows whose last event is >7 days oldintegration_instance_id— exact match
Allowed sorts: id, created_at, last_event_at, delivery_status. Prefix with - for DESC.
The canonical Delivery Exceptions query:
?filter[delivery_status]=exception,delivery_failure,expired&filter[stalled]=1
These statuses are the ones flagged by DeliveryStatusEnum::isException; stalled=1 adds in_transit rows that have stopped moving.
Response shape: Standard Laravel LengthAwarePaginator JSON with data[], current_page, last_page, per_page, total, from, to, *_page_url, path, links. Each row in data[] is shaped as a shipment tracking object.
Request
Responses
- 200
- 401
- 403
- 429
OK
Response Headers
Unauthenticated — the bearer token is missing, revoked, expired, or malformed. Never retry automatically; fix the credential. See the Errors guide.
Forbidden — the token lacks a required scope, the endpoint is not available to API tokens, or the user behind the token lacks the permission. A human must adjust the token scopes or user permissions; do not retry.
Rate limited — platform limit is 1,000 requests/min; individual tokens may carry lower limits. Honor the Retry-After header before retrying. See the Rate Limits guide.