Technical indicators API · Pre-calculated for software

Technical indicators without the calculation layer.

Request RSI, MACD, moving averages, Bollinger Bands, ADX, Ichimoku, ATR and other technical measures from one REST endpoint. Get structured values with price context, timestamps and OHLCV data — ready for dashboards, alerts, screeners and analytics workflows.

7 timeframes Default 500 historical points per request X-API-Key authentication
tickatlas.com / v1 / indicator 200 OK
GET /v1/indicator?symbol=EURUSD&indicator=RSI_14&timeframe=H1
EUR/USD · H1 · RSI 14
58.43
neutral
Bid / Ask1.08432 / 1.08443
Value58.43
TimeframeH1
Server time12:00:00Z
{
  "symbol": "EURUSD",
  "indicator": "RSI_14",
  "timeframe": "H1",
  "value": 58.43,
  "bid": 1.08432,
  "ask": 1.08443,
  "updated_at": 1774267200,
  "server_time": "2026-03-23T12:00:00+00:00"
}
42Indicator series
4Indicator families
7Timeframes
3-45mIndicator cache TTL
Popular indicators

Start with the indicators developers reach for first.

Each indicator is returned through the same endpoint pattern, so switching from momentum to trend or volatility analysis means changing parameters — not integrating a new product.

Documented library

Four families. One consistent request model.

The indicator reference groups the documented library into trend, momentum, volatility and volume analysis. That keeps discovery simple while the API contract stays identical across every family.

9 documented

Trend

Moving averages and directional tools for identifying trend direction, structure and strength.

  • SMA
  • EMA
  • MACD
  • ADX
  • Ichimoku
  • Alligator
  • SAR
  • TEMA
  • DEMA
6 documented

Momentum

Oscillators for measuring momentum, overbought/oversold states and price-change intensity.

  • RSI
  • Stoch
  • CCI
  • Williams %R
  • Momentum
  • DeM
3 documented

Volatility

Measures of range and dispersion for understanding how widely and quickly prices are moving.

  • BB
  • ATR
  • StdDev
4 documented

Volume

Volume-based measures for evaluating flow, participation and accumulation/distribution behavior.

  • OBV
  • MFI
  • A/D
  • Tick Vol
Complete catalogue

Every documented indicator, with its reference and its guide.

The same request pattern reaches all of them. Each entry links to the endpoint documentation and to a written explanation of what the measure does.

Trend

Moving averages and directional tools for identifying trend direction, structure and strength.

Momentum

Oscillators for measuring momentum, overbought/oversold states and price-change intensity.

Volatility

Measures of range and dispersion for understanding how widely and quickly prices are moving.

Volume

Volume-based measures for evaluating flow, participation and accumulation/distribution behavior.

One endpoint pattern

Change the indicator, not your integration.

The core request is intentionally boring: symbol, indicator, timeframe and your API key. That makes the endpoint easy to wrap in your own SDK, job runner, alert pipeline or data service.

  • Required: symbol and indicator.
  • Optional timeframe, with H1 as the documented default.
  • Authenticate with the X-API-Key header.
# RSI for EUR/USD on H1
curl -H "X-API-Key: YOUR_API_KEY" \
  "https://tickatlas.com/v1/indicator?symbol=EURUSD&indicator=RSI_14&timeframe=H1"

# same contract, different indicator
curl -H "X-API-Key: YOUR_API_KEY" \
  "https://tickatlas.com/v1/indicator?symbol=XAUUSD&indicator=ATR_14&timeframe=M15"

# a historical series — different route, adds from/to/limit
curl -H "X-API-Key: YOUR_API_KEY" \
  "https://tickatlas.com/v1/indicator/history?symbol=GBPUSD&indicator=RSI_14&timeframe=H4&limit=100"
# the latest value: symbol + indicator + timeframe
URL = "https://tickatlas.com/v1/indicator"
H   = { "X-API-Key": KEY }

d = requests.get(URL, headers=H, params={
    "symbol": "EURUSD", "indicator": "RSI_14", "timeframe": "H1",
}).json()["data"]

# the value arrives with the price context of the same read
print(d["symbol"], d["indicator"], d["timeframe"], d["value"])
print(d["bid"], d["ask"], d["updated_at"], d["server_time"])

# a series is a different route — one call, weighted 5×
s = requests.get(URL + "/history", headers=H, params={
    "symbol": "GBPUSD", "indicator": "RSI_14",
    "timeframe": "H4", "limit": 100,
}).json()["data"]

print(s["count"], s["from"], s["to"], s["max_window_hours"])
for p in s["series"]:           # [{ "time": ..., "value": ... }]
    print(p["time"], p["value"])
// one value per call; there is no list form on this route
const res = await fetch(
  "https://tickatlas.com/v1/indicator?symbol=EURUSD&indicator=RSI_14&timeframe=H1",
  { headers: { "X-API-Key": KEY } },
);
const body = await res.json();

// a non-2xx uses the same envelope, with error in place of data
if (!res.ok) throw new Error(body.error.code);  // 404 also lists error.available_indicators

const { data } = body;
console.log(data.symbol, data.timeframe, data.indicator, data.value);
console.log(data.bid, data.ask, data.updated_at, data.server_time);
Indicator value
58.43 RSI 14 · EUR/USD · H1
Request echoEURUSD · H1 · RSI_14
Price contextBid 1.08432 · Ask 1.08443
Timestampsupdated_at + server_time
More than a single number

