Skip to Content
f1owdocs
Tool reference

Technicals

Multi-timeframe trend, RSI, MACD, ADX, ATR, volatility and structure, calculated from candles. Choose spot, perp or automatic routing, with source coverage and partial-candle handling disclosed.

Technicalsta_technicalsGET /technicals/{symbol}x402 · $0.02 / callRead-onlyMCP App

What it does

Multi-timeframe technical-analysis snapshot for one coin, computed locally from real candles (not a vendor black box): per interval — last close, RSI(14), EMA20/50/200 + SMA200, MACD(12,26,9) with signal/histogram/cross freshness, ATR(14) with 2xATR stop suggestions (feed research_trade_plan), Bollinger(20,2) with %B and bandwidth, ADX(14) with +DI/-DI, volume vs 20-candle average, and a transparent trend rule (EMA alignment qualified by ADX). 'intervals' picks the timeframes (default 1h,4h,1d; max 4 of 1m|5m|15m|30m|1h|4h|12h|1d|1w); 'market' routes candles (spot|perp|auto, default auto: spot preferred; perp when spot fails or a recent spot listing has too little history for the indicators). Support/resistance comes from the same candles: daily swing highs/lows over the last year, clustered within half a daily ATR, nearest 3 on each side with distance, swing count and last touch, plus the year's range. For levels from executed perp flow (volume at price, liquidations, OI), use flow_levels.

Parameters

NameTypeDescription
symbolrequiredpathstringCoin symbol, e.g. 'ETH' or 'BTC'
intervalsquerystring[]Candle intervals to analyze, e.g. ["4h","1d"]. Default ["1h","4h","1d"]; max 4 of 1m|5m|15m|30m|1h|4h|12h|1d|1w
marketquerystringWhich candle series: 'spot', 'perp', or 'auto' (default: spot preferred; perp when spot fails or its history is too short)

Call it

One API key works for MCP, REST and WebSocket; each call uses one unit. Agents without an account can pay per call with x402.

curl "https://mcp.f1ow.com/v1/technicals/ETH?intervals=4h,1d" \
  -H "Authorization: Bearer $F1OW_API_KEY"
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "ta_technicals",
    "arguments": {
      "symbol": "ETH",
      "intervals": [
        "4h",
        "1d"
      ]
    }
  }
}
const res = await fetch("https://mcp.f1ow.com/v1/technicals/ETH?intervals=4h,1d", {
  headers: { Authorization: `Bearer ${process.env.F1OW_API_KEY}` },
});
const data = await res.json(); // the tool's result as JSON, typed in the OpenAPI spec
console.log(data);
import os, requests

res = requests.get(
    "https://mcp.f1ow.com/v1/technicals/ETH?intervals=4h,1d",
    headers={"Authorization": f"Bearer {os.environ['F1OW_API_KEY']}"},
)
data = res.json()  # the tool's result as JSON, typed in the OpenAPI spec
print(data)
// wss://mcp.f1ow.com/v1/ws — subprotocol "jsonrpc-2.0", Authorization: Bearer <key>
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "ta_technicals",
    "arguments": {
      "symbol": "ETH",
      "intervals": [
        "4h",
        "1d"
      ]
    }
  }
}

// Or push a fresh result whenever it changes (minimum interval 15 s)
{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "subscriptions/subscribe",
  "params": {
    "name": "ta_technicals",
    "arguments": {
      "symbol": "ETH",
      "intervals": [
        "4h",
        "1d"
      ]
    },
    "intervalSeconds": 60
  }
}
# No account: the first call answers 402 with a PAYMENT-REQUIRED challenge;
# an x402 client pays it in USDC on Base and retries.
curl "https://mcp.f1ow.com/x402/v1/technicals/ETH?intervals=4h,1d"

Sample response

