It asks for the interpreted state, not a 200-number array. patternfetch returns RSI, EMA and ATR as labels an agent can act on — overbought, above_20_50, a volatility percentage — with the exact numeric value still attached. Cheaper in tokens, and no arithmetic on raw numbers where LLMs hallucinate.
RSI · EMA · ATR (volPct) · 1m → 1d · interpreted
One POST /v1/brief (or the MCP tool patternfetch_brief) returns interpreted indicator state: RSI as { v, state: overbought | oversold | neutral }, EMA as { v, state: above_20_50 | below_20_50 | mixed | above_20 | below_20 }, and volatility as volPct (ATR as a percentage of price, in the regime block). The agent reads a label, not a 200-number array — and the same call also returns patterns, support/resistance levels, and a one-line nl summary.
An LLM reasoning over a long array of indicator numbers does two things badly: it burns tokens carrying the array, and it hallucinates when it tries to compare, average, or cross those numbers. A state label sidesteps both. overbought is cheap to carry and unambiguous to act on; above_20_50 already encodes the moving-average crossover the agent would otherwise have to derive itself. The numeric v is still there for anyone who needs the exact figure — you lose nothing, you just stop paying for arithmetic the model gets wrong. The thresholds and windows are spelled out in the methodology.
curl -X POST https://patternfetch.com/v1/brief \
-H "Authorization: Bearer pf_…" \
-H "Content-Type: application/json" \
-d '{ "ticker": "BTC/USDT",
"timeframe": "4h" }'
"indicators": {
"rsi": { "v": 58.3, "state": "neutral" },
"ema": { "v": 61240.8, "state": "above_20_50" }
},
"regime": {
"trend": "up",
"strength": 0.42,
"volPct": 2.13
}
The same call also returns detected chart & candlestick patterns, support/resistance levels, and a one-line nl summary the agent can act on directly — the indicators above are one block of the full brief. See it live →
① No-signup demo — POST /v1/demo returns a real brief (indicators included) with no key. ② Free key with $0.05 starter credit (~5 briefs) from one call, no card. Then pay per call. Only actual tool calls are metered. Pricing →
Try it with the no-signup demo (POST /v1/demo), then grab a free key with $0.05 starter credit (~5 briefs). After that a brief is $0.01. Pay with x402 (USDC on Base, no account) or a Stripe card. Full breakdown on the pricing page.
The MCP tool patternfetch_brief returns the same interpreted indicators (and patterns, levels, regime, nl) over Streamable HTTP. Two ways to connect, both zero-friction:
Add the server URL and click Authorize once. patternfetch mints a free-tier key for you automatically — nothing to paste.
# Claude.ai → Settings → Connectors → Add custom connector
https://patternfetch.com/mcp
# Authorize → free key issued automatically
claude mcp add --transport http patternfetch \
https://patternfetch.com/mcp \
--header "Authorization: Bearer pf_…"
RSI, EMA and ATR — interpreted. RSI as overbought / oversold / neutral; EMA as its position relative to the 20/50 averages (above_20_50, below_20_50, mixed, above_20, below_20); ATR as volPct — volatility as a percentage of price — inside the regime block.
Yes. The numeric v is included with every indicator (e.g. rsi.v = 58.3) alongside the state. For raw candles to compute your own indicators, call POST /v1/candles for the compact candle codec.
1m to 1d (1m, 5m, 15m, 1h, 4h, 1d) on crypto spot pairs.
No. It's impersonal market data and algorithmic signals, for informational purposes only — not advice, not personalized, non-executing. See the disclaimer.
Candlestick patterns API · Support/resistance levels API · Chart pattern detection API · Docs · Try free