GET

/api/v1/assets/stance

EXPERIMENTAL: Quotient's per-settle-date stance on one asset

Returns Quotient's experimental stance on one covered asset, grouped by settle date and price source (asset-stance/1). markets includes venue-native questions, Q probabilities, and verified live venue odds. Derived reads, default_date, and price levels additionally require fresh grounded settlement data. Estimated references are attributed to quotient-basis. Groups retain their provider, instrument, contract month, and rules version. Markets without settlement mappings appear in top-level markets. The execution handoff requires matching settlement and execution sources. Deprecated top-level reads mirrors an exact-Hyperliquid group or is empty.

Price $0.01Auth x-quotient-api-key or x402Limit 20/s · 600/min · 20,000/day

Parameters

NameInTypeDescription
assetquery, requiredstringThe asset: a key tail such as wti, gold, btc, or nvda, or a full assetKey such as commodity:wti. Unknown assets return 404 asset_not_found.

Minimum length: 1; Maximum length: 80

Responses

200: The horizon reads for the asset, one per settle date, soonest first
FieldTypeDescription
as_of
required
string

Format: date-time

contract
required
"asset-stance/1"
maturity
required
"experimental"
asset_key
required
string
asset_namestring | null
spotnumber | nullLegacy Hyperliquid execution mark only. Strike selection uses the settlement group reference.
spot_basisstring | null
basis_groups
required
AssetStanceBasisGroup[]Source-specific stance groups. Market rows inside each group are venue-native and list regardless of grounding; grounding gates only the derived reads. [] still prohibits consumer fallback to mixed legacy reads.
basis_groups fields
FieldTypeDescription
basis_id
required
string
target_family_key
required
stringContent-derived event/window/payout/rules family. Stance is evaluated separately for each family.
resolution_reference
required
SourceReferenceV1Settlement observable and contract semantics. provider identifies the instrument used by the settlement rules. Estimated values are attributed to the estimate block's provider. Asset identity is recorded separately.
resolution_reference fields
FieldTypeDescription
schema_version
required
"1"
basis_id
required
string | null
settlement_spec_id
required
string | null
forecast_target_keystring | null
observable_id
required
string | null
provider
required
string | null
instrument_id
required
string | null
symbolstring | null
contract_monthstring | null
roll_rulestring | null
unitstring | null
currencystring | null
price_fieldstring | null
candle_intervalstring | null
sessionstring | null
windowstring | null
timezonestring | null
roundingstring | null
value
required
number | null
value_kind
required
ValueKindobserved = a provider print. estimated = Quotient's basis estimate carrying a mandatory estimate block; the value belongs to the estimator, not to the settlement provider the rules name.
estimate
required
EstimateV1 | nullPresent exactly when value_kind is estimated; a malformed block fails closed as a missing value.
estimate fields
FieldTypeDescription
provider
required
stringThe estimator, e.g. quotient-basis. Attribution belongs here, not to the rules provider.
method
required
stringEstimator method identity, e.g. ewma-log/1.
ci_low
required
number
ci_high
required
number
inputs_at
required
stringWhen the estimator's inputs were observed.

Format: date-time

estimate_version
required
string | null
provider_timestampstring | null

Format: date-time

source_timestampstring | null

Format: date-time

observed_atstring | null

Format: date-time

freshness
required
CapabilityState
collection_transportstring | null
strikenumber | null
comparatorstring | null
fixing_window_startstring | null
fixing_window_endstring | null
barrier_window_startstring | null
barrier_window_endstring | null
payout_semanticsstring | null
rules_urlstring | null

Format: uri

rules_hashstring | null
rules_versionstring | null
mapping_provenancestring | null
mapping_status
required
CapabilityState
reference_quote
required
UnderlyingObservationV1 | null
reference_quote fields
FieldTypeDescription
schema_version
required
"1"
observation_idstring | null
basis_id
required
string | null
observable_id
required
string | null
value
required
number | nullUnderlying settlement-reference value.
value_kind
required
ValueKindobserved = a provider print. estimated = Quotient's basis estimate carrying a mandatory estimate block; the value belongs to the estimator, not to the settlement provider the rules name.
estimate
required
EstimateV1 | nullPresent exactly when value_kind is estimated; a malformed block fails closed as a missing value.
estimate fields
FieldTypeDescription
provider
required
stringThe estimator, e.g. quotient-basis. Attribution belongs here, not to the rules provider.
method
required
stringEstimator method identity, e.g. ewma-log/1.
ci_low
required
number
ci_high
required
number
inputs_at
required
stringWhen the estimator's inputs were observed.

