CayøLargo
← Back to siteAPI ReferencePricingChangelog
v1.0Swagger ↗

ORIA

Activity snapshots

One row per coin per cycle: a full census of the options book, plus triple-hash change detection over it. Every option is fingerprinted (see /v1/oria/fingerprints), then three independent hashes are computed over the whole book: state (what each option is doing), flow (where capital is moving) and structure (how concentrated the cohorts are). Comparing each hash to the previous cycle turns "something changed" into a field, and which combination changed tells you what kind of change it was. Six rows per cycle, so the entire history is cheap to pull. Source: deribit_options_oria_activity_snapshots, ORIA Layer 5.

GET/v1/oria/snapshotscoreproalpha

Query Parameters

coinstringrequired

Underlying asset. Required.

e.g.BTCETHSOL
patternstringoptional

Filter by change_pattern, e.g. FR for stealth accumulation. Alpha, since it filters on the change-detection layer.

e.g.FRSFRSF
changed_onlybooleanoptional

Only cycles where at least one hash changed. Note this currently keeps 99.9% of cycles: see change_pattern for why. Kept because it will discriminate again if the hash sensitivity is retuned.

e.g.true
fromstringoptional

Start UTC (ISO 8601). Default: latest snapshot.

e.g.2026-08-01T00:00:00Z
tostringoptional

End UTC (ISO 8601). Default: now.

e.g.2026-08-07T00:00:00Z
limitintegeroptional

Max rows returned. Default 500. The effective ceiling is your tier row limit, see Tiers and Limits.

e.g.1000

Response Schema

Fields marked pro require a Pro subscription. Fields marked alpha require Alpha.

