Summary

Comprehensive factual snapshot for a single asset

GET https://api.tickerdb.com/v1/summary/AAPL

Returns the full factual state of a single asset: categorical facts first, with optional stability metadata for trend, momentum, volatility, volume, patterns, support/resistance context, sector context, and fundamentals (stocks). No bias, no score, no recommendation.

The summary endpoint handles four modes depending on the parameters you provide:

ModeParametersDescription
LatesttickerMost recent snapshot for the asset
Historicalticker + dateSnapshot for a specific past date
Date Rangeticker + start + endBulk historical series across a date range
Event Lookupticker + field + bandHistorical band transition events with aftermath data
Tier Access
Starter Core technical sections: trend, momentum, extremes, volatility, volume, patterns.
Plus Adds support/resistance context and basic fundamentals.
Pro Adds sector_context and advanced fundamentals.
Band Stability Metadata
Plus Pro Summary keeps sibling _meta objects off by default so the primary band label stays front-and-center. Add meta=true to include them across the response, or explicitly request a *_meta field in fields. Each _meta object can include stability (fresh, holding, established, or volatile), periods_in_current_state, flips_recent, and flips_lookback. Not available on Starter tier. See Band Stability.
Freshness And Methodology
Every summary includes as_of_date so you can see which market session the snapshot represents, plus an ohlcv object for that same daily or weekly candle. Use data_status for the high-level freshness mode, and Categorical Bands when you need the exact band definitions behind labels like deep_value or oversold. For update timing, coverage, and data-quality notes, see Data Quality.

Parameters

ParameterTypeDefaultDescription
tickerstringRequired. Asset symbol (e.g. AAPL). Path parameter.
timeframestringdailydaily or weekly
datestringlatestHistorical mode. Snapshot for a specific date (YYYY-MM-DD). Starter 30 days. Plus 2 years. Pro 5+ years.
startstringDate range mode. Inclusive start date (YYYY-MM-DD). Requires end. Sequential ranges must fit within your plan cap: Starter 3 rows. Plus 10 rows. Pro 50 rows.
endstringDate range mode. Inclusive end date (YYYY-MM-DD). Requires start.
fieldsstringfull summarySnapshot and history modes only. JSON array or comma-separated list of sections and dotted paths to return, such as ohlcv.close, trend, momentum.rsi_zone, support_level.level_price, fundamentals.valuation_zone, or levels.support_levels.
metabooleanfalseSnapshot and history modes only. Add meta=true to include sibling _meta / status_meta stability objects in the response. Explicit *_meta field paths in fields still work without this flag.
samplestringDate range mode only. Use even to evenly distribute snapshots across the full filtered range.
limitintegerplan max (sample) / 10 (events)Date range mode: only valid with sample=even, where it requests sampled rows up to your plan cap (Starter 3, Plus 10, Pro 50). Event mode: max events, max 100.
fieldstringEvent mode. Band field name to query. Prefer the full schema/search name (e.g. momentum_rsi_zone, extremes_condition, trend_direction, trend_stage, trend_ma20_slope, trend_ma_crossover_event, trend_distance_ma40, pattern_bull_flag, fundamentals_valuation_zone). Short aliases like rsi_zone still work for common fields.
bandstringEvent mode. Filter to a specific band value (e.g. deep_oversold). MA distance event fields also accept grouped aliases above and below, which expand to the three corresponding granular MA bands.
context_tickerstringEvent mode. Second ticker for cross-asset correlation. Requires context_field and context_band. Plus Pro
context_fieldstringEvent mode. Band field to check on the context ticker
context_bandstringEvent mode. Only return events where context ticker was in this band. MA distance context fields also accept grouped aliases above and below.
Naming Model
Summary responses are nested JSON, so the docs use dotted paths like trend.direction and fundamentals.valuation_zone. Search and /v1/schema/fields use canonical flat snake_case names like trend_direction and fundamentals_valuation_zone. Watchlist diffs keep short top-level technical names like rsi_zone and trend_direction, but keep dotted fundamentals names like fundamentals.valuation_zone. When you pass field=... in Summary event mode, use the canonical flat names from Schema.
Field Selection
Use fields when you want smaller, more LLM-friendly summary payloads. The endpoint always keeps top-level identity keys like ticker, timeframe, market_cap, and market_cap_tier, then returns only the requested sections or dotted paths. Summary omits _meta by default even when you request a whole section like trend; add meta=true for full-section stability metadata, or explicitly request just the few *_meta paths you need. In historical range mode, the duplicate top-level levels block is only returned when you explicitly request levels or a child path like levels.support_levels.