Format: date-time

estimate_version
required
string | null
provider_timestampstring | null

Format: date-time

source_timestampstring | null

Format: date-time

observed_at
required
string | null

Format: date-time

freshness
required
CapabilityState
confidencenumber | null
publisherstring | nullThe estimator (quotient-basis) when value_kind is estimated.
collection_transportstring | null
execution_reference
required
SourceReferenceV1 | nullSettlement observable and contract semantics. provider identifies the instrument used by the settlement rules. Estimated values are attributed to the estimate block's provider. Asset identity is recorded separately.
execution_reference fields
FieldTypeDescription
schema_version
required
"1"
basis_id
required
string | null
settlement_spec_id
required
string | null
forecast_target_keystring | null
observable_id
required
string | null
provider
required
string | null
instrument_id
required
string | null
symbolstring | null
contract_monthstring | null
roll_rulestring | null
unitstring | null
currencystring | null
price_fieldstring | null
candle_intervalstring | null
sessionstring | null
windowstring | null
timezonestring | null
roundingstring | null
value
required
number | null
value_kind
required
ValueKindobserved = a provider print. estimated = Quotient's basis estimate carrying a mandatory estimate block; the value belongs to the estimator, not to the settlement provider the rules name.
estimate
required
EstimateV1 | nullPresent exactly when value_kind is estimated; a malformed block fails closed as a missing value.
estimate fields
FieldTypeDescription
provider
required
stringThe estimator, e.g. quotient-basis. Attribution belongs here, not to the rules provider.
method
required
stringEstimator method identity, e.g. ewma-log/1.
ci_low
required
number
ci_high
required
number
inputs_at
required
stringWhen the estimator's inputs were observed.

Format: date-time

estimate_version
required
string | null
provider_timestampstring | null

Format: date-time

source_timestampstring | null

Format: date-time

observed_atstring | null

Format: date-time

freshness
required
CapabilityState
collection_transportstring | null
strikenumber | null
comparatorstring | null
fixing_window_startstring | null
fixing_window_endstring | null
barrier_window_startstring | null
barrier_window_endstring | null
payout_semanticsstring | null
rules_urlstring | null

Format: uri

rules_hashstring | null
rules_versionstring | null
mapping_provenancestring | null
mapping_status
required
CapabilityState
basis_gap
required
BasisGapV1 | nullDisplay-only settlement-versus-execution basis observation. Values retain their own settlement and execution sources.
basis_gap fields
FieldTypeDescription
settlement_value
required
number
settlement_value_kind
required
ValueKindobserved = a provider print. estimated = Quotient's basis estimate carrying a mandatory estimate block; the value belongs to the estimator, not to the settlement provider the rules name.
execution_value
required
number
absolute
required
number
percentage
required
number | null
observed_at
required
string | null

Format: date-time

basis_status
required
BasisStatus
grounding_status
required
GroundingStatusactionable requires a verified settlement mapping and every required fresh source input. estimated authorizes the same reads as actionable and are attributed to Quotient: the reference value is Quotient's basis estimate (value_kind estimated) with a tight confidence interval. Ordering: actionable > estimated > diagnostic > unavailable; automated use and execution handoffs require actionable or estimated grounding.
suppression_reason
required
string | null
markets_covered
required
integer
market_ids
required
string[]Exact graph Market ids belonging to this target family.
markets
required
AssetStanceMarketRow[]Venue-native market rows — listed regardless of grounding; grounding gates only reads and default_date.
markets fields
FieldTypeDescription
market_id
required
stringExact graph Market id
question
required
string
q_pct
required
numberQuotient's YES probability, 0-100
live_odds_pct
required
number | nullThe verified live venue YES mid, 0-100
pm_at_forecast_pct
required
number | nullThe venue's YES price when Quotient last forecast, 0-100
q_updated_at
required
string | null

Format: date-time

end_date
required
string | null

Format: date-time

