Multi-timeframe brief · API + MCP

One call reads every timeframe — and tells you when they disagree.

POST /v1/multi returns a token-compact market-state brief for each timeframe you ask for, plus a cross-timeframe alignment read: do the trends agree, or split? The divergence is spelled out — 1h up / 4h up / 1d down — so your model sees a lower-timeframe bounce inside a higher-timeframe downtrend for exactly what it is. Stocks, ETFs and crypto, one schema, one round trip.

StocksETFsCryptoup to 4 TFsone call · $0.025
NVDA· multi-timeframe
Yahoo · split & dividend adjusted · POST /v1/multi
Timeframes diverge
1h
Up · moderate
"NVDA: uptrend (moderate), +0.38% last 1h, RSI 61.40 (neutral)."
4h
Up · strong
"NVDA: uptrend (strong), +1.22% last 4h, RSI 64.10 (neutral)."
1d
Down · weak
"NVDA: downtrend (weak), -0.86% last 1d, RSI 46.70 (neutral)."
alignment.divergence
1h up / 4h up / 1d down
alignment.nl
"NVDA: timeframes diverge — 1h up / 4h up / 1d down."

One /v1/multi call. The lower timeframes are climbing while the daily still points down — a counter-trend bounce, made explicit as data (aligned:false, direction:"range"). Descriptive market state, never a directive.

TL;DR

One POST /v1/multi (or the MCP tool patternfetch_multi) with { ticker, timeframes[] } returns a compact views array — trend, strength and a one-line nl per timeframe — the full briefs alongside, and an alignment object: the trend per timeframe, an aligned boolean, the shared direction, and a divergence string like "1h up / 4h up / 1d down" when they conflict. Default timeframes 1h, 4h, 1d (up to four). One schema for stocks, ETFs and crypto. $0.025 a call — less than three separate briefs.

Why it matters

The signal isn't any one timeframe — it's whether they agree.

A trend that shows up on the 1h, the 4h and the 1d is a different animal from a 1h pop against a falling daily. Reading them one at a time hides the relationship. The alignment read surfaces it in a single call.

Alignment · confirmation

All timeframes point the same way

When 1h, 4h and 1d agree, a setup on the lower timeframe is running with the higher-timeframe tide, not against it. aligned:true, and direction is the shared trend. Fewer surprises from a bigger-picture move you weren't looking at.

1h up · 4h up · 1d upaligned up
Divergence · caution

A lower timeframe fights the higher one

A 1h up-move while the daily is down is often a counter-trend bounce inside a larger decline — the classic trap for a model that only looked at the short timeframe. aligned:false, direction:"range", and the split is named.

1h up · 4h up · 1d downdiverge

This is exposed as descriptive data: patternfetch surfaces the agreement or the split and stops there. What to do with it is your model's call, not ours — the alignment read is impersonal market state, not a signal to act on.

The one call

Request in, three briefs + an alignment read out.

A real /v1/multi shape for NVDA across 1h, 4h, 1d. The full per-timeframe briefs travel in briefs; the compact views and alignment are the cross-timeframe summary.

Request
POST https://patternfetch.com/v1/multi
Authorization: Bearer pf_…
Content-Type: application/json

{ "ticker": "NVDA",
  "timeframes": ["1h", "4h", "1d"] }
Response (views + alignment)
{ "sym": "NVDA",
  "views": [
    { "tf": "1h", "trend": "up",   "strength": 0.34 },
    { "tf": "4h", "trend": "up",   "strength": 0.52 },
    { "tf": "1d", "trend": "down", "strength": 0.28 }
  ],
  "alignment": {
    "trends": { "1h": "up", "4h": "up", "1d": "down" },
    "aligned": false,
    "direction": "range",
    "divergence": "1h up / 4h up / 1d down"
  },
  "nl": "NVDA: timeframes diverge — 1h up / 4h up / 1d down." }

Each views[i] also carries the per-timeframe one-line nl, and the full brief for every timeframe (candles, patterns with base rates, levels, regime, indicators) rides along in briefs — so one round trip gives your model both the detail and the cross-timeframe read. See it live →

How aligned is computed

The timeframes are aligned unless at least one is up while another is down. Ranging timeframes never create a conflict on their own. When aligned, direction is the shared trend (up, down or range) and divergence is null; when conflicting, direction is range and divergence lists each timeframe and its trend, shortest to longest. Deterministic and impersonal — no new data source, just the per-timeframe regimes stacked.

