API reference
Status updates
Follow your orders with a pull-based status pool. Each status change appends to a per-credential, cursor-ordered feed; you poll for everything since your last cursor. There is no outbound URL to register and nothing to retry — you are in control of when you read.
Replaces outbound webhooks
status:read scope.Polling is stateless on our side: you persist the last next_cursor you processed and pass it back as since on the next call. Omit since on the first call to read from the beginning. Keep polling while has_more is true to drain a backlog, then poll on an interval (e.g. every few seconds) for new changes.
The feed is scoped to your credential — you only ever see status changes for packages that belong to you. Requires the status:read scope.
Poll the status pool
/api/v1/partner/changesQuery parameters
sinceintegeroptional- The last cursor you processed. Returns every change after it. Omit to start from the beginning.
limitintegeroptional- Max changes to return in one page (default applies if omitted).
Response — data[]
cursorintegeroptional- Monotonic position of this change in your feed. Pass the latest back as since.
tracking_numberstringoptional- The Starmile tracking number of the affected parent order.
external_parent_idstringoptional- Your own reference, echoed back.
statusstringoptional- The new status the order moved to.
previous_statusstringoptional- The status it moved from.
occurred_atstringoptional- ISO-8601 timestamp of the change.
Response — envelope
next_cursorintegeroptional- Pass this as since on your next poll.
has_morebooleanoptional- true if more changes are waiting beyond this page — poll again immediately.
curl 'https://api.starmile.io/api/v1/partner/changes?since=10480' \
-H 'Authorization: Bearer <access_token>'