strike_value
required
number | null
strike_comparator
required
string | null
strike_observable
required
string | null
default_date
required
string | null
venue_quotes
required
VenueQuoteV1[]
venue_quotes fields
FieldTypeDescription
schema_version
required
"1"
venue
required
"polymarket" | "polymarket_us" | "kalshi" | "limitless" | nullPrediction-market venue key: polymarket (Polymarket International), polymarket_us (Polymarket US), kalshi, or limitless.
market_id
required
string | null
yes_bid
required
number | null

Minimum: 0; Maximum: 1

yes_ask
required
number | null

Minimum: 0; Maximum: 1

yes_last
required
number | null

Minimum: 0; Maximum: 1

selected_probability
required
number | nullPrediction-market YES probability selected for the enclosing response. Inspect freshness and quote_method before treating it as current.

Minimum: 0; Maximum: 1

quote_method
required
string | nullmidpoint, bid, ask, fresh last, or graph_snapshot. Null when pricing is unavailable.
venue_timestamp
required
string | nullSource clock for the selected quote: book update for book methods, last-trade time for last, or catalog observation time for graph_snapshot.

Format: date-time

observed_at
required
string | nullWhen Quotient observed the live quote or stored graph snapshot.

Format: date-time

freshness
required
CapabilityState
reads
required
AssetStanceRead[]
reads fields
FieldTypeDescription
date
required
stringSettle day, YYYY-MM-DD (venue day, America/New_York)
settle_at
required
stringThe settle instant the read answers to: the date's earliest market end

Format: date-time

stance
required
"long" | "short" | "neutral"
edge_ppnumber | nullMean gap between Quotient and the venue's current odds across the surviving classified markets, points, each signed by the market's direction — positive argues long
markets_classified
required
integerMarkets that take a side and survive the staleness gate; range markets and repriced-past rows display in markets_total but do not feed the read
markets_total
required
integerEvery covered market settling the date
agreement_pctnumber | nullShare of the summed absolute edge on the net side, 0-100 (magnitude-weighted)
freshest_forecast_atstring | nullThe newest Quotient forecast feeding the read

Format: date-time

outlook
required
"confirms" | "conflicts" | "stale" | "silent" | "none"The asset-price/1 outlook's arbitration of this read
reasonstring | nullWhy a neutral is neutral — exactly one plain-language sentence naming the failed gate; null on an active stance
notestring | nullThe outlook-credibility note when the projection has lost credibility (spot moved since observation, or price sits outside the projected range near settle)
resolution_reference
required
SourceReferenceV1Settlement observable and contract semantics. provider identifies the instrument used by the settlement rules. Estimated values are attributed to the estimate block's provider. Asset identity is recorded separately.
resolution_reference fields
FieldTypeDescription
schema_version
required
"1"
basis_id
required
string | null
settlement_spec_id
required
string | null
forecast_target_keystring | null
observable_id
required
string | null
provider
required
string | null
instrument_id
required
string | null
symbolstring | null
contract_monthstring | null
roll_rulestring | null
unitstring | null
currencystring | null
price_fieldstring | null
candle_intervalstring | null
sessionstring | null
windowstring | null
timezonestring | null
roundingstring | null
value
required
number | null
value_kind
required
ValueKindobserved = a provider print. estimated = Quotient's basis estimate carrying a mandatory estimate block; the value belongs to the estimator, not to the settlement provider the rules name.
estimate
required
EstimateV1 | nullPresent exactly when value_kind is estimated; a malformed block fails closed as a missing value.
estimate fields
FieldTypeDescription
provider
required
stringThe estimator, e.g. quotient-basis. Attribution belongs here, not to the rules provider.
method
required
stringEstimator method identity, e.g. ewma-log/1.
ci_low
required
number
ci_high
required
number
inputs_at
required
stringWhen the estimator's inputs were observed.

Format: date-time

estimate_version
required
string | null
provider_timestampstring | null

Format: date-time

source_timestampstring | null

Format: date-time

observed_atstring | null

Format: date-time

freshness
required
CapabilityState
collection_transportstring | null
strikenumber | null
comparatorstring | null
fixing_window_startstring | null
fixing_window_endstring | null
barrier_window_startstring | null
barrier_window_endstring | null
payout_semanticsstring | null
rules_urlstring | null