One schema, every asset

Same call for a stock, an ETF or a coin.

Swap the ticker and the alignment logic is identical. Here the higher and lower timeframes agree — an aligned-up read on BTC/USDT.

Aligned example — crypto
# POST /v1/multi { "ticker": "BTC/USDT", "timeframes": ["1h","4h","1d"] }
{ "sym": "BTC/USDT",
  "alignment": {
    "trends": { "1h": "up", "4h": "up", "1d": "up" },
    "aligned": true, "direction": "up", "divergence": null },
  "nl": "BTC/USDT: trend aligned up across 1h, 4h, 1d." }
  • Stocks & ETFs come from Yahoo, split & dividend adjusted (delayed / EOD); crypto from Binance in real time. Examples: AAPL, SPY, NVDA, QQQ, BTC/USDT, ETH/USDT.
  • Timeframes span 1m → 1w; pick up to four per call. A common trio is 1h, 4h, 1d; a swing view might use 4h, 1d, 1w.
  • The per-timeframe briefs carry the same evidence-calibrated patterns as /v1/brief — so an aligned trend that also has a real pattern base rate behind it reads differently from one that doesn't.
Pricing & access

One call, cheaper than three.

The multi view bundles a brief per timeframe and the alignment read into a single metered call — fewer round trips and fewer tokens than firing three briefs and diffing them yourself.

EndpointReturnsPrice
POST /v1/multiBrief per timeframe + cross-timeframe alignment$0.025
POST /v1/briefSingle-timeframe market-state brief$0.01
POST /v1/demoNo-signup brief (rate-limited)free
Free to start:

Try the cross-timeframe view on the free demo — no signup. Then a free key with $0.05 starter credit from one call, no card. Pay with x402 (USDC on Base, no account) or Stripe. Credits never expire. Full pricing →

For AI agents · MCP

patternfetch_multi over MCP.

Streamable HTTP at /mcp. Discovery (tools/list) is free — no key; a tools/call is billed like the REST route.

patternfetch_brief patternfetch_multi patternfetch_delta patternfetch_analogs patternfetch_capabilities
Connect — OAuth, nothing to paste
# one line — OAuth mints a free key
claude mcp add --transport http \
  patternfetch https://patternfetch.com/mcp

# then call the tool
patternfetch_multi({
  ticker: "AAPL",
  timeframes: ["4h", "1d", "1w"] })
Or let the agent pay as it goes

x402 settles each call in USDC on Base — no account, no card, no key — discoverable at /.well-known/x402.json. The agent pays for its own multi-timeframe reads autonomously. A tools/call is billed exactly like POST /v1/multi.

FAQ

Questions.

What does /v1/multi return?
A views array with a compact per-timeframe read (tf, trend, strength, one-line nl), the full briefs alongside, and an alignment object: trends per timeframe, an aligned boolean, the shared direction, and a divergence string like "1h up / 4h up / 1d down" when they conflict. Default timeframes are 1h, 4h, 1d; request up to four.
When does alignment or divergence matter?
When the trends agree, a setup on a lower timeframe is running with the higher-timeframe tide — a confirmed picture. When they diverge (e.g. a lower timeframe up while the daily is down), a move may be counter-trend inside a larger one. The alignment read makes that agreement or conflict explicit in one call. It is descriptive data, not a signal to act on.
How is aligned computed?
Timeframes are aligned unless at least one is up while another is down. Ranging timeframes never create a conflict on their own. When aligned, direction is the shared trend and divergence is null; when conflicting, direction is range and divergence lists each timeframe and its trend, shortest to longest.
Stocks as well as crypto? And the price?
Yes — one schema covers US stocks and ETFs (Yahoo, adjusted) and crypto spot pairs (Binance, realtime). POST /v1/multi is $0.025 per call — cheaper than three separate briefs — and there's a free no-signup demo. The MCP tool patternfetch_multi returns the same view.
Is this investment advice?
No. It's impersonal market data and algorithmic signals, for informational purposes only. The alignment and divergence are descriptive, not a recommendation — not investment, financial, legal or tax advice, and not personalized. See the disclaimer.
Related

Keep exploring.