Response Sections

Identification

FieldTypeDescription
tickerstringAsset symbol
timeframestringdaily or weekly
asset_classstringstock, crypto, or etf
sectorstringSector or category
market_capnumber | nullRaw stock market capitalization in USD when available
market_cap_tierstring | nullMarket-cap bucket: nano, micro, small, mid, large, mega, or ultra_mega
data_statusstring"eod"
as_of_datestringThe session date represented by this snapshot (YYYY-MM-DD)
performancestringCandle performance vs. asset's own history. Per-ticker percentile-based: sharp_decline through sharp_gain. See Bands.

ohlcv

Latest, historical, and range summary rows include the OHLCV candle for the same timeframe and as_of_date. Daily summaries expose the daily candle; weekly summaries expose the Monday-through-Sunday aggregate candle. For longer paginated bar history, use OHLCV.

FieldTypeDescription
ohlcv.opennumber | nullCandle open
ohlcv.highnumber | nullCandle high
ohlcv.lownumber | nullCandle low
ohlcv.closenumberCandle close
ohlcv.volumeinteger | nullCandle volume

trend

FieldTypeDescription
trend.directionstringstrong_uptrend through strong_downtrend
trend.duration_daysintegerDays current trend has persisted
trend.ma_alignmentstringaligned_bullish, mixed, or aligned_bearish
trend.stagestringConservative 40-week stage analysis label: stage_1_base, stage_2_growth, stage_3_topping, or stage_4_decline. Populated on weekly candles when the evidence is sufficient; otherwise null.
trend.ma_slopesobject | null5-period slope state for ma_8, ma_20, ma_40, ma_50, ma_100, and ma_200: steep_up, shallow_up, flat, shallow_down, or steep_down. Individual flat search/schema fields are trend_ma8_slope through trend_ma200_slope.
trend.ma_compression_bandstring | nullSpread between the 8, 50, and 200 moving averages: ultra_compressed, compressed, or fanned_out
trend.ma_crossover_eventstring | nullHighest-priority MA cross for the candle: 50/200 golden or death cross, 20/50 trend cross, or 8/20 sharp/lazy momentum cross. none means enough data existed and no cross occurred.
trend.moving_average_valuesobject | nullRaw SMA values for ma_8, ma_20, ma_40, ma_50, ma_100, and ma_200. Individual flat search/schema fields are ma8 through ma200.
trend.distance_from_ma_bandobjectMA distance bands for ma_8, ma_20, ma_40, ma_50, ma_100, ma_200
trend.volume_confirmationstringconfirmed, diverging, or neutral

momentum

FieldTypeDescription
momentum.rsi_zonestringCurrent RSI zone
momentum.stochastic_zonestringCurrent Stochastic zone
momentum.xtrm_scorefloatXTRM pressure score
momentum.rsi_stochastic_agreementbooleanRSI and Stochastic agree?
momentum.macd_statestringMACD histogram state
momentum.directionstringaccelerating, steady, decelerating, bullish_reversal, or bearish_reversal
momentum.divergence_detectedbooleanPrice diverging from momentum?
momentum.divergence_typestringbullish_divergence, bearish_divergence, or null

extremes

FieldTypeDescription
extremes.conditionstringdeep_oversold through deep_overbought, or normal
extremes.days_in_conditionintegerConsecutive days in extreme. 0 if normal
extremes.historical_median_durationfloatMedian duration for this asset
extremes.historical_max_durationintegerLongest streak for this asset
extremes.occurrences_1yrintegerOccurrences in past year
extremes.condition_percentilefloatRarity of current conditions. 0–100
extremes.condition_raritystringHuman-readable rarity: extremely_rare, very_rare, rare, uncommon, occasional, or common

volatility

FieldTypeDescription
volatility.regimestringlow, normal, above_normal, high, or extreme
volatility.regime_trendstringcompressing, stable, or expanding
volatility.squeeze_activebooleanBollinger squeeze currently active
volatility.squeeze_daysintegerDays squeeze active. 0 if not
volatility.historical_avg_squeeze_durationfloatAverage squeeze duration for this asset

volume