FieldTypeTierDescription
timestampdatetimecoreORIA cycle timestamp in UTC, aligned to a 10-minute boundary.
coinstringcoreUnderlying asset. One row per coin per cycle.
total_optionsintegercoreOptions tracked this cycle.
active_optionsintegercoreOptions with any volume this cycle.
call_optionsintegercoreCalls tracked.
put_optionsintegercorePuts tracked.
no_trades_optionsintegercoreOptions with no executed trades this cycle.
whale_volume_optionsintegercoreOptions in the WHALE volume bucket.
high_volume_optionsintegercoreOptions in the HIGH volume bucket.
medium_volume_optionsintegercoreOptions in the MEDIUM volume bucket.
low_volume_optionsintegercoreOptions in the LOW volume bucket.
total_volume_usdfloatcoreTotal traded volume across the book, USD.
call_volume_usdfloatcoreCall volume, USD.
put_volume_usdfloatcorePut volume, USD.
buy_volume_usdfloatcoreBuy-aggressor volume, USD.
sell_volume_usdfloatcoreSell-aggressor volume, USD.
total_whale_volume_usdfloatcoreVolume from trades at or above $250K, USD.
gross_inflow_usdfloatcoreSum of positive volume changes across options, USD.
gross_outflow_usdfloatcoreSum of negative volume changes, USD, as a positive number.
call_inflow_usdfloatcoreGross inflow into calls, USD.
call_outflow_usdfloatcoreGross outflow from calls, USD.
put_inflow_usdfloatcoreGross inflow into puts, USD.
put_outflow_usdfloatcoreGross outflow from puts, USD.
flow_options_countintegercoreOptions whose volume changed enough to be classified into a flow bucket.
total_cohortsintegercoreCohorts in the 7 moneyness x 4 expiry grid carrying data this cycle.
call_put_ratiofloatproCall volume against put volume
See detail ↓
net_flow_usdfloatproNet capital direction this cycle
See detail ↓
flow_balance_ratiofloatproHow one-sided was the flow?
See detail ↓
whale_volume_pctfloatproHow much of the tape was institutional?
See detail ↓
bullish_volume_pctfloatproShare of volume in bullish positioning
See detail ↓
bearish_volume_pctfloatproShare of volume in bearish positioning
See detail ↓
overall_positioningstringproWhere is the book leaning?
See detail ↓
overall_flow_directionstringproWhich way is capital moving?
See detail ↓
overall_execution_skewstringproWhich side was aggressing?
See detail ↓
aggressive_buying_optionsintegercoreOptions classified AGGRESSIVE_BUYING.
moderate_buying_optionsintegercoreOptions classified MODERATE_BUYING.
neutral_pressure_optionsintegercoreOptions with balanced aggressor flow.
moderate_selling_optionsintegercoreOptions classified MODERATE_SELLING.
aggressive_selling_optionsintegercoreOptions classified AGGRESSIVE_SELLING.
high_whale_optionsintegercoreOptions with heavy whale participation.
moderate_whale_optionsintegercoreOptions with moderate whale participation.
surge_countintegercoreOptions in the SURGE flow bucket.
inflow_countintegercoreOptions in the INFLOW flow bucket.
outflow_countintegercoreOptions in the OUTFLOW flow bucket.
dump_countintegercoreOptions in the DUMP flow bucket.
highly_concentrated_cohortsintegercoreCohorts where volume sits in very few instruments, by HHI.
moderately_concentrated_cohortsintegercoreCohorts with moderate HHI concentration.
competitive_cohortsintegercoreCohorts with volume spread across many instruments.
dispersed_cohortsintegercoreCohorts with no concentration at all.
monopoly_cohortsintegercoreCohorts where a single instrument dominates.
oligopoly_cohortsintegercoreCohorts dominated by a handful of instruments.
balanced_cohortsintegercoreCohorts with balanced instrument participation.
fragmented_cohortsintegercoreCohorts with highly fragmented participation.
extreme_bullish_cohortsintegercoreCohorts positioned extremely bullish.
bullish_cohortsintegercoreCohorts positioned bullish.
neutral_cohortsintegercoreCohorts with no directional lean.
bearish_cohortsintegercoreCohorts positioned bearish.
extreme_bearish_cohortsintegercoreCohorts positioned extremely bearish.
strong_inflow_cohortsintegercoreCohorts taking strong capital inflow.
inflow_cohortsintegercoreCohorts taking inflow.
balanced_flow_cohortsintegercoreCohorts with balanced flow.
outflow_cohortsintegercoreCohorts losing capital.
strong_outflow_cohortsintegercoreCohorts losing capital strongly.
strong_buy_cohortsintegercoreCohorts with strong buy-side aggression.
mild_buy_cohortsintegercoreCohorts with mild buy-side aggression.
neutral_trade_cohortsintegercoreCohorts with balanced aggression.
mild_sell_cohortsintegercoreCohorts with mild sell-side aggression.
strong_sell_cohortsintegercoreCohorts with strong sell-side aggression.
no_data_cohortsintegercoreCohorts with no executed trades this cycle.
high_whale_cohortsintegercoreCohorts with heavy whale participation.
moderate_whale_cohortsintegercoreCohorts with moderate whale participation.
low_whale_cohortsintegercoreCohorts with light whale participation.
no_whale_cohortsintegercoreCohorts with no whale trades.
state_hashstringalphaWhat every option is doing, as one value.
See detail ↓
flow_hashstringalphaWhere capital is moving, as one value.
See detail ↓
structure_hashstringalphaHow concentrated the book is, as one value.
See detail ↓
previous_state_hashstringalphaThe previous cycle state_hash, supplied so you do not have to hold state.
previous_flow_hashstringalphaThe previous cycle flow_hash.
previous_structure_hashstringalphaThe previous cycle structure_hash.
state_changedbooleanalphastate_hash differs from the previous cycle. NULL-safe: two consecutive quiet cycles read as unchanged, not changed.
flow_changedbooleanalphaflow_hash differs from the previous cycle.
structure_changedbooleanalphastructure_hash differs from the previous cycle.
any_changebooleanalphaAny of the three hashes moved. True on 99.9% of cycles as measured over the last six months, because state_hash is saturated. See change_pattern.
change_patternstringalphaWhich combination of hashes moved, and therefore what kind of change it was.
See detail ↓
changed_cohorts_countintegeralphaCohorts whose classification changed this cycle.
changed_cohort_namesarrayalphaWhich cohorts changed, by name. Turns a count into somewhere to look.
top_flow_instrumentsjsonalphaThe instruments carrying the largest flow this cycle, with their USD amounts. The bridge from a coin-level reading to specific options.
contradictory_cohortsjsonalphaWhere is the book disagreeing with itself?
See detail ↓
contradictory_countintegeralphaHow many cohorts are contradictory this cycle.
positioning_outlier_cohortsjsonalphaCohorts whose positioning deviates most from the book.
positioning_outlier_countintegeralphaHow many positioning outliers.
execution_outlier_cohortsjsonalphaCohorts whose execution skew deviates most from the book.
execution_outlier_countintegeralphaHow many execution outliers.
whale_outlier_cohortsjsonalphaCohorts with anomalous whale concentration.
whale_outlier_countintegeralphaHow many whale outliers.
flow_outlier_cohortsjsonalphaCohorts with anomalous flow relative to the book.
flow_outlier_countintegeralphaHow many flow outliers.
max_positioning_deviationstringalphaThe largest positioning deviation observed this cycle.
max_positioning_cohortstringalphaThe cohort carrying that deviation.
max_whale_volume_pctfloatalphaThe highest whale volume share in any single cohort.
max_whale_cohortstringalphaThe cohort carrying that whale share.
call_flow_bias_7dfloatalphaSeven-day rolling bias in call flow. Smooths a single cycle into a stance.
put_flow_bias_7dfloatalphaSeven-day rolling bias in put flow.
flow_bias_divergencefloatalphaAre calls and puts telling the same story over the week?
See detail ↓
flow_bias_regimestringalphaClassification of the 7-day bias divergence into a regime label.
options_state_changedintegerproHow many options actually repositioned this cycle.
See detail ↓
options_flow_changedintegerproHow many options changed flow bucket.
See detail ↓
options_addedintegerproOptions in this cycle that were not in the previous one.
See detail ↓
options_removedintegerproOptions in the previous cycle that are absent from this one.
See detail ↓