Format: uri

rules_hashstring | null
rules_versionstring | null
mapping_provenancestring | null
mapping_status
required
CapabilityState
reference_quote
required
UnderlyingObservationV1 | null
reference_quote fields
FieldTypeDescription
schema_version
required
"1"
observation_idstring | null
basis_id
required
string | null
observable_id
required
string | null
value
required
number | nullUnderlying settlement-reference value.
value_kind
required
ValueKindobserved = a provider print. estimated = Quotient's basis estimate carrying a mandatory estimate block; the value belongs to the estimator, not to the settlement provider the rules name.
estimate
required
EstimateV1 | nullPresent exactly when value_kind is estimated; a malformed block fails closed as a missing value.
estimate fields
FieldTypeDescription
provider
required
stringThe estimator, e.g. quotient-basis. Attribution belongs here, not to the rules provider.
method
required
stringEstimator method identity, e.g. ewma-log/1.
ci_low
required
number
ci_high
required
number
inputs_at
required
stringWhen the estimator's inputs were observed.

Format: date-time

estimate_version
required
string | null
provider_timestampstring | null

Format: date-time

source_timestampstring | null

Format: date-time

observed_at
required
string | null

Format: date-time

freshness
required
CapabilityState
confidencenumber | null
publisherstring | nullThe estimator (quotient-basis) when value_kind is estimated.
collection_transportstring | null
execution_reference
required
SourceReferenceV1 | nullSettlement observable and contract semantics. provider identifies the instrument used by the settlement rules. Estimated values are attributed to the estimate block's provider. Asset identity is recorded separately.
execution_reference fields
FieldTypeDescription
schema_version
required
"1"
basis_id
required
string | null
settlement_spec_id
required
string | null
forecast_target_keystring | null
observable_id
required
string | null
provider
required
string | null
instrument_id
required
string | null
symbolstring | null
contract_monthstring | null
roll_rulestring | null
unitstring | null
currencystring | null
price_fieldstring | null
candle_intervalstring | null
sessionstring | null
windowstring | null
timezonestring | null
roundingstring | null
value
required
number | null
value_kind
required
ValueKindobserved = a provider print. estimated = Quotient's basis estimate carrying a mandatory estimate block; the value belongs to the estimator, not to the settlement provider the rules name.
estimate
required
EstimateV1 | nullPresent exactly when value_kind is estimated; a malformed block fails closed as a missing value.
estimate fields
FieldTypeDescription
provider
required
stringThe estimator, e.g. quotient-basis. Attribution belongs here, not to the rules provider.
method
required
stringEstimator method identity, e.g. ewma-log/1.
ci_low
required
number
ci_high
required
number
inputs_at
required
stringWhen the estimator's inputs were observed.

Format: date-time

estimate_version
required
string | null
provider_timestampstring | null

Format: date-time

source_timestampstring | null

Format: date-time

observed_atstring | null

Format: date-time

freshness
required
CapabilityState
collection_transportstring | null
strikenumber | null
comparatorstring | null
fixing_window_startstring | null
fixing_window_endstring | null
barrier_window_startstring | null
barrier_window_endstring | null
payout_semanticsstring | null
rules_urlstring | null

Format: uri

rules_hashstring | null
rules_versionstring | null
mapping_provenancestring | null
mapping_status
required
CapabilityState
venue_quotes
required
VenueQuoteV1[]
venue_quotes fields
FieldTypeDescription
schema_version
required
"1"
venue
required
"polymarket" | "polymarket_us" | "kalshi" | "limitless" | nullPrediction-market venue key: polymarket (Polymarket International), polymarket_us (Polymarket US), kalshi, or limitless.
market_id
required
string | null
yes_bid
required
number | null

Minimum: 0; Maximum: 1

yes_ask
required
number | null

Minimum: 0; Maximum: 1

yes_last
required
number | null

Minimum: 0; Maximum: 1

selected_probability
required
number | nullPrediction-market YES probability selected for the enclosing response. Inspect freshness and quote_method before treating it as current.

Minimum: 0; Maximum: 1

quote_method
required
string | nullmidpoint, bid, ask, fresh last, or graph_snapshot. Null when pricing is unavailable.
venue_timestamp
required
string | nullSource clock for the selected quote: book update for book methods, last-trade time for last, or catalog observation time for graph_snapshot.

