Skip to main content
The candles endpoint returns historical OHLCV (open, high, low, close, volume) bars for a single symbol at a requested interval. You can retrieve everything from 1-minute intraday data up to yearly bars, and optionally narrow the result to a specific date range. When the market is open, the most recent bar may still be forming — the partial_bar_included flag tells you whether that is the case. GET https://app.stratalerts.com/api/market/v1/candles/{symbol}
Requires scope: candles:read

Path parameters

symbol
string
required
The ticker symbol (e.g., AAPL, ES1!). Case-insensitive — normalized to uppercase.

Query parameters

interval
string
default:"1d"
The bar interval. Must be one of the following values:
ValueDescription
1m1-minute
15m15-minute
30m30-minute
60m60-minute
4h4-hour
1dDaily
1wWeekly
1moMonthly
1qQuarterly
1yYearly
An unrecognized interval value returns a 404 response.
start
string
Start of the date range. Accepts an ISO 8601 datetime string (2026-01-15T09:30:00Z) or a plain date string (2026-01-15). Plain dates are interpreted as midnight UTC. Bars with a time value before this timestamp are excluded.
end
string
End of the date range. Same format as start. Bars with a time value after this timestamp are excluded.
limit
number
default:"500"
Maximum number of bars to return. Clamped to the range 1–5000. When a start/end range is also provided, the limit is applied after filtering — returning the most recent limit bars within that range.

Response fields

symbol
string
required
The requested ticker symbol, uppercased.
interval
string
required
The normalized interval string you requested (e.g., 1d).
bars
object[]
required
Array of OHLCV bar objects ordered chronologically (oldest first).
partial_bar_included
boolean
required
true when the final bar in the array is still forming (i.e., the current period has not yet closed). Always false for the 1m interval and for any request made outside market hours.
When partial_bar_included is true, the last bar’s high, low, close, and volume values will change as the period progresses. Do not treat a partial bar as a confirmed candle for setup or signal calculations.

Code examples

curl -G "https://app.stratalerts.com/api/market/v1/candles/AAPL" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  --data-urlencode "interval=1d" \
  --data-urlencode "limit=10"

Fetching a date range

curl -G "https://app.stratalerts.com/api/market/v1/candles/SPY" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  --data-urlencode "interval=1w" \
  --data-urlencode "start=2026-01-01" \
  --data-urlencode "end=2026-03-31"

Example response

{
  "symbol": "AAPL",
  "interval": "1d",
  "bars": [
    {
      "time": 1744243200,
      "open": 210.50,
      "high": 215.80,
      "low": 209.30,
      "close": 214.32,
      "volume": 62400000
    },
    {
      "time": 1744329600,
      "open": 214.50,
      "high": 217.10,
      "low": 213.20,
      "close": 216.75,
      "volume": 55100000
    }
  ],
  "partial_bar_included": false
}

Error codes

HTTP statusError codeMeaning
401missing_api_keyNo API key was provided or the key format is invalid.
403inactive_entitlementYour account does not have an active API entitlement.
403missing_scopeYour API key does not have the candles:read scope.
404unknown_symbolThe symbol path parameter was not found in the tracked universe.
An unrecognized interval value also returns a 404 with no error body. Error responses use the following shape:
{
  "error": {
    "code": "unknown_symbol",
    "message": "unknown symbol"
  }
}