Derived Fields

FieldTypeTiercollapse all
call_put_ratiofloatprocollapse

Call volume against put volume

Call USD volume divided by put USD volume for the whole book.

Call/put volume ratio

VcallVput\frac{V_{\text{call}}}{V_{\text{put}}}
RangeAbove 1 is call-heavy.
net_flow_usdfloatprocollapse

Net capital direction this cycle

Gross inflow minus gross outflow, USD. Positive means capital arrived on net.

flow_balance_ratiofloatprocollapse

How one-sided was the flow?

Inflow as a share of total flow. Near 0.5 the book churned; away from it, capital moved in one direction.

Range0 to 1.
whale_volume_pctfloatprocollapse

How much of the tape was institutional?

Whale volume as a percentage of total volume. The single fastest read on who was trading.

bullish_volume_pctfloatprocollapse

Share of volume in bullish positioning

Percentage of volume in cohorts classified bullish.

bearish_volume_pctfloatprocollapse

Share of volume in bearish positioning

Percentage of volume in cohorts classified bearish.

overall_positioningstringprocollapse

Where is the book leaning?

Book-level positioning classification, from the bullish and bearish volume shares.

overall_flow_directionstringprocollapse

Which way is capital moving?

Book-level flow classification, from net_flow_usd and flow_balance_ratio.

overall_execution_skewstringprocollapse

Which side was aggressing?

Book-level execution classification, from buy and sell aggressor volume.

state_hashstringalphacollapse

What every option is doing, as one value.