Keep the indicator and its market context together.

The documented RSI response returns the computed value alongside the bid and ask at the moment of calculation, and the time of the data twice — updated_at as epoch seconds, server_time as ISO-8601 UTC. That is enough to judge how fresh the number is and what the spread around it was, without a second call just to establish context.

Timeframes & history

One integration across 7 market intervals.

Use the same indicator endpoint on M1, M5, M15, M30, H1, H4, D1. For a series rather than the latest value, /v1/indicator/history takes the same symbol, indicator and timeframe plus from, to and limit, which defaults to 500 and is then bounded per timeframe by how far back that timeframe is retained.

  • M1 — 1 Minute
  • M5 — 5 Minutes
  • M15 — 15 Minutes
  • M30 — 30 Minutes
  • H1 — 1 Hour (default)
  • H4 — 4 Hours
  • D1 — Daily
Developer-first behavior

Designed to disappear into your stack.

The API should feel like infrastructure: predictable authentication, familiar REST semantics, structured errors and enough contextual data to reduce integration glue.

Redis-cached values

Indicator values are served from Redis, so repeated reads do not re-run the calculation. Each timeframe is held just past the interval at which our data updates it.

M1 180s · H1 900s · D1 2700s

Standard API-key auth

Pass your key in one request header. No custom session flow for server-to-server integrations.

X-API-Key: tk_...

Structured responses

Indicator value, price context, timestamps and consistent error payloads are machine-readable JSON.

application/json

Scales beyond one symbol

Related endpoints add batching, screening and broader analysis without changing the integration.

/v1/multi · /v1/screener
Related endpoints

Indicators are one layer of a larger API surface.

Use a single indicator when that is all you need, then expand into batching, screening, candle history or higher-level summaries as the product grows.

Developer API pricing

Start small. Keep the same API as usage grows.

The indicator endpoint sits inside the broader developer API plans, so you can add related endpoints without opening a separate account or billing model.

There is no free tier and no trial. Every account starts on pay-as-you-go with $2.50 of prepaid credit, no card and no overage — monthly plans lift the starting quota.
Pay as you go
$0 to start 200 requests/day · 30/min until you top up
  • $2.50 of credit included
  • Every REST endpoint except raw ticks
  • No card required, no overage
  • 10 API keys
Start free
Starter
$29/mo 10,000 requests · 120/min
  • Every REST endpoint except raw ticks
  • WebSocket streaming, 5 symbols
  • Released calendar actuals
  • Email support
  • 3 API keys
View plan
Enterprise
$349/mo 1,000,000 requests · 6000/min
  • Everything in Pro
  • Dedicated support
  • 100 API keys
  • Custom indicators
  • SLA guarantee
  • On-premise option
Contact sales
Common software patterns

Use computed indicators without owning the indicator pipeline.

Keep the maths and the refresh layer behind one API while your application focuses on user experience, automation and domain logic.

Screeners & ranking tools

Compare symbols against indicator thresholds, rank conditions and surface only the instruments that match your application rules.

RSIATRADX

Dashboards & widgets

Populate visual components with normalized indicator values while keeping the computation layer off the frontend.

chartswidgetsstatus panels

Automation & alerts

Feed structured indicator responses into rules, workflows, scheduled jobs or AI systems that need market-state features.

alertsagentspipelines
Frequently asked questions

Indicators, clarified.

Practical details about the documented library, the response format, timeframes and how the endpoint fits into the rest of the platform.

Which indicators are currently documented?

The indicator reference documents four families: 9 trend indicators, 6 momentum oscillators, 3 volatility measures and 4 volume measures. Examples include SMA, EMA, MACD, ADX, Ichimoku, RSI, Stochastic, Bollinger Bands, ATR, OBV and MFI. Together those families expose 42 individually addressable series — one family can return several, as SMA does across its five periods and MACD across its main, signal and histogram components.

Which timeframes can I request?

M1, M5, M15, M30, H1, H4, D1. H1 is the documented default when a timeframe is not supplied.

Can I request historical indicator values?

Yes, on a different route. GET /v1/indicator returns the latest value only — symbol, indicator and timeframe. Historical series come from GET /v1/indicator/history, which adds from, to and limit, returns series as [{time, value}], and carries a 5× weight while counting once against a daily quota. It is available on Starter, Pro, Enterprise and pay-as-you-go keys.

What else comes back with an indicator value?

Eight fields, and that is the whole object: symbol, timeframe and indicator identify the request, value carries the result, bid and ask give the price context at calculation time, and updated_at and server_time date the data: the same instant, as epoch seconds and as ISO-8601 UTC. There is no signal classification, no OHLC block and no metadata section.

Can I process multiple symbols?

Yes. /v1/multi batches indicators across symbols — up to 50 for real-time values and 10 for historical ones — and /v1/screener filters symbols by indicator criteria.

Does TickAtlas provide investment advice or execute trades?

No. TickAtlas provides market data and computed analytics for software use. It does not provide personalized investment advice, brokerage accounts, trade execution, custody of customer assets or transaction-counterparty services.

Pre-calculated market features, ready for your application

Ask for the indicator. Get structured data back.

Start with one RSI request on your $2.50 of starting credit, then reuse the same integration pattern across trend, momentum, volatility and volume analytics as your product grows.