Skip to main content
POST
Get forecast

Authorizations

Authorization
string
header
required

A bearer token from Login, sent as Authorization: Bearer <token>. Valid for 10 days by default; scoped to the user and organisation it was issued for. Rotating or disabling the organisation's API credential immediately invalidates all outstanding tokens. Browser calls from a signed-in app.vortexiq.ai page are also accepted via session cookie — see Authentication.

Body

application/json

Counts and forecast read the source store only, so destination_store_hash is optional.

source_store_hash
string
required

BigCommerce store hash to read.

selected_entities
string[]
required

Entity keys to count or price. Required except with mode: true-replica, where the platform expands its own preset and this field must be omitted.

Minimum array length: 1
destination_store_hash
string

Optional and currently unused — /entity-counts and /forecast are source-only reads. Destination-aware pricing of update/replace happens only at kickoff (POST /migrations).

mode
string

Optional. true-replica sizes the server-configured True Replica preset instead of a caller-supplied entity list (subject to the same organisation gate as Create migration).

selection
object

Selective migration picks. Parents and ancestors are included automatically, and products pull in their brands and categories.

Find the ids to pass here in the StagingPro app's Selective Migration tab. A selection also scopes entity counts and the forecast.

conflict_strategy
enum<string>

Forecast only: price the ETA for this strategy.

Available options:
skip,
update,
replace
channel_map
object

Optional channel map.

source_channel_id
integer

Optional storefront scope.

Required range: x >= 1
destination_channel_id
integer

Optional storefront scope.

Required range: x >= 1

Response

Sizing and ETA forecast.

Sizing and ETA estimate.

Sizing and ETA are priced from different bases deliberately: the ETA follows the run's real scope (picks, strategy, order statuses), while memory is pinned to store scale — the engine's working set does not shrink with a small pick, so sizing on picked counts alone would under-provision the run.

products
integer
variants
integer
brands
integer
categories
integer
counts
object

Per-entity counts the estimate was priced from, scoped by selection when supplied.

estimated
string[]

Count keys that are sampled estimates rather than exact totals.

memMB
integer

Memory the run will be given (MiB). Pinned to store scale, not to the picked subset.

cpus
number

CPUs the run will be given.

etaSeconds
integer

Estimated total wall-clock for the run.

etaBreakdown
object

Per-phase seconds.

etaAssumedRttMs
number

The blended latency the estimate assumed.

etaAssumedMs
object

Per-operation-class latencies the estimate assumed, so heavy writes are not judged against a blended baseline.

strategy
enum<string>

The conflict strategy the ETA was priced with. Absent means create-only.

Available options:
skip,
update,
replace
destProducts
integer

Destination catalogue size at kickoff. Absent or 0 when the destination wasn't known.

tier
enum<string>

Capacity band the run was placed in.

Available options:
small,
medium,
large,
xlarge,
xxlarge,
xxxlarge
basis
enum<string>

fallback means counts were unavailable and defaults were used.

Available options:
forecast,
fallback,
fix
at
string<date-time>