A real response captured 2026-11-13. Interactive is the tool's MCP App rendering it, as Claude, ChatGPT and other MCP Apps hosts show it; here it is read-only. JSON is what REST and WebSocket return, and the structuredContent of an MCP call (trimmed for length), with generatedAt for freshness. Text is the report an MCP client hands to a model.

Loading interactive view…
=== ETH technicals — computed from candles across 2 timeframes ===
Last price $1934.52 (4h spot close, Binance)

--- 4h (spot, Binance, 399 closed candles) (partial newest candle dropped) ---
Close $1934.52 | trend: downtrend (close < EMA50 < EMA200), ADX 56.4 (trending)
RSI(14) 22.2 | ATR(14) $39.6594 (2.05% of price)
EMA20 $2045.05 | EMA50 $2127.47 | EMA200 $2302.01 | SMA200 $2324.16
MACD(12,26,9) -51.51 | signal -45.29 | histogram -6.219 (below signal, crossed 2 candles ago)
Bollinger(20,2) $1951.00 - $2138.19 | %B -0.09 | bandwidth 9.2%
ADX(14) 56.4 | +DI 6.4 | -DI 45.0
Volume (last closed) $187.25M vs 20-candle avg $90.44M (2.1x)
2xATR stops from close: long $1855.20 / short $2013.84 (feed research_trade_plan)

--- 1d (spot, Binance, 399 closed candles) (partial newest candle dropped) ---
Close $2019.74 | trend: mixed (close below EMA50, below EMA200), ADX 26.5 (trending)
RSI(14) 28.1 | ATR(14) $96.7327 (4.79% of price)
EMA20 $2226.95 | EMA50 $2334.23 | EMA200 $2323.10 | SMA200 $2150.65
MACD(12,26,9) -97.05 | signal -77.32 | histogram -19.73 (below signal, crossed 5 candles ago)
Bollinger(20,2) $2024.50 - $2456.95 | %B -0.01 | bandwidth 19.3%
ADX(14) 26.5 | +DI 12.2 | -DI 29.9
Volume (last closed) $479.88M vs 20-candle avg $512.97M (0.9x)
2xATR stops from close: long $1826.27 / short $2213.21 (feed research_trade_plan)

