Amazon SP-API 9 min read

Amazon Has No Seller Demand-Forecast API — Build Your Own From Velocity

You want a 30-day demand forecast per SKU so you know what to reorder. There is no SP-API endpoint that gives you one, and the restock report is US-only and being phased out. The good news: you already hold the only data that matters — your own order history. Here's a forecast that is responsive without being twitchy, and the reorder maths that follows from it.

Updated Aug 2026
Amazon Has No Seller Demand-Forecast API — Build Your Own From Velocity

The Endpoint You're Looking For Doesn't Exist #

You need to answer a simple operational question: how many of this SKU will I sell in the next 30 days, and when do I reorder? So you go looking through SP-API for a forecast endpoint.

In one line

Amazon does not expose a seller-facing demand-forecast API. Vendors (1P) get forecasts; sellers (3P) do not. The nearest thing — the restock inventory report — is US-only and being phased out, so building your own from order history is the durable answer, not a workaround.

This surprises people because the data obviously exists — Seller Central shows restock suggestions. But "visible in the UI" and "available over the API" are different things, and this is one of the places they diverge.

Boxes on warehouse shelving, representing inventory awaiting reorder decisions
The forecast has to come from your own sales history, because nothing else is going to hand it to you.

What You Can and Can't Get #

WhatAvailable to a 3P seller?Notes
Demand forecast per SKUNoNo SP-API operation returns one
Restock suggestions reportPartlyUS-only, and being phased out — do not build on it
FBA inventory levelsYesFBA Inventory API — current stock and inbound
Your own order historyYesOrders API. This is the input that matters
Vendor (1P) forecastsN/AExists for vendors only, not sellers

The practical read: you have units sold over time and you have current stock. That is genuinely enough for a forecast good enough to drive reordering, and the reason is that most sellers' demand is far more stable than they assume.

The Velocity Calculation #

The naive approach is "units sold in the last 30 days, divide by 30". It works until a two-day promotion or a single bulk order makes the next month's forecast nonsense.

What works better is a blended velocity across three windows, weighted towards the recent:

velocity_daily = 0.5 * (units_7d  / 7)
               + 0.3 * (units_30d / 30)
               + 0.2 * (units_90d / 90)

The weights are the whole idea. The 7-day term makes it react to a genuine change in demand within about a week. The 90-day term stops one unusual day from dominating. A single spike moves the number, but it does not move it as far as the spike itself.

Blended velocity weights three lookback windows: 7 days at 50 percent, 30 days at 30 percent, 90 days at 20 percent last 7 days 50% last 30 days 30% last 90 days 20% recent enough to react  ·  long enough not to overreact forecast_30d = velocity_daily × 30

Two details that matter more than the weights:

  • Exclude cancelled orders. Obvious, easy to forget, and it inflates every downstream number.
  • Count units, not orders. One order of six units is six units of demand.

Trend: The Signal That Tells You Something Changed #

Velocity tells you the rate. It does not tell you whether that rate is rising or falling, and for reorder decisions the direction matters as much as the level.

Compare the last 30 days against the 30 days before that — days 31 to 60, not a rolling window:

trend_pct = (units_30d - units_prior_30d) / max(units_prior_30d, 1) * 100

This is the number that surfaces a product quietly dying, or one starting to take off, before the absolute figures make it obvious. Sort your catalogue by it occasionally — it is usually the most interesting column on the page.

From Forecast to a Reorder Number #

A forecast nobody acts on is a decoration. The output that matters is how many units to buy, and how urgently.

  1. Days of cover

    stock / velocity_daily. How long until you are out at the current rate. This single number drives everything else.

  2. Status buckets

    Out of stock (zero stock but still selling), low (under your lead time plus a buffer), overstock (more than about 180 days, or stocked with no sales at all), healthy.

  3. Suggested reorder quantity

    velocity × (lead_time_days + target_cover_days) − stock − inbound. Subtracting inbound matters — otherwise you reorder what is already on a boat.

With a 30-day lead time and a 60-day cover target, a SKU selling 4 units a day with 100 in stock and 50 inbound gives 4 × 90 − 100 − 50 = 210 units. That is a number an operator can act on without interpreting anything.

Made-to-order changes the maths. If you produce on demand rather than holding stock, "days of cover" against a stock level is meaningless — you want cover against production capacity instead. Drive the alerts off the fulfilment units that actually exist, or you will forecast a warehouse you do not have.

What This Version Deliberately Does Not Do #

Being honest about the limits is what makes it trustworthy:

  • No seasonality. A blended velocity does not know that Q4 is coming. For strongly seasonal catalogues this under-forecasts going into peak and over-forecasts coming out. Year-over-year factors are the obvious v2 — but you need a year of clean history first.
  • No price elasticity. Drop the price and demand changes; the model will only notice a week later.
  • No accuracy score, yet. You cannot score a forecast until enough time has passed to compare it with what happened. Store each forecast with its date from day one — that is what makes backtesting possible later, and it costs nothing now.

None of these stop it being useful. A forecast that is directionally right and always available beats a better one you do not have.

Building inventory tooling across several seller accounts? The correctness traps compound — see why Amazon order IDs are not unique, or get help building it properly.

FAQ #

Does Amazon have a demand-forecast API for sellers?

No. There is no SP-API operation that returns a demand forecast for a 3P seller. Forecasts exist on the vendor (1P) side, and the seller-side restock report is US-only and being phased out, so a forecast built from your own order history is the durable approach.

How do I calculate sales velocity from SP-API data?

Sum units sold — excluding cancellations — over 7, 30 and 90-day windows and blend them, weighting recent windows more heavily. A 50/30/20 split across 7, 30 and 90 days reacts within about a week without letting a single spike dominate.

What is a good reorder quantity formula?

velocity × (lead time + target cover) − current stock − inbound. Subtracting inbound units is what stops you double-ordering stock that is already in transit.

Can I use the FBA restock report instead?

It is US-only and being phased out, so building a dependency on it is risky. Use FBA Inventory for current stock and inbound quantities, and derive velocity from your own orders.

How do I handle seasonality?

A blended-velocity model does not capture it. Adding a year-over-year seasonal factor is the natural next step, but it requires at least a year of clean history. Until then, expect under-forecasting into a peak and over-forecasting after it.

Don't want to build this yourself?

I set this up for sellers and agencies every week. Book a free 30-minute audit of your Amazon data & PPC setup — you'll leave with a plan either way, whether we work together or not.

Found this helpful? Share it:

WhatsApp