Skip to content

Response Schemas

Every paid endpoint’s page lists its own fields and shows a real engine response. This page covers what they share: units, the common meta block, enums, and what the gateway adds.

The examples are real engine output on market data captured on 2026-09-24, copied from the gateway (the same examples it publishes to the x402 Bazaar and in /openapi.json). Nothing in them is hand-written.

ConventionDetail
PricesUSD per price_unit. For most markets that is one token (1 BTC). Hyperliquid lists some tokens only as 1000-token markets: PEPE is the kPEPE market, so its prices are per 1000 PEPE and market_symbol is kPEPE. /basis converts to per-token prices
Open interestCounted in contracts of price_unit (derivatives.open_interest, open_interest.current), not USD. Multiply by the price for USD. /liquidations reports USD (total_oi_usd)
FundingHyperliquid funding rates are hourly. Annualized figures are rate × 24 × 365 × 100; funding_interval_hours is 1
Fractionsopen_interest.delta_* and price_change_4h (0.0312 = +3.12%), bollinger.position_pct (0 = lower band, 1 = upper band, outside 0–1 when the close is outside the bands), confluence scores (0–1)
PercentagesOther *_pct fields are percentages: atr_pct, width_pct, funding_annualized_pct, annualized_pct, positive_pct, basis_pct, spread_pct, deviation_pct, proximity_pct, distance_pct
Basis points*_bps fields: 1 bp = 0.01%
Timestimestamp_iso and every meta.as_of entry are ISO 8601 UTC strings. regime.as_of and sentiment.as_of are Unix seconds (numbers, possibly fractional; 0 when unknown)
CandlesIndicators use closed candles only. last_closed_candle_time says when the newest one closed
Missing valuesA value that could not be computed is null, or the field is absent; never a made-up 0

Most responses carry these fields in meta. Endpoint-specific meta fields are on each endpoint’s page.

FieldTypeDescription
meta.providerstringCerebrus Pulse
meta.offeringstringWhich analysis produced the response (see the table below)
meta.execution_msnumberEngine time for this request, in milliseconds (0 in the captured examples)
meta.data_age_secondsnumberAge of the main input feed when the response was computed
meta.as_of.<input>stringWhen each input the response used was current, keyed by input: market_data, candles_<tf>, funding, oi_history, cex_dex, arb_log
meta.sources[].namestringA third party whose data the response is built from: Hyperliquid, Chainlink Data Feeds, DefiLlama, CoinGecko, alternative.me, FRED, the news RSS feeds or Coinbase Exchange
meta.sources[].urlstringThat provider’s site, where it has one
meta.sources[].noticestringOptional. An attribution notice the provider requires (for example “Powered by CoinGecko”)
meta.warningstringOptional. stale_data (the price feed is more than 15 minutes old, or the CEX-DEX snapshot more than 10) or stale_chainlink_data (the Chainlink snapshot is more than 2 minutes old)
meta.warningsarrayOptional. stale_candles, stale_oi_history, lagging_coins, chainlink_price_implausible, stale_data, and stale_regime (added by the gateway)
meta.disclaimerstringOptional. A not-financial-advice notice the gateway adds to live responses
Endpointmeta.offering
/pulse, /democerebrus_pulse
/bundlepulse_bundle
/screenerpulse_screener
/sentimentpulse_sentiment
/fundingpulse_funding
/oipulse_oi
/spreadpulse_spread
/correlationpulse_correlation
/basispulse_basis
/cex-dexpulse_cex_dex
/depegpulse_depeg
/liquidationspulse_liquidations
/arbpulse_stress

The engine computes each response; the gateway passes it through unchanged except for:

  • meta.disclaimer, on every engine response while the operator leaves it on.
  • regime.stale, regime.age_seconds and regime.note, plus stale_regime in meta.warnings, when the market regime is more than 6 hours old.
  • On the free /demo/{coin} (BTC and ETH only): meta.demo, meta.demo_coins, meta.cache_ttl_seconds, meta.upgrade, meta.join and meta.why_join.

A paid response also carries the x402 settlement receipt in the PAYMENT-RESPONSE header.

confluence.score (in /pulse, /bundle and the screener’s confluence_score) is a vote share: four indicators vote bullish (1), neutral (0.5) or bearish (0) on the primary timeframe, and the score is the average. 1 means every vote is bullish, 0.5 balanced or neutral, 0 every vote bearish. It is not a confidence or a probability, and it has not been validated as predictive (confluence.validated is false). Two votes follow the trend (RSI, EMA trend) and two fade it (Bollinger position, z-score); family_scores shows each pair on its own. The top-level fields describe primary_timeframe only; per_timeframe has the rest.

FieldValues
rsi_zoneoverbought, bullish, neutral, bearish, oversold, unknown
trend.label, screener trendbullish, weak_bullish, neutral, weak_bearish, bearish, insufficient_data
trend.ema_stackbull_aligned, bear_aligned, mixed, flat, unknown
confluence.bias, confluence_biasbullish, bearish, neutral, unknown
regime.currentA lower-case label from the trading system (e.g. risk_on, risk_off) or unknown; treat unrecognized values as opaque
sentiment.labelvery_bearish, bearish, neutral, bullish, very_bullish, unknown
vol_regimeLOW, NORMAL, HIGH, EXTREME, UNKNOWN
funding_biaslong_pays, short_pays, neutral
oi_trend, open_interest.trendRISING, FALLING, FLAT, UNKNOWN
price_oi_divergenceBEARISH_DIV, BULLISH_DIV, NONE, UNKNOWN
correlation regimeCORRELATED, MIXED, DECORRELATED, UNKNOWN
basis.directionhl_premium, hl_discount, aligned
basis.signalneutral, mildly_bullish, mildly_bearish, bearish_contrarian, bullish_contrarian
divergence.direction, cex_dex_directioncex_premium, dex_premium
usdc.peg_statusHEALTHY, ELEVATED, WARNING, CRITICAL
infrastructure.arbitrum_sequencerup, down, unknown
summary.cascade_riskEXTREME, HIGH, MODERATE, LOW, UNKNOWN
stress_index.levelLOW, MODERATE, HIGH, EXTREME

Errors are JSON with a detail string; a refused parameter also names it in param. See Rate Limits & Errors.