--- Support / resistance (1d swings, last 365 closed candles, clustered within $48.3663; distances from $1934.52) ---
Resistance: $1939.27 (+0.2%, 9 swings, last 2026-08-07) | $2016.17 (+4.2%, 2 swings, last 2026-05-23) | $2092.45 (+8.2%, 2 swings, last 2026-05-18)
Support: $1818.86 (-6.0%, 9 swings, last 2026-08-11) | $1692.62 (-12.5%, 2 swings, last 2026-07-08) | $1508.84 (-22.0%, 2 swings, last 2026-06-26)
Window range: low $1505.68 (2026-06-06) – high $3565.84 (2025-11-13)
{
  "discardedIntervals": [],
  "failedIntervals": [],
  "lastPriceUsd": 1934.52,
  "levels": {
    "interval": "1d",
    "measuredFromUsd": 1934.52,
    "rangeHighAt": "2025-11-13T00:00:00.0000000+00:00",
    "rangeHighUsd": 3565.84,
    "rangeLowAt": "2026-06-06T00:00:00.0000000+00:00",
    "rangeLowUsd": 1505.68,
    "resistances": [
      {
        "distancePct": 0.245538945061307,
        "lastTouchAt": "2026-08-07T00:00:00.0000000+00:00",
        "priceUsd": 1939.27,
        "swings": 9
      },
      {
        "distancePct": 4.22068523458016,
        "lastTouchAt": "2026-05-23T00:00:00.0000000+00:00",
        "priceUsd": 2016.17,
        "swings": 2
      },
      {
        "distancePct": 8.16378223021731,
        "lastTouchAt": "2026-05-18T00:00:00.0000000+00:00",
        "priceUsd": 2092.45,
        "swings": 2
      }
    ],
    "supports": [
      {
        "distancePct": -5.9785717731875,
        "lastTouchAt": "2026-08-11T00:00:00.0000000+00:00",
        "priceUsd": 1818.86333333333,
        "swings": 9
      },
      {
        "distancePct": -12.5046523168538,
        "lastTouchAt": "2026-07-08T00:00:00.0000000+00:00",
        "priceUsd": 1692.615,
        "swings": 2
      },
      {
        "distancePct": -22.004424870252,
        "lastTouchAt": "2026-06-26T00:00:00.0000000+00:00",
        "priceUsd": 1508.84,
        "swings": 2
      }
    ],
    "toleranceUsd": 48.3663407077018,
    "windowCandles": 365
  },
  "referencePriceUsd": 1933.15,
  "symbol": "ETH",
  "timeframes": [
    {
      "adx14": 56.4188597718765,
      "asOfAt": "2026-11-13T04:00:00.0000000+00:00",
      "asOfMs": 1794542400000,
      "atr14Pct": 2.05008801613496,
      "atr14Usd": 39.6593626897341,
      "bollinger": {
        "bandwidthPct": 9.15542956253747,
        "lowerUsd": 1951.00165802505,
        "middleUsd": 2044.5975,
        "percentB": -0.0880469563458775,
        "upperUsd": 2138.19334197495
      },
      "closedCandles": 399,
      "droppedPartialCandle": true,
      "ema200Usd": 2302.0072046583,
      "ema20Usd": 2045.05493345723,
      "ema50Usd": 2127.46528586039,
      "interval": "4h",
      "lastCloseUsd": 1934.52,
      "macd": {
        "aboveSignal": false,
        "candlesSinceCross": 2,
        "histogram": -6.21884173933634,
        "macd": -51.5070671924973,
        "signal": -45.2882254531609
      },
      "market": "spot",
      "minusDi14": 45.0363412977679,
      "plusDi14": 6.42689149995672,
      "rsi14": 22.1937075251791,
      "sma200Usd": 2324.15735,
      "source": "Binance",
      "trend": "downtrend (close < EMA50 < EMA200), ADX 56.4 (trending)",
      "volumeAvg20Usd": 90439090.5660812,
      "volumeLastClosedUsd": 187245235.721526
    },
    {
      "adx14": 26.5033205700375,
      "asOfAt": "2026-11-12T00:00:00.0000000+00:00",
      "asOfMs": 1794441600000,
      "atr14Pct": 4.78936305739767,
      "atr14Usd": 96.7326814154838,
      "bollinger": {
        "bandwidthPct": 19.299763744674,
        "lowerUsd": 2024.49858791726,
        "middleUsd": 2240.726,
        "percentB": -0.011003664779183,
        "upperUsd": 2456.95341208274
      },
      "closedCandles": 399,
      "droppedPartialCandle": true,
      "ema200Usd": 2323.09777459267,
      "ema20Usd": 2226.946599274,
      "ema50Usd": 2334.23192033727,
      "interval": "1d",
      "lastCloseUsd": 2019.74,
      "macd": {
        "aboveSignal": false,
        "candlesSinceCross": 5,
        "histogram": -19.7315278665382,
        "macd": -97.053708531485,
        "signal": -77.3221806649468
      },
      "market": "spot",
      "minusDi14": 29.8773199729975,
      "plusDi14": 12.209942488498,
      "rsi14": 28.1181392951025,
      "sma200Usd": 2150.6548,
      "source": "Binance",
      "trend": "mixed (close below EMA50, below EMA200), ADX 26.5 (trending)",
      "volumeAvg20Usd": 512966545.430985,
      "volumeLastClosedUsd": 479884504.609204
    }
  ],
  "generatedAt": "2026-11-13T04:00:00.0000000+00:00"
}

Call Technicals from your agent

Sign in, get an API key and make your first call in under a minute. No card required.

For agents: this page as Markdown · all docs

On this page