Summary
Comprehensive factual snapshot for a single asset
Returns the full factual state of a single asset: trend, momentum, volatility, volume, support/resistance, sector context, and fundamentals (stocks). Every field is a fact — no bias, no score, no recommendation.
Tier Access
Free Core technical sections: trend, momentum, extremes, volatility, volume.Plus Adds support/resistance levels and basic fundamentals.
Pro Adds
sector_context and advanced fundamentals.
Band Stability Metadata
Plus Pro Each band field includes a sibling _meta object with stability label (fresh, holding, established, or volatile), periods_in_current_state, flips_recent, and flips_lookback. Not available on Free tier. See Band Stability.
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
ticker | string | — | Required. Asset symbol (e.g. AAPL) |
timeframe | string | daily | daily or weekly |
date | string | latest | Plus 2 years. Pro 5 years. |
Response Sections
Identification
| Field | Type | Description |
|---|---|---|
ticker | string | Asset symbol |
timeframe | string | daily or weekly |
asset_class | string | stock, crypto, or etf |
sector | string | Sector or category |
data_status | string | "eod" |
performance | string | Candle performance vs. asset's own history. Per-ticker percentile-based: sharp_decline through sharp_gain. See Bands. |
trend
| Field | Type | Description |
|---|---|---|
trend.direction | string | strong_uptrend through strong_downtrend |
trend.duration_days | integer | Days current trend has persisted |
trend.ma_alignment | string | aligned_bullish, mixed, or aligned_bearish |
trend.distance_from_ma_band | object | MA distance bands for ma_20, ma_50, ma_200 |
trend.volume_confirmation | string | confirmed, diverging, or neutral |
momentum
| Field | Type | Description |
|---|---|---|
momentum.rsi_zone | string | Current RSI zone |
momentum.stochastic_zone | string | Current Stochastic zone |
momentum.rsi_stochastic_agreement | boolean | RSI and Stochastic agree? |
momentum.macd_state | string | MACD histogram state |
momentum.direction | string | accelerating, steady, decelerating, bullish_reversal, or bearish_reversal |
momentum.divergence_detected | boolean | Price diverging from momentum? |
momentum.divergence_type | string | bullish_divergence, bearish_divergence, or null |
extremes
| Field | Type | Description |
|---|---|---|
extremes.condition | string | deep_oversold through deep_overbought, or normal |
extremes.days_in_condition | integer | Consecutive days in extreme. 0 if normal |
extremes.historical_median_duration | float | Median duration for this asset |
extremes.historical_max_duration | integer | Longest streak for this asset |
extremes.occurrences_1yr | integer | Occurrences in past year |
extremes.condition_percentile | float | Rarity of current conditions. 0–100 |
extremes.condition_rarity | string | Human-readable rarity: extremely_rare, very_rare, rare, uncommon, occasional, or common |
volatility
| Field | Type | Description |
|---|---|---|
volatility.regime | string | low, normal, above_normal, high, or extreme |
volatility.regime_trend | string | compressing, stable, or expanding |
volatility.squeeze_active | boolean | Bollinger squeeze currently active |
volatility.squeeze_days | integer | Days squeeze active. 0 if not |
volatility.historical_avg_squeeze_duration | float | Average squeeze duration for this asset |
volume
| Field | Type | Description |
|---|---|---|
volume.ratio_band | string | Today vs. 50-day average |
volume.percentile | float | Rank in 1-year history |
volume.accumulation_state | string | Accumulation/distribution state |
volume.climax_detected | boolean | Volume climax in last 5 bars |
volume.climax_type | string | buying_climax, selling_climax, or null |
support_level / resistance_level
Each is an object (or null if no level found). Both share the same fields:
| Field | Type | Description |
|---|---|---|
level_price | float | Computed level price |
status | string | intact, approaching, or breached |
consecutive_closes_beyond | integer | Consecutive closes past the level. 0 if intact or approaching |
distance_band | string | at_level through very_far |
touch_count | integer | Times tested (past year) |
held_count | integer | Times level held |
broke_count | integer | Times level broke |
last_tested_days_ago | integer | Days since last test |
type | string | horizontal or ma_derived |
volume_at_tests_band | string | Typical volume at tests |
range_position
Top-level field: lower_third, mid_range, or upper_third.
sector_context Pro
| Field | Type | Description |
|---|---|---|
sector_context.sector_rsi_zone | string | Sector aggregate RSI zone |
sector_context.sector_trend | string | Sector aggregate trend |
sector_context.asset_vs_sector_rsi | string | weaker, aligned, or stronger |
sector_context.asset_vs_sector_trend | string | weaker, aligned, or stronger |
sector_context.sector_oversold_count | integer | Peers oversold (if applicable) |
sector_context.sector_total_count | integer | Total peers |
fundamentals Stocks Only
Omitted entirely for crypto and ETFs — keys are absent, not null.
Plus
| Field | Type | Description |
|---|---|---|
fundamentals.valuation_zone | string | deep_value through deeply_overvalued |
fundamentals.growth_zone | string | YoY revenue/EPS growth band |
fundamentals.earnings_proximity | string | Next earnings timing |
fundamentals.analyst_consensus | string | Aggregate analyst recommendation |
Pro Only Pro
| Field | Type | Description |
|---|---|---|
fundamentals.valuation_percentile | float | Rarity in asset's 5yr history. 0–100 |
fundamentals.pe_vs_historical_zone | string | P/E vs. 5yr range |
fundamentals.pe_vs_sector_zone | string | P/E vs. sector median |
fundamentals.pb_vs_historical_zone | string | P/B vs. 5yr range |
fundamentals.revenue_growth_direction | string | Revenue trend direction |
fundamentals.eps_growth_direction | string | EPS trend direction |
fundamentals.last_earnings_surprise | string | big_beat, beat, met, missed, or big_miss |
fundamentals.analyst_consensus_direction | string | upgrading, stable, or downgrading |
Example
GET /v1/summary/AAPL
{
"ticker": "AAPL",
"timeframe": "daily",
"asset_class": "stock",
"sector": "Technology",
"data_status": "eod",
"performance": "slight_gain",
"trend": {
"direction": "uptrend",
"direction_meta": { "stability": "established", "periods_in_current_state": 18, "flips_recent": 1, "flips_lookback": "30d", "timeframe": "daily" },
"duration_days": 18,
"ma_alignment": "aligned_bullish",
"ma_alignment_meta": { "stability": "established", "periods_in_current_state": 22, "flips_recent": 0, "flips_lookback": "30d", "timeframe": "daily" },
"distance_from_ma_band": {
"ma_20": "slightly_above",
"ma_50": "moderately_above",
"ma_200": "moderately_above"
},
"volume_confirmation": "confirmed"
},
"momentum": {
"rsi_zone": "neutral_high",
"rsi_zone_meta": { "stability": "holding", "periods_in_current_state": 5, "flips_recent": 2, "flips_lookback": "30d", "timeframe": "daily" },
"stochastic_zone": "overbought",
"rsi_stochastic_agreement": false,
"macd_state": "contracting_positive",
"macd_state_meta": { "stability": "fresh", "periods_in_current_state": 2, "flips_recent": 3, "flips_lookback": "30d", "timeframe": "daily" },
"direction": "decelerating",
"divergence_detected": false,
"divergence_type": null
},
"extremes": {
"condition": "normal",
"days_in_condition": 0,
"historical_median_duration": 3.5,
"historical_max_duration": 11,
"occurrences_1yr": 4,
"condition_percentile": 45.2,
"condition_rarity": "common"
},
"volatility": {
"regime": "normal",
"regime_meta": { "stability": "established", "periods_in_current_state": 12, "flips_recent": 1, "flips_lookback": "30d", "timeframe": "daily" },
"regime_trend": "stable",
"squeeze_active": false,
"squeeze_days": 0,
"historical_avg_squeeze_duration": 8.2
},
"volume": {
"ratio_band": "normal",
"ratio_band_meta": { "stability": "holding", "periods_in_current_state": 4, "flips_recent": 3, "flips_lookback": "30d", "timeframe": "daily" },
"percentile": 52.1,
"accumulation_state": "accumulation",
"accumulation_state_meta": { "stability": "established", "periods_in_current_state": 15, "flips_recent": 1, "flips_lookback": "30d", "timeframe": "daily" },
"climax_detected": false,
"climax_type": null
},
"support_level": {
"level_price": 178.25,
"status": "intact",
"distance_band": "near",
"touch_count": 6,
"held_count": 5,
"broke_count": 1,
"last_tested_days_ago": 12,
"type": "horizontal",
"volume_at_tests_band": "above_average"
},
"resistance_level": {
"level_price": 195.80,
"status": "approaching",
"distance_band": "very_close",
"touch_count": 3,
"held_count": 3,
"broke_count": 0,
"last_tested_days_ago": 2,
"type": "horizontal",
"volume_at_tests_band": "high"
},
"range_position": "upper_third",
"sector_context": {
"sector_rsi_zone": "neutral",
"sector_trend": "uptrend",
"asset_vs_sector_rsi": "stronger",
"asset_vs_sector_trend": "aligned",
"sector_oversold_count": 2,
"sector_total_count": 45
},
"fundamentals": {
"valuation_zone": "fair_value",
"valuation_percentile": 52.8,
"pe_vs_historical_zone": "average",
"pe_vs_sector_zone": "premium",
"pb_vs_historical_zone": "above_average",
"growth_zone": "moderate_growth",
"revenue_growth_direction": "steady",
"eps_growth_direction": "accelerating",
"earnings_proximity": "this_month",
"last_earnings_surprise": "beat",
"analyst_consensus": "buy",
"analyst_consensus_direction": "stable"
}
}