One POST /v1/scan call scans US stocks, ETFs and crypto for the tickers currently in a given regime or printing a chart/candlestick pattern — ranked by the honest backtested base rate and its 95% CI. Your agent stops analyzing one ticker at a time and starts discovering candidates across the market.
POST /v1/scan · $0.02 · REST + MCP · x402 + Stripe
The screener is patternfetch's flagship discovery endpoint. Pass optional filters — assetClass, regime, pattern, tf, minBaseRate, limit — and POST /v1/scan returns a ranked shortlist of tickers, ordered by the honest backtested base rate + 95% CI. Same honesty moat as the brief: a coin-flip pattern is flagged as a coin flip. Also available as the patternfetch_scan MCP tool.
Most market-data APIs — patternfetch's own /v1/brief included — are lookup: you already know the ticker, and you ask for its current state. That's the right tool once you have a candidate. But an agent screening the market has the opposite problem: it doesn't know which tickers to look at yet. Calling /v1/brief on hundreds of symbols to find the handful that matter is slow, token-heavy and expensive.
"What's the state of AAPL on the 1d?" → one brief. To find candidates you'd loop /v1/brief over the whole universe yourself, then sort — many calls, many tokens, your own ranking logic.
"Which US stocks and crypto are in an uptrend printing a double_bottom, best base rate first?" → one /v1/scan call returns the ranked shortlist. Then call /v1/brief only on the names that survived.
That's the whole pitch: the scanner turns lookup into discovery, so your model finds the few real signals instead of being handed one ticker at a time — and it ranks them by evidence, not by a confident-sounding label.
/v1/brief on the top names for the full picture before your agent does anything.Every field is optional; an absent field puts no constraint on that axis. A filter-less POST /v1/scan returns the top of the universe, ranked.
| Filter | Type | Meaning |
|---|---|---|
assetClass | "stock" | "crypto" | "all" | Restrict to US stocks/ETFs, crypto pairs, or all. Default all. |
regime | "up" | "down" | "range" | Only tickers whose current regime trend matches — uptrend, downtrend, or sideways/chop. |
pattern | string | Require the ticker's top pattern to be this one: double_bottom, double_top, head_and_shoulders, bullish_engulfing, bearish_engulfing, hammer. |
tf | string | One of 1m 5m 15m 30m 1h 4h 1d 1w. The universe is currently precomputed at 1d. |
minBaseRate | 0..1 | Drop tickers whose top-pattern backtested base rate is below this floor. |
limit | int 1..500 | Max rows returned. Default 50. |
Ask for US stocks and crypto in an uptrend with at least a 55% base rate, top 20:
curl -X POST https://patternfetch.com/v1/scan \
-H "Authorization: Bearer pf_…" \
-H "Content-Type: application/json" \
-d '{ "assetClass": "all",
"regime": "up",
"minBaseRate": 0.55,
"limit": 20 }'
{
"asOf": "2026-07-05",
"tfs": ["1d"],
"universe": 137,
"count": 2,
"results": [
{ "sym":"AAPL","tf":"1d","assetClass":"stock",
"regime":"up","pattern":"double_bottom",
"baseRate":0.58,"ci95":0.03,"n":300,
"scope":"US stocks & ETFs","confidence":0.72 },
{ "sym":"BTC/USDT","tf":"1d","assetClass":"crypto",
"regime":"up","pattern":"bullish_engulfing",
"baseRate":0.56,"ci95":0.04,"n":180,
"scope":"major crypto pairs","confidence":0.69 }
],
"note":"Precomputed current-state scan ranked by
impersonal historical base rate. Discovery,
not a prediction or a buy/sell signal.",
"disclaimer":"… informational only, not advice …"
}
Each row carries sym, tf, assetClass, regime, pattern, baseRate (the ranking key), ci95, n (sample size), scope (the corpus the rate was measured over) and geometric confidence. The envelope's universe and asOf tell you how many tickers were scanned and when. See it live →
The whole feature is "ranked by the honest backtested base rate", so ordering is deterministic and evidence-first:
| Key | Direction | Why |
|---|---|---|
baseRate | desc | How often that exact pattern + timeframe + confidence band historically resolved in its own direction, with no lookahead. The strongest evidence rises first. |
confidence | desc | Geometric fit score (0..1) — breaks ties between equal base rates. |
tf then sym | asc | Stable, attributable ordering for same-strength rows. |
Tickers whose top pattern has no sufficiently-powered evidence bucket carry baseRate: null and rank last — the scanner never invents a number it can't back with history.
A confident-looking chart pattern is not the same as a pattern that works. Every other screener ranks by how cleanly a shape matches; patternfetch ranks by how often that shape has actually resolved its way, and shows you the sample size and confidence interval so you can see when a "signal" is really a coin flip. Because equities drift up over time, a bearish formation's directional base rate can sit below 50% — the scanner reports that honestly instead of hiding it. That's the moat: discovery you can trust, ranked by evidence.
The screener is also the patternfetch_scan tool on the patternfetch MCP server — same optional filters, same ranked output. Point any MCP client (Claude, Cursor, Smithery, an OpenAI agent over a bridge) at https://patternfetch.com/mcp; tool discovery is free and a call is billed like the REST route.
# one line — OAuth mints a free-tier key, nothing to paste
claude mcp add --transport http patternfetch https://patternfetch.com/mcp
Then your agent can call patternfetch_scan with, e.g., {"assetClass":"crypto","pattern":"double_top","limit":10} and reason over the ranked shortlist. See the MCP docs.
① A scan is $0.02 per call — the same pay-per-call model as every endpoint. ② No-signup demo & free key: the wider API has a keyless demo and a free key with a $0.05 starter credit, no card. ③ Pay as you go: settle with Stripe or with x402 (USDC on Base, no account) so an agent can fund itself. ④ Credits never expire. Full pricing →
A market scanner: one POST /v1/scan call scans a universe of US stocks, ETFs and crypto pairs and returns the tickers currently in a given regime or printing a chart/candlestick pattern, ranked by the honest backtested base rate + 95% CI. It turns lookup into discovery — ask which tickers match your criteria right now, get a ranked shortlist back.
By the top pattern's backtested base rate (descending), then geometric confidence, then timeframe, then symbol. Tickers with no sufficiently-powered evidence bucket carry a null base rate and rank last, so the strongest evidence rises to the top.
All optional: assetClass (stock/crypto/all), regime (up/down/range), pattern (e.g. double_bottom), tf (a timeframe; universe precomputed at 1d), minBaseRate (0..1), and limit (1..500, default 50). A filter-less scan returns the top of the universe, ranked.
$0.02 per call. Pay with x402 (USDC on Base, no account) so an agent can pay autonomously, or by card via Stripe. The wider API also has a free no-signup demo and a free key with a $0.05 starter credit.
Yes — as the patternfetch_scan tool on the MCP server (https://patternfetch.com/mcp), with the same filters and ranked output. tools/list is free; a tools/call is billed like the REST endpoint.
No. It's impersonal, algorithmic market data for informational purposes only. Base rates are gross historical directional frequencies, not predictions or buy/sell signals; past results do not guarantee future results. Not advice, not personalized, non-executing. See the disclaimer.
Try free — no signup Read the scan docs