FieldTypeDescription
volume.ratio_bandstringToday vs. 50-day average
volume.percentilefloatRank in 1-year history
volume.accumulation_statestringAccumulation/distribution state
volume.climax_detectedbooleanVolume climax in last 5 bars
volume.climax_typestringbuying_climax, selling_climax, or null
volume.price_direction_on_volumestringPrice direction on the elevated-volume bar, typically up, down, or flat
volume.consecutive_elevated_daysintegerCurrent streak length of elevated-volume sessions
volume.historical_avg_elevated_streakfloatAverage elevated-volume streak length for this asset

support_level / resistance_level

Each is an object (or null if no level found). Both share the same fields:

FieldTypeDescription
statusstringintact, approaching, or breached
level_pricenumber | nullRaw support or resistance level price in USD
status_metaobject | nullOptional level-status stability metadata on paid tiers when meta=true or when explicitly requested
consecutive_closes_beyondintegerConsecutive closes past the level. 0 if intact or approaching
distance_bandstringat_level through very_far
touch_countintegerTimes tested (past year)
held_countintegerTimes level held
broke_countintegerTimes level broke
last_tested_days_agointegerDays since last test
typestringhorizontal or ma_derived
ma_namestring | nullMoving-average name when the level is MA-derived, otherwise null
volume_at_tests_bandstringTypical volume at tests

levels.support_levels / levels.resistance_levels

Date range mode can also return a top-level levels object when you explicitly request levels, levels.support_levels, or levels.resistance_levels. These arrays expose the tracked candidate levels for each historical row using the same public structure as the current support_level and resistance_level objects, including raw USD level_price values.

FieldTypeDescription
levels.support_levels / levels.resistance_levelsobject[]Ordered arrays of support or resistance candidates for that historical date
level_pricenumber | nullRaw level price in USD
distance_bandstringat_level through very_far
touch_countintegerTimes tested (past year)
held_countintegerTimes level held
broke_countintegerTimes level broke
last_tested_days_agointeger | nullDays since the level was last tested
typestring | nullhorizontal or ma_derived
ma_namestring | nullMoving-average name when the level is MA-derived, otherwise null
volume_at_tests_bandstring | nullTypical volume at tests
statusstring | nullintact, approaching, or breached
consecutive_closes_beyondintegerConsecutive closes past the level
status_metaobjectLevel-status stability metadata when transition history exists for that row and meta=true is enabled

range_position

Top-level field: lower_third, mid_range, or upper_third.

patterns

Rules-based chart pattern setup states. These fields are scan conditions, not breakout or breakdown guarantees.

FieldTypeDescription
patterns.bull_flagstring | nullBull flag setup state: no_setup, immature, mature, or failed. Flat schema/search field: pattern_bull_flag.
patterns.bear_flagstring | nullBear flag setup state: no_setup, immature, mature, or failed. Flat schema/search field: pattern_bear_flag.

sector_context Pro

FieldTypeDescription
sector_context.rsi_zonestringSector aggregate RSI zone
sector_context.trendstringSector aggregate trend
sector_context.asset_vs_sector_rsistringweaker, aligned, or stronger
sector_context.asset_vs_sector_trendstringweaker, aligned, or stronger
sector_context.agreementbooleanWhether the asset and sector are directionally aligned across the tracked sector states
sector_context.oversold_countintegerPeers oversold (if applicable)
sector_context.overbought_countintegerPeers currently overbought
sector_context.breakout_countintegerPeers currently in breakout-style conditions
sector_context.total_countintegerTotal peers
sector_context.valuation_zonestringSector aggregate valuation band when available
sector_context.elevated_volume_countintegerPeers currently showing elevated volume

fundamentals Stocks Only

Omitted entirely for crypto and ETFs — keys are absent, not null.

Plus

FieldTypeDescription
fundamentals.valuation_zonestringdeep_value through deeply_overvalued
fundamentals.growth_zonestringYoY revenue/EPS growth band
fundamentals.growth_zone_metaobject | nullOptional band stability metadata for growth_zone on paid tiers when requested
fundamentals.earnings_proximitystringNext earnings timing
fundamentals.analyst_consensusstringAggregate analyst recommendation

Pro Only Pro