Format: date-time

observed_at
required
string | nullWhen Quotient observed the live quote or stored graph snapshot.

Format: date-time

freshness
required
CapabilityState
basis_status
required
BasisStatus
grounding_status
required
GroundingStatusactionable requires a verified settlement mapping and every required fresh source input. estimated authorizes the same reads as actionable and are attributed to Quotient: the reference value is Quotient's basis estimate (value_kind estimated) with a tight confidence interval. Ordering: actionable > estimated > diagnostic > unavailable; automated use and execution handoffs require actionable or estimated grounding.
suppression_reason
required
string | null
markets
required
AssetStanceMarketRow[]Venue-native rows on covered markets that have no settlement mapping yet — they list here instead of disappearing.
markets fields
FieldTypeDescription
market_id
required
stringExact graph Market id
question
required
string
q_pct
required
numberQuotient's YES probability, 0-100
live_odds_pct
required
number | nullThe verified live venue YES mid, 0-100
pm_at_forecast_pct
required
number | nullThe venue's YES price when Quotient last forecast, 0-100
q_updated_at
required
string | null

Format: date-time

end_date
required
string | null

Format: date-time

strike_value
required
number | null
strike_comparator
required
string | null
strike_observable
required
string | null
markets_covered
required
integerExact-Hyperliquid group mirror; otherwise 0.
default_date
required
string | nullExact-Hyperliquid group mirror; otherwise null.
reads
required
AssetStanceRead[]Exact-Hyperliquid group mirror; otherwise empty.
reads fields
FieldTypeDescription
date
required
stringSettle day, YYYY-MM-DD (venue day, America/New_York)
settle_at
required
stringThe settle instant the read answers to: the date's earliest market end

Format: date-time

stance
required
"long" | "short" | "neutral"
edge_ppnumber | nullMean gap between Quotient and the venue's current odds across the surviving classified markets, points, each signed by the market's direction — positive argues long
markets_classified
required
integerMarkets that take a side and survive the staleness gate; range markets and repriced-past rows display in markets_total but do not feed the read
markets_total
required
integerEvery covered market settling the date
agreement_pctnumber | nullShare of the summed absolute edge on the net side, 0-100 (magnitude-weighted)
freshest_forecast_atstring | nullThe newest Quotient forecast feeding the read

Format: date-time

outlook
required
"confirms" | "conflicts" | "stale" | "silent" | "none"The asset-price/1 outlook's arbitration of this read
reasonstring | nullWhy a neutral is neutral — exactly one plain-language sentence naming the failed gate; null on an active stance
notestring | nullThe outlook-credibility note when the projection has lost credibility (spot moved since observation, or price sits outside the projected range near settle)
resolution_reference
required
SourceReferenceV1Settlement observable and contract semantics. provider identifies the instrument used by the settlement rules. Estimated values are attributed to the estimate block's provider. Asset identity is recorded separately.
resolution_reference fields
FieldTypeDescription
schema_version
required
"1"
basis_id
required
string | null
settlement_spec_id
required
string | null
forecast_target_keystring | null
observable_id
required
string | null
provider
required
string | null
instrument_id
required
string | null
symbolstring | null
contract_monthstring | null
roll_rulestring | null
unitstring | null
currencystring | null
price_fieldstring | null
candle_intervalstring | null
sessionstring | null
windowstring | null
timezonestring | null
roundingstring | null
value
required
number | null
value_kind
required
ValueKindobserved = a provider print. estimated = Quotient's basis estimate carrying a mandatory estimate block; the value belongs to the estimator, not to the settlement provider the rules name.
estimate
required
EstimateV1 | nullPresent exactly when value_kind is estimated; a malformed block fails closed as a missing value.
estimate fields
FieldTypeDescription
provider
required
stringThe estimator, e.g. quotient-basis. Attribution belongs here, not to the rules provider.
method
required
stringEstimator method identity, e.g. ewma-log/1.
ci_low
required
number
ci_high
required
number
inputs_at
required
stringWhen the estimator's inputs were observed.

Format: date-time

estimate_version
required
string | null
provider_timestampstring | null

Format: date-time

source_timestampstring | null