Hash over the volume-state fingerprint of every option in the book. SATURATED ON LIQUID COINS, AND ALWAYS HAS BEEN. Two things move it: any option crossing a volume regime, and the SET of options changing, because each fingerprint is prefixed with instrument_name. Both happen on essentially every cycle for an active book. Measured for BTC on 2026-08-09, per 10-minute cycle: 2 to 38 options entered and left the priced set, and 3 to 42 of the survivors changed behaviour. Share of cycles where this hash moved, August 2026: BTC 100%, ETH 100%, SOL 99.9%, XRP 99.9%, TRX 99.1%, AVAX 98.5%. In January 2026 the same figures were BTC 100%, ETH 99.9%, SOL 65.4%, XRP 51.1%, AVAX 30.9%, TRX 19.1%, so this is not a regression: it was never a discriminating signal on BTC or ETH, and the smaller books have since become active enough to behave the same way. A book-level boolean over ~690 options answers "yes" by construction. Read state_hash as an exact fingerprint of book state, useful for deduplication and for detecting replayed or stalled cycles, not as a change indicator.

flow_hashstringalphacollapse

Where capital is moving, as one value.

Hash over the flow classification of every option. It moves when capital shifts between instruments, including when the instruments involved stay in the same volume bucket. That independence from state_hash is what makes quiet repositioning detectable.

structure_hashstringalphacollapse

How concentrated the book is, as one value.

Hash over per-cohort concentration (HHI). It moves when volume redistributes between instruments inside a cohort, which is invisible in any coin-level aggregate.

change_patternstringalphacollapse

Which combination of hashes moved, and therefore what kind of change it was.

One of NONE, S, F, R, SF, SR, FR, SFR, where S is state, F is flow and R is structure. READ THE MEASURED DISTRIBUTION BEFORE BUILDING ON THIS, because it is not evenly spread. Over the 30 days to 2026-08-07: SFR 56.9%, SR 37.2%, S 5.5%, R 0.1%, NONE 0.1%, FR 0.04% (10 cycles), SF 0.03%, F absent. The reason is that state_hash moves on 99.8% of cycles averaged across coins, so any pattern requiring state to be UNCHANGED is rare by construction. That includes FR, the stealth-accumulation shape, which fired 816 times in January 2026 and roughly 15 times a month since. That decline is not a degradation of the signal: all 816 came from the smaller books (SOL 320, XRP 293, AVAX 157, TRX 45, ETH 1, BTC 0), which were quiet enough then for state to hold still, and which have since become active enough to churn every cycle like BTC always did. Treat state_changed as close to always-on. FLOW_CHANGED IS NOT A UNIFORM 58% EITHER: that number is an average across all six coins and it hides the spread. August 2026, share of cycles where flow_hash moved: BTC 99.6%, ETH 95.1%, SOL 69.1%, XRP 46.8%, AVAX 25.2%, TRX 9.5%. On BTC and ETH it is close to always-on as well, so a strategy built on flow_changed alone will select nearly every cycle on exactly the coins most people test first. Use the flow MAGNITUDES rather than the boolean: net_flow_usd, flow_balance_ratio, whale_volume_pct and surge_count all carry size, and size is what thresholds. We are documenting this rather than quietly shipping a saturated indicator.

Change pattern encoding

