Refresh Order Tracking
POST/api/starshipit/integration-instances/:integration_instance/orders/:order/tracking
Refreshes live tracking events for a single order by calling Starshipit's GET /track endpoint with the order's order_number. The carrier-reported events are persisted to starshipit_orders.json_object.events so the order detail page can render an up-to-date tracking timeline.
Any valid API token can call this endpoint — no specific scope required. Manage tokens.
Also updates: tracking_number, carrier_name (when previously empty), local status (mapped from the tracking status enum), and details_last_updated.
Returns the refreshed order resource (with json_object included) and a success message.
Errors:
- 400 if the order has no
order_number(Starshipit requires it to look up tracking) - 404 if the order does not belong to the given integration instance
- 502 if the upstream Starshipit /track call fails (auth, network, etc.)
Authentication: Requires Bearer token.
Request
Responses
- 200
- 400
- 401
- 403
- 404
- 422
- 429
- 502
OK
Response Headers
Bad Request
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.
Not found — no record with the given identifier (or the route does not exist). Verify the ID before retrying.
Validation failed — the body is a field → messages map (Laravel shape) or the platform envelope with a stable machine-readable code. Fix the payload and resubmit.
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.
Bad Gateway