Format: date-time

observed_atstring | null

Format: date-time

freshness
required
CapabilityState
collection_transportstring | null
strikenumber | null
comparatorstring | null
fixing_window_startstring | null
fixing_window_endstring | null
barrier_window_startstring | null
barrier_window_endstring | null
payout_semanticsstring | null
rules_urlstring | null

Format: uri

rules_hashstring | null
rules_versionstring | null
mapping_provenancestring | null
mapping_status
required
CapabilityState
reference_quote
required
UnderlyingObservationV1 | null
reference_quote fields
FieldTypeDescription
schema_version
required
"1"
observation_idstring | null
basis_id
required
string | null
observable_id
required
string | null
value
required
number | nullUnderlying settlement-reference value.
value_kind
required
ValueKindobserved = a provider print. estimated = Quotient's basis estimate carrying a mandatory estimate block; the value belongs to the estimator, not to the settlement provider the rules name.
estimate
required
EstimateV1 | nullPresent exactly when value_kind is estimated; a malformed block fails closed as a missing value.
estimate fields
FieldTypeDescription
provider
required
stringThe estimator, e.g. quotient-basis. Attribution belongs here, not to the rules provider.
method
required
stringEstimator method identity, e.g. ewma-log/1.
ci_low
required
number
ci_high
required
number
inputs_at
required
stringWhen the estimator's inputs were observed.

Format: date-time

estimate_version
required
string | null
provider_timestampstring | null

Format: date-time

source_timestampstring | null

Format: date-time

observed_at
required
string | null

Format: date-time

freshness
required
CapabilityState
confidencenumber | null
publisherstring | nullThe estimator (quotient-basis) when value_kind is estimated.
collection_transportstring | null
execution_reference
required
SourceReferenceV1 | nullSettlement observable and contract semantics. provider identifies the instrument used by the settlement rules. Estimated values are attributed to the estimate block's provider. Asset identity is recorded separately.
execution_reference fields
FieldTypeDescription
schema_version
required
"1"
basis_id
required
string | null
settlement_spec_id
required
string | null
forecast_target_keystring | null
observable_id
required
string | null
provider
required
string | null
instrument_id
required
string | null
symbolstring | null
contract_monthstring | null
roll_rulestring | null
unitstring | null
currencystring | null
price_fieldstring | null
candle_intervalstring | null
sessionstring | null
windowstring | null
timezonestring | null
roundingstring | null
value
required
number | null
value_kind
required
ValueKindobserved = a provider print. estimated = Quotient's basis estimate carrying a mandatory estimate block; the value belongs to the estimator, not to the settlement provider the rules name.
estimate
required
EstimateV1 | nullPresent exactly when value_kind is estimated; a malformed block fails closed as a missing value.
estimate fields
FieldTypeDescription
provider
required
stringThe estimator, e.g. quotient-basis. Attribution belongs here, not to the rules provider.
method
required
stringEstimator method identity, e.g. ewma-log/1.
ci_low
required
number
ci_high
required
number
inputs_at
required
stringWhen the estimator's inputs were observed.

Format: date-time

estimate_version
required
string | null
provider_timestampstring | null

Format: date-time

source_timestampstring | null

Format: date-time

observed_atstring | null

Format: date-time

freshness
required
CapabilityState
collection_transportstring | null
strikenumber | null
comparatorstring | null
fixing_window_startstring | null
fixing_window_endstring | null
barrier_window_startstring | null
barrier_window_endstring | null
payout_semanticsstring | null
rules_urlstring | null

Format: uri

rules_hashstring | null
rules_versionstring | null
mapping_provenancestring | null
mapping_status
required
CapabilityState
venue_quotes
required
VenueQuoteV1[]
venue_quotes fields
FieldTypeDescription
schema_version
required
"1"
venue
required
"polymarket" | "polymarket_us" | "kalshi" | "limitless" | nullPrediction-market venue key: polymarket (Polymarket International), polymarket_us (Polymarket US), kalshi, or limitless.
market_id
required
string | null
yes_bid
required
number | null

Minimum: 0; Maximum: 1

yes_ask
required
number | null

Minimum: 0; Maximum: 1

yes_last
required
number | null

Minimum: 0; Maximum: 1