FieldTypeDescription
fundamentals.valuation_percentilefloatRarity in asset's 5yr history. 0–100
fundamentals.pe_vs_historical_zonestringP/E vs. 5yr range
fundamentals.pe_vs_sector_zonestringP/E vs. sector median
fundamentals.pb_vs_historical_zonestringP/B vs. 5yr range
fundamentals.revenue_growth_directionstringRevenue trend direction
fundamentals.revenue_growth_direction_metaobject | nullOptional band stability metadata for revenue_growth_direction when requested
fundamentals.eps_growth_directionstringEPS trend direction
fundamentals.eps_growth_direction_metaobject | nullOptional band stability metadata for eps_growth_direction when requested
fundamentals.last_earnings_surprisestringbig_beat, beat, met, missed, or big_miss
fundamentals.analyst_consensus_directionstringupgrading, stable, or downgrading
fundamentals.insider_activityobject | nullDerived insider activity summary. null when no recent insider dataset is available for that asset/date.
fundamentals.insider_activity.zonestringheavy_buying, moderate_buying, neutral, moderate_selling, heavy_selling, or no_activity
fundamentals.insider_activity.net_directionstringstrong_buying, buying, neutral, selling, or strong_selling
fundamentals.insider_activity.quarterstring | nullReporting quarter for the recent insider activity snapshot

Usage Examples

Latest snapshot

curl
curl "https://api.tickerdb.com/v1/summary/AAPL" \ -H "Authorization: Bearer YOUR_API_KEY"

Latest snapshot with stability metadata

curl
curl "https://api.tickerdb.com/v1/summary/AAPL?meta=true" \ -H "Authorization: Bearer YOUR_API_KEY"

Historical snapshot (specific date)

curl
curl "https://api.tickerdb.com/v1/summary/AAPL?date=2025-06-15" \ -H "Authorization: Bearer YOUR_API_KEY"

Date range (bulk history)

curl
curl "https://api.tickerdb.com/v1/summary/AAPL?start=2025-01-05&end=2025-01-16" \ -H "Authorization: Bearer YOUR_API_KEY"

Date range mode returns full sequential history in ascending date order, but only when the row count stays within your plan cap. Starter up to 3 rows. Plus up to 10 rows. Pro up to 50 rows. Lookback depth still applies separately: Starter 30 days. Plus 2 years. Pro 5+ years.

Condensed Range Sampling
If a sequential range would exceed your cap, narrow the dates or use sample=even. Sampled ranges spread snapshots across the entire matching series and return sample, row_count, and total_rows in the response.

Date range (evenly sampled)

curl
curl "https://api.tickerdb.com/v1/summary/AAPL?start=2025-01-01&end=2025-12-31&sample=even&limit=10" \ -H "Authorization: Bearer YOUR_API_KEY"

LLM-friendly range with selected fields

curl
curl "https://api.tickerdb.com/v1/summary/AAPL?start=2025-01-01&end=2025-12-31&sample=even&limit=10&fields=["trend.direction","momentum.rsi_zone","fundamentals.valuation_zone"]" \ -H "Authorization: Bearer YOUR_API_KEY"

This returns the same sampled date series, but trims each snapshot down to the requested state fields. Add levels.support_levels or levels.resistance_levels only when you specifically need the detailed historical level arrays.

Single stability field without full meta

curl
curl "https://api.tickerdb.com/v1/summary/AAPL?fields=["trend.direction","trend.direction_meta"]" \ -H "Authorization: Bearer YOUR_API_KEY"

Use this when you only need a narrow stability signal instead of every _meta object in the full payload.

Event lookup (band transitions)

curl
curl "https://api.tickerdb.com/v1/summary/AAPL?field=momentum_rsi_zone&band=deep_oversold&limit=5" \ -H "Authorization: Bearer YOUR_API_KEY"

Event mode returns historical band transition events. Starter 30-day lookback. Plus 2-year lookback + aftermath data. Pro 5+ years of lookback + aftermath data.

Paid-tier aftermaths include both the existing per-ticker performance bands and exact close-to-close percentage returns. Daily events expose return_5d_pct, return_10d_pct, return_20d_pct, return_50d_pct, and return_100d_pct. Weekly events expose the equivalent return_2w_pct through return_16w_pct. A value is null until that horizon has completed.

Event aftermath shape
{ "aftermath": { "5d": { "performance": "moderate_gain" }, "20d": { "performance": "slight_gain" }, "return_5d_pct": 6.418327, "return_20d_pct": 3.107942 } }

Event lookup (extreme-state entries)

