SMA API — Live Simple Moving Averages

Multiple lookback periods (10, 20, 50, 100, 200) for every symbol and timeframe. Detect golden crosses, death crosses, and trend bias without rolling your own averages.

No credit card$2.50 PAYG credit on sign up
15+API endpoints
42Indicator series
M1–D17 timeframes
$2.50PAYG starting credit
Why TickAtlas

What is the SMA API?

The Simple Moving Average is the unweighted mean of the last N closing prices. The SMA_200 on the daily chart is one of the most watched levels in all of trading — institutional desks monitor price relative to it continuously. The golden cross (SMA_50 crossing above SMA_200) and death cross (crossing below) are widely followed trend signals. Our API pre-calculates SMA_10, SMA_20, SMA_50, SMA_100, and SMA_200 from our live data, so your bot always has the number — not a computation task.

Pre-Calculated, Redis-Cached

Indicator values are computed server-side on every new candle. Your app queries the result — no TA library, no candle history needed.

7 Timeframes

M1, M5, M15, M30, H1, H4, D1 — the same endpoint serves scalpers and position traders alike.

Forex, Crypto, Commodities

EURUSD, GBPUSD, XAUUSD, BTCUSD, USDJPY — data available for every symbol in our data.

One Request. Instant Data.

REQUEST
curl -X GET \
  "https://tickatlas.com/v1/indicator?symbol=EURUSD&indicator=SMA_50&timeframe=H1" \
  -H "X-API-Key: YOUR_API_KEY"
200 OK
{
  "success": true,
  "data": {
    "symbol": "EURUSD",
    "timeframe": "H1",
    "indicator": "SMA_50",
    "value": 1.08300,
    "bid": 1.08401,
    "ask": 1.08414,
    "updated_at": 1711548000,
    "server_time": "2024-03-27T14:00:00+00:00"
  }
}

Five SMA Periods. One Endpoint Each.

cURL Request
curl -H "X-API-Key: YOUR_KEY" "https://tickatlas.com/v1/indicators?symbol=EURUSD&timeframe=H1&category=trend"
Python Golden cross detection
import requests

r = requests.get(
    "https://tickatlas.com/v1/indicators",
    headers={"X-API-Key": "YOUR_KEY"},
    params={"symbol": "EURUSD", "timeframe": "H1", "category": "trend"},
)
d = r.json()["data"]["indicators"]   # flat map of bare floats

# Golden cross detection (50 over 200)
if d["SMA_50"] > d["SMA_200"]:
    signal = "GOLDEN_CROSS"
else:
    signal = "DEATH_CROSS"
print(signal)
200 OK Response
{
  "success": true,
  "data": {
    "symbol": "EURUSD",
    "timeframe": "H1",
    "indicators": {
      "SMA_50": 1.0840, "SMA_200": 1.0790, "...": "21 more trend keys"
    },
    "count": 23,
    "updated_at": 1711548000
  }
}

Available SMA indicators

  • SMA_10 — 10-period SMA (scalping reference)
  • SMA_20 — 20-period SMA (short-term trend)
  • SMA_50 — 50-period SMA (medium trend)
  • SMA_100 — 100-period SMA (key support level)
  • SMA_200 — 200-period SMA (major trend filter)

Plug into any stack

  • ChatGPT Custom GPTs
  • Claude Tools
  • Python / pandas
  • Node.js
  • Discord bots
  • Slack webhooks
  • n8n
  • Zapier
  • Google Sheets
Pricing

Start on pay-as-you-go, upgrade when the traffic justifies it.

Every new account starts with $2.50 of pay-as-you-go credit and no card. Monthly plans add a flat monthly price, WebSocket streaming and support.

Pay as you go
$2.50 credit No card required to start
  • $2.50 of credit included
  • Every REST endpoint except raw ticks
  • No card required, no overage
  • 10 API keys
See plan details
Starter
$29 per month · 10,000 requests/day · 120/min
  • Every REST endpoint except raw ticks
  • WebSocket streaming, 5 symbols
  • Released calendar actuals
  • Email support
  • 3 API keys
See plan details
Frequently asked questions

What developers ask first.

Straight answers on limits, coverage and how the endpoint behaves in production.

Does the SMA_200 endpoint work on all timeframes?

Yes — all five SMA periods (10, 20, 50, 100, 200) are available on all seven timeframes (M1, M5, M15, M30, H1, H4, D1). Note that SMA_200 on M1 requires only 200 minutes of data, which is a much shorter time window than SMA_200 on D1.

How do I detect a golden cross or death cross?

Query SMA_50 and SMA_200 for the same symbol and timeframe (D1 is typical). If SMA_50 > SMA_200, a golden cross is active. Compare values on successive poll intervals to detect the crossover moment itself.

Is SMA_20 the same value as BB_middle from the Bollinger Bands endpoint?

Yes — the middle band of Bollinger Bands is the SMA_20 of the same candle series. You can use either indicator name and get the same value.

What happens to SMA_200 at market open when there aren't 200 candles yet?

The API returns the SMA calculated from however many bars are available at that point; the response carries the value only, with no shortfall flag. For D1, SMA_200 data is only accurate once 200 trading days are in the database (which is available on all live symbols).

Start building

Start Building in 5 Minutes

Sign up, grab your API key, make your first request.

Every new account starts with $2.50 of pay-as-you-go credit. No card required.