selected_probability
required
number | nullPrediction-market YES probability selected for the enclosing response. Inspect freshness and quote_method before treating it as current.

Minimum: 0; Maximum: 1

quote_method
required
string | nullmidpoint, bid, ask, fresh last, or graph_snapshot. Null when pricing is unavailable.
venue_timestamp
required
string | nullSource clock for the selected quote: book update for book methods, last-trade time for last, or catalog observation time for graph_snapshot.

Format: date-time

observed_at
required
string | nullWhen Quotient observed the live quote or stored graph snapshot.

Format: date-time

freshness
required
CapabilityState
basis_status
required
BasisStatus
grounding_status
required
GroundingStatusactionable requires a verified settlement mapping and every required fresh source input. estimated authorizes the same reads as actionable and are attributed to Quotient: the reference value is Quotient's basis estimate (value_kind estimated) with a tight confidence interval. Ordering: actionable > estimated > diagnostic > unavailable; automated use and execution handoffs require actionable or estimated grounding.
suppression_reason
required
string | null
401: Unauthorized
FieldTypeDescription
error
required
stringError code
message
required
stringHuman-readable message
retry_afterintegerSeconds to wait (only on 429)
retryAfterintegerSeconds to wait for owner-scoped forecast-request quota errors.
limit_scopestringQuota scope that rejected the request, such as standard or x_research.
quotaScopestringStable forecast-request quota scope, such as venue_market_daily.
limitintegerConfigured bound for the forecast-request quota that was exceeded.
402: Payment Required
FieldTypeDescription
error
required
stringError code
message
required
stringHuman-readable message
retry_afterintegerSeconds to wait (only on 429)
retryAfterintegerSeconds to wait for owner-scoped forecast-request quota errors.
limit_scopestringQuota scope that rejected the request, such as standard or x_research.
quotaScopestringStable forecast-request quota scope, such as venue_market_daily.
limitintegerConfigured bound for the forecast-request quota that was exceeded.
403: Insufficient credits for the requested route
FieldTypeDescription
error
required
stringError code
message
required
stringHuman-readable message
retry_afterintegerSeconds to wait (only on 429)
retryAfterintegerSeconds to wait for owner-scoped forecast-request quota errors.
limit_scopestringQuota scope that rejected the request, such as standard or x_research.
quotaScopestringStable forecast-request quota scope, such as venue_market_daily.
limitintegerConfigured bound for the forecast-request quota that was exceeded.
404: No covered asset matches the requested key. The gateway does not bill or settle non-success responses.
FieldTypeDescription
error
required
stringError code
message
required
stringHuman-readable message
retry_afterintegerSeconds to wait (only on 429)
retryAfterintegerSeconds to wait for owner-scoped forecast-request quota errors.
limit_scopestringQuota scope that rejected the request, such as standard or x_research.
quotaScopestringStable forecast-request quota scope, such as venue_market_daily.
limitintegerConfigured bound for the forecast-request quota that was exceeded.
422: Invalid request parameters
FieldTypeDescription
error
required
stringError code
message
required
stringHuman-readable message
retry_afterintegerSeconds to wait (only on 429)
retryAfterintegerSeconds to wait for owner-scoped forecast-request quota errors.
limit_scopestringQuota scope that rejected the request, such as standard or x_research.
quotaScopestringStable forecast-request quota scope, such as venue_market_daily.
limitintegerConfigured bound for the forecast-request quota that was exceeded.
429: The caller exceeded a per-second, per-minute, daily, or concurrency limit. No credits are debited and no x402 payment is settled for this response.
FieldTypeDescription
error
required
stringError code
message
required
stringHuman-readable message
retry_afterintegerSeconds to wait (only on 429)
retryAfterintegerSeconds to wait for owner-scoped forecast-request quota errors.
limit_scopestringQuota scope that rejected the request, such as standard or x_research.
quotaScopestringStable forecast-request quota scope, such as venue_market_daily.
limitintegerConfigured bound for the forecast-request quota that was exceeded.

Set QUOTIENT_API_KEY in your shell and replace example identifiers with returned IDs before running a request.

curl
curl --request GET \
  --header "x-quotient-api-key: $QUOTIENT_API_KEY" \
  'https://quotient-api-gateway.onrender.com/api/v1/assets/stance?asset=example'
