List Send Plans
GET/api/send-plans
List send plans — working plans, scenarios and weekly send runs — newest first.
send-plans:readGrant this scope to your token under Settings → Developer → Personal Access Tokens.
Authentication: Bearer Personal Access Token with the send-plans:read scope. The token's user also needs permission to view the send planner.
Filters:
- filter[type]: working | scenario | run (exact).
- filter[status]: calculating | ready | failed | superseded | archived (exact).
- filter[archived]: active (default) hides archived plans; archived (or 1/true) returns only archived plans; all returns both.
- filter[search]: matches a plan ID exactly (
12or#12) or the plan name (partial). Restrict with the top-level search_columns=id,name; use search_strict_columns=name for an exact name match. - Operator filters
filter[{column}.{operator}]: numeric id (is, is_not, greater_than, less_than, between, …), text name (contains, starts_with, is, is_empty, …), datetime created_at and updated_at (before, after, between, …). The same columns can be combined in a filter_groups tree (base64-encoded JSON with and/or groups).
Allowed sorts: id, created_at, updated_at, name, status. Prefix with - for descending. Default: -id.
Pagination: page, per_page (default 10).
Send plan fields:
- type: working | scenario | run. status: calculating | ready | failed | superseded | archived.
- parent_send_plan_id: the scenario a promoted working plan came from.
- scope / policy_overrides: what the plan was requested with. policy: the fully resolved rules the plan ran with (tenant settings, every network's targets, weights, lead times and lanes), stored on the plan so it still explains itself after rules change. policy.networks is an object keyed by destination warehouse ID; each entry repeats its destination_warehouse_id and carries the integration_instance_id of the marketplace connection it belongs to. Each network entry also carries inherited_from: the name of the marketplace's own replenishment settings its target_days came from (for example "FBA replenishment settings"), or null when the target is the network default or a value set in the send planner.
- as_of: when the calculation finished. stale_networks: an object keyed by destination warehouse ID of networks whose stock snapshot was out of date (null when all were fresh). excluded_networks: networks left out of this calculation because they could not be read (for example a missing marketplace API permission), each with destination_warehouse_id, label and reason; every other network was planned.
- totals: plan-wide units to send, need, available/protected/sendable stock, shortfall, exceptions and edited lines, plus per-network units, SKUs, cases, cubic feet and capacity usage in
totals.networks, an object keyed by destination warehouse ID whose entries also carry destination_warehouse_id. Null while calculating.totals.carried_forwardcounts the edits carried over from the previous working plan. Each network'scapacity(null when no limit applies this month) has limit, limit_multiplier (a scenario's capacity what-if), unit, storage_type, used_before, added, used_after, pct_used, cut_units, over_limit, note and period_start for its first limit, with every storage type's entry underby_storage_typeandcut_units_total.capacity_missingis set when the network has limits for other months but none for this one, andtotals.capacity_warningslists those messages plan-wide. - policy.networks entries also carry the allocation rules the plan used: buffer_days, floor_strategy (days | service_level) with service_level, channel_priority (protect_other_channels | favor_network), seed_strategy (fixed | proxy) with seed_proxy_pct and seed_proxy_destination_warehouse_id, min_shelf_life_days, demand_windows and demand_window_factor, and inventory_refreshable (the network's stock can be refreshed with Refresh Network Inventory). policy.capacity_multiplier scales every capacity limit.
- tracked_job_log_id: the background job that calculated the plan. error: why a failed plan failed.
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.