pattern={SFRall threeFRflow and structureNONEotherwise\text{pattern} = \begin{cases} \text{SFR} & \text{all three} \\ \text{FR} & \text{flow and structure} \\ \text{NONE} & \text{otherwise} \end{cases}
contradictory_cohortsjsonalphacollapse

Where is the book disagreeing with itself?

Cohorts whose positioning and execution point in opposite directions: bullish positioning being sold into, or bearish positioning being bought. Disagreement inside one book is usually where the interesting trade is.

flow_bias_divergencefloatalphacollapse

Are calls and puts telling the same story over the week?

Call bias minus put bias. Near zero the two wings agree. A widening divergence means one wing is being accumulated while the other is not, which is a directional stance building over days rather than a single cycle reading.

options_state_changedintegerprocollapse

How many options actually repositioned this cycle.

Count of options present in BOTH this cycle and the previous one whose full fingerprint differs. THIS IS THE FIELD TO THRESHOLD ON, not state_changed. The boolean is true on essentially every cycle for an active coin, whereas this count varies with how much genuinely moved: measured across the six coins on one cycle it ranged from 0 on TRX and XRP to 26 on BTC. Options that merely re-entered the priced set are excluded, since an option that was not there last cycle did not change, it arrived. NULL before 2026-08-10, when the field was introduced.

options_flow_changedintegerprocollapse

How many options changed flow bucket.

Same construction as options_state_changed, restricted to flow_bucket. Use it with net_flow_usd: the count says how broad the flow shift was, the USD figure says how large. NULL before 2026-08-10.

options_addedintegerprocollapse

Options in this cycle that were not in the previous one.

Mostly call/put pairs re-entering the priced set rather than newly listed contracts: the source table is built from complete pairs, so one leg failing its minimum price removes both for a cycle. Published rather than hidden because it is the denominator that tells you whether a book gained options or merely flickered. NULL before 2026-08-10.

options_removedintegerprocollapse

Options in the previous cycle that are absent from this one.

The counterpart to options_added. On a stable book the two are close to equal, which is the signature of pair churn rather than real listing activity. NULL before 2026-08-10.

Suggested Calculations

Not included in the API response. Compute these client-side from the fields above. Formulas and context provided.

FieldTypeInputsexpand all
flow_only_repositioningobjectclient-sideThe version of the stealth signal that actually fires.expand

The version of the stealth signal that actually fires.

The documented route to stealth accumulation is change_pattern = FR, but that requires state_changed to be false and state is almost always true on an active book, so FR fires around 10 times a month across all six coins. Do not simply substitute flow_changed: on BTC it is true on 99.6% of cycles and on ETH 95.1%, so it filters almost nothing where it matters most. Build on MAGNITUDE instead of on the booleans. Take cycles where net_flow_usd is meaningfully one-sided relative to its own recent distribution, whale_volume_pct sits above its recent median, and surge_count is elevated against the same window. That isolates what FR was reaching for, capital moving with institutional participation, and it thresholds on quantities that vary rather than on a flag that is nearly always set. Then read top_flow_instruments to see which options carried it.

Inputsflow_changednet_flow_usdwhale_volume_pcttop_flow_instruments

Or use the pre-computed endpointalpha

Drill into the named instruments at /v1/oria/fingerprints, where whale_activity_changed is per-option and does not suffer the same saturation.

persistent_flowintegerclient-sideConviction, measured as repetition.expand

Conviction, measured as repetition.

Count consecutive cycles with the same overall_flow_direction and meaningful net_flow_usd. Three or more in a row was the more reliable of the two signals found in validation, ahead of any single-cycle pattern. One cycle is noise; a sequence is somebody working an order.

Inputsoverall_flow_directionnet_flow_usd

Bi-weekly notes on crypto options and volatility, written for people who trade and study the market.

We use your email to send this newsletter and nothing else. Unsubscribe any time; each email carries a one-click link.

CayøLargo

Crypto options analytics platform: 37 Greeks, volatility surface intelligence, GEX gamma pinning, and flow analysis for BTC, ETH, SOL, XRP, AVAX, TRX. Updated every 10 minutes* from Deribit.

* - optimised data processing of 2500+ options every 10 min

Built by HAlcyon WAters

Halcyon Waters sp. z o.o. (LLC)

pl. Solny 2/3, 50-060 Wrocław, Poland

KRS: 0001245653, NIP: 8971973382

REGON: 54494305100000

© 2026 Halcyon Waters. All rights reserved.

Deribit today. Onchain options via Derive and Thalex ingesting now, cross-venue Greeks next • Supporting BTC, ETH, SOL, XRP, AVAX, TRX options, futures, perpetuals, spot rates

Risk Disclaimer: Cryptocurrency options trading involves substantial risk and may not be suitable for all investors. Past performance does not guarantee future results. This platform provides analytical tools for informational purposes only and should not be considered as financial advice. Please consult with a qualified financial advisor before making investment decisions.