200 · application/json
{
  "as_of": "2026-08-19T16:00:00.000Z",
  "contract": "asset-stance/1",
  "maturity": "experimental",
  "asset_key": "commodity:copper",
  "asset_name": "Copper",
  "spot": 6.58,
  "spot_basis": "hyperliquid-mark",
  "basis_groups": [
    {
      "basis_id": "basis:pyth:copper-usd:official-close:v2",
      "target_family_key": "family:copper:daily:close:v2",
      "resolution_reference": {
        "schema_version": "1",
        "basis_id": "basis:pyth:copper-usd:official-close:v2",
        "settlement_spec_id": "settlement:kalshi:copper:2026-08-21:v2",
        "forecast_target_key": "target:copper:2026-08-21:pyth:v2",
        "observable_id": "pyth:copper-usd",
        "provider": "pyth",
        "instrument_id": "0xpyth-copper-usd",
        "value": 6.52,
        "value_kind": "estimated",
        "estimate": {
          "provider": "quotient-basis",
          "method": "ewma-log/1",
          "ci_low": 6.49,
          "ci_high": 6.55,
          "inputs_at": "2026-08-19T15:59:30Z",
          "estimate_version": "basis-bridge/1"
        },
        "observed_at": "2026-08-19T15:59:58Z",
        "freshness": "verified",
        "mapping_status": "verified"
      },
      "reference_quote": {
        "schema_version": "1",
        "observation_id": "obs:quotient-basis:copper:20260819T155958Z",
        "basis_id": "basis:pyth:copper-usd:official-close:v2",
        "observable_id": "pyth:copper-usd",
        "value": 6.52,
        "value_kind": "estimated",
        "estimate": {
          "provider": "quotient-basis",
          "method": "ewma-log/1",
          "ci_low": 6.49,
          "ci_high": 6.55,
          "inputs_at": "2026-08-19T15:59:30Z",
          "estimate_version": "basis-bridge/1"
        },
        "observed_at": "2026-08-19T15:59:58Z",
        "freshness": "verified",
        "publisher": "quotient-basis"
      },
      "execution_reference": {
        "schema_version": "1",
        "basis_id": null,
        "settlement_spec_id": null,
        "observable_id": "hyperliquid:xyz:COPPER:mark",
        "provider": "hyperliquid",
        "instrument_id": "xyz:COPPER",
        "value": 6.58,
        "value_kind": "observed",
        "estimate": null,
        "observed_at": "2026-08-19T16:00:00Z",
        "freshness": "verified",
        "mapping_status": "verified"
      },
      "basis_gap": {
        "settlement_value": 6.52,
        "settlement_value_kind": "estimated",
        "execution_value": 6.58,
        "absolute": 0.06,
        "percentage": 0.0092,
        "observed_at": "2026-08-19T16:00:00Z"
      },
      "basis_status": "verified",
      "grounding_status": "estimated",
      "suppression_reason": null,
      "markets_covered": 4,
      "market_ids": [
        "kalshi:KXCOPPER-26AUG21-B650"
      ],
      "markets": [
        {
          "market_id": "kalshi:KXCOPPER-26AUG21-B650",
          "question": "Will copper settle above $6.50 on Aug 21?",
          "q_pct": 73,
          "live_odds_pct": 44,
          "pm_at_forecast_pct": 42,
          "q_updated_at": "2026-08-19T14:00:00Z",
          "end_date": "2026-08-21T20:00:00Z",
          "strike_value": 6.5,
          "strike_comparator": "gte",
          "strike_observable": "copper"
        }
      ],
      "default_date": null,
      "venue_quotes": [
        {
          "schema_version": "1",
          "venue": "kalshi",
          "market_id": "KXCOPPER-26AUG21-B650",
          "yes_bid": 0.43,
          "yes_ask": 0.45,
          "yes_last": 0.44,
          "selected_probability": 0.44,
          "quote_method": "midpoint",
          "venue_timestamp": "2026-08-19T15:59:59Z",
          "observed_at": "2026-08-19T16:00:00Z",
          "freshness": "verified"
        }
      ],
      "reads": []
    }
  ],
  "markets": [],
  "markets_covered": 0,
  "default_date": null,
  "reads": []
}