curl
curl "https://api.tickerdb.com/v1/summary/AAPL?field=extremes_condition&band=deep_oversold&limit=5" \ -H "Authorization: Bearer YOUR_API_KEY"

Use extremes_condition when you care about entries into extreme states like deep_oversold or deep_overbought rather than the broader RSI zone transitions.

Event lookup with cross-asset correlation

curl
curl "https://api.tickerdb.com/v1/summary/AAPL?field=momentum_rsi_zone&band=deep_oversold&context_ticker=SPY&context_field=trend_direction&context_band=downtrend" \ -H "Authorization: Bearer YOUR_API_KEY"

Cross-asset correlation costs 2 credits per request. Available on Plus and Pro plans.

Event lookup with grouped MA aliases

curl
curl "https://api.tickerdb.com/v1/summary/BTCUSD?field=trend_distance_ma50&band=below&context_ticker=SPY&context_field=trend_distance_ma50&context_band=above&limit=5" \ -H "Authorization: Bearer YOUR_API_KEY"

For MA distance event fields only, band=above expands to proximity_above, extended_above, and extreme_extension_above. band=below expands to proximity_below, extended_below, and extreme_extension_below. The stored and returned event rows still use the granular MA band labels.

Latest Mode Response

The default latest response is band-first and does not include sibling _meta objects. Add meta=true when you want the paid-tier stability context inline.

GET /v1/summary/AAPL
{ "ticker": "AAPL", "timeframe": "daily", "asset_class": "stock", "sector": "Technology", "market_cap": 4345621456500, "market_cap_tier": "ultra_mega", "data_status": "eod", "as_of_date": "2026-04-11", "performance": "slight_gain", "ohlcv": { "open": 190.42, "high": 195.8, "low": 189.12, "close": 194.27, "volume": 52100400 }, "trend": { "direction": "uptrend", "duration_days": 18, "ma_alignment": "aligned_bullish", "stage": "stage_2_growth", "ma_slopes": { "ma_8": "steep_up", "ma_20": "shallow_up", "ma_40": "shallow_up", "ma_50": "flat", "ma_100": "shallow_up", "ma_200": "steep_up" }, "ma_compression_band": "compressed", "ma_crossover_event": "none", "moving_average_values": { "ma_8": 193.84, "ma_20": 194.02, "ma_40": 181.35, "ma_50": 178.94, "ma_100": 169.72, "ma_200": 156.43 }, "distance_from_ma_band": { "ma_8": "proximity_above", "ma_20": "touching", "ma_40": "extended_above", "ma_50": "extended_above", "ma_100": "extended_above", "ma_200": "extended_above" }, "volume_confirmation": "confirmed" }, "momentum": { "rsi_zone": "neutral_high", "stochastic_zone": "overbought", "rsi_stochastic_agreement": false, "macd_state": "contracting_positive", "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_trend": "stable", "squeeze_active": false, "squeeze_days": 0, "historical_avg_squeeze_duration": 8.2 }, "volume": { "ratio_band": "normal", "percentile": 52.1, "accumulation_state": "accumulation", "climax_detected": false, "climax_type": null, "price_direction_on_volume": "up", "consecutive_elevated_days": 2, "historical_avg_elevated_streak": 1.7 }, "support_level": { "level_price": 182.45, "status": "intact", "consecutive_closes_beyond": 0, "distance_band": "near", "touch_count": 6, "held_count": 5, "broke_count": 1, "last_tested_days_ago": 12, "type": "horizontal", "ma_name": null, "volume_at_tests_band": "above_average" }, "resistance_level": { "level_price": 195.8, "status": "approaching", "consecutive_closes_beyond": 0, "distance_band": "very_close", "touch_count": 3, "held_count": 3, "broke_count": 0, "last_tested_days_ago": 2, "type": "horizontal", "ma_name": null, "volume_at_tests_band": "high" }, "range_position": "upper_third", "patterns": { "bull_flag": "mature", "bear_flag": "no_setup" }, "sector_context": { "rsi_zone": "neutral", "trend": "uptrend", "asset_vs_sector_rsi": "stronger", "asset_vs_sector_trend": "aligned", "agreement": true, "oversold_count": 2, "overbought_count": 6, "breakout_count": 1, "total_count": 45, "valuation_zone": "fair_value", "elevated_volume_count": 4 }, "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", "insider_activity": { "zone": "moderate_buying", "net_direction": "buying", "quarter": "2026-Q1" } } }