A 14-day SMA on a daily timespan averages the last 14 daily closes; tomorrow it drops the oldest close and adds the newest, which is the whole of the "moving" part. Massive's sma endpoint does that arithmetic server-side, so the two things you need to get right are the timespan (what a bar is) and the window (how many bars go into each average).
Applies to
- Plans: every plan, including the free Basic tier.
- Endpoints: /v1/indicators/sma/{ticker}, with timespan and window.
- Asset classes: stocks, options, indices, forex and crypto, using that asset class's ticker format.
How to call it
curl -X GET "https://api.massive.com/v1/indicators/sma/AAPL?timespan=day&window=14&limit=1&apiKey=YOUR_API_KEY"
Response
{
"results": {
"values": [
{ "timestamp": 1789012800000, "value": 317.89785714285716 }
]
},
"status": "OK"
}
timespan is the bar size the indicator is computed on, and window is how many of those bars it looks back over. A 14 on a day timespan and a 14 on a minute timespan are entirely different indicators.
How to read it
Every price in the window counts equally, which makes it steady and slow. That is the trade: a simple moving average is less jumpy than the price itself and slower to turn when the price changes direction.
Choosing a window
A shorter window reacts sooner and produces more signals, most of which are noise; a longer one is steadier and later. There is no correct value, and the common choices are conventions rather than findings. Pick the window from the horizon you actually trade or analyze on, and use the same one consistently rather than tuning it until the history looks good, which is the quickest route to a result that does not repeat.
If you see an error
An empty values array usually means you asked for fewer bars than the window needs. The indicator cannot produce its first point until window bars have closed.
A jump on a single date is usually a stock split rather than the market. Bars are split-adjusted by default, so mixing adjusted and unadjusted history will show up here.
{"status":"NOT_AUTHORIZED"} is about the asset class rather than the indicator: it follows the same subscription as the bars underneath.

