Ship By Schedule
GET/api/v2/reporting/ship-by-schedule
Ship-by schedule: open demand grouped by the day each order must ship, and per product within that day, with the quantity still short of stock.
reports:readGrant this scope to your token under Settings → Developer → Personal Access Tokens.
Authentication: Requires Bearer token.
Days are calendar days in your account timezone. A ship-by value is stored as an instant, so the report converts it to your timezone before grouping — an order due 23 September appears under 2026-09-23 regardless of the underlying UTC offset, and filter[date_from] / filter[date_to] select exactly the days you name.
Default window: with neither date filter supplied, the report covers the last 30 days plus all future dates. Supplying either date filter replaces that window entirely.
Filters:
filter[search]— partial match on product SKU or product name.filter[date_from]— earliest ship-by day to include (YYYY-MM-DD, inclusive).filter[date_to]— latest ship-by day to include (YYYY-MM-DD, inclusive).filter[status]—all(default),past_due,due_today, orupcoming, relative to today in your account timezone.
Sorting: sort accepts ship_by_date, total_orders, total_quantity, product_sku. Prefix with - for descending. Default: ship_by_date ascending.
Pagination: page and per_page (default 10). Each row is one product on one ship-by day; a day with several products returns several rows sharing the same ship_by_date.
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.