GET /spread/{coin}
GET /spread/{coin}
Section titled “GET /spread/{coin}”The spread between Hyperliquid’s impact prices for one perpetual, slippage estimates at four order sizes, and a 1–10 liquidity score. The impact spread is not the top-of-book bid-ask spread: Hyperliquid’s impact prices are the average fill of an impact-size market order. The slippage figures come from a formula on that spread, not from the order book, and are the same for buys and sells.
Request
Section titled “Request”GET https://api.cerebruspulse.xyz/spread/{coin}Path Parameters
Section titled “Path Parameters”| Parameter | Type | Required | Description |
|---|---|---|---|
coin | string | Yes | Market symbol, case-insensitive (BTC, ETH, SOL). GET /coins lists them. |
Response
Section titled “Response”| Field | Type | Description |
|---|---|---|
endpoint | string | spread |
coin | string | The symbol, upper-case |
market_symbol | string | Hyperliquid’s name for the market (kPEPE for PEPE) |
price_unit | string | What prices are quoted per: 1 BTC, or 1000 PEPE for a 1000-token market |
timestamp_iso | string | When the response was computed (UTC) |
spread.impact_spread_bps | number | (impact_ask − impact_bid) / mid × 10000 |
spread.bid_ask_spread_bps | number | Deprecated: the same impact spread under an old name (see meta.deprecated) |
spread.impact_bid | number | Hyperliquid’s impact bid price |
spread.impact_ask | number | Hyperliquid’s impact ask price |
spread.mid_price | number | Midpoint of the two impact prices |
spread.mid_price_source | string | impact_prices |
spread.estimated_slippage_bps.<size> | number | Estimated slippage in basis points for a market order of $10k, $50k, $100k or $500k |
spread.slippage_model.formula | string | impact_spread_bps / 2 * sqrt(notional_usd / 1e6) |
spread.slippage_model.calibrated | boolean | false: not measured against fills or the book |
spread.slippage_model.side_aware | boolean | false: one figure for both buys and sells |
spread.liquidity_score | number | 10 (impact spread < 2 bps), 8 (< 5), 6 (< 10), 4 (< 20), 2 (< 50), else 1 |
meta | object | Common metadata (Response Schemas) |
meta.offering | string | pulse_spread |
meta.deprecated | object | Fields kept for old clients, each with what to read instead |
Example
Section titled “Example”GET /spread/BTC: real engine output on market data captured at 2026-09-24 17:05 UTC. Lists are cut to 3 items. Live responses may also carry meta.disclaimer, which the gateway adds.
{ "endpoint": "spread", "coin": "BTC", "market_symbol": "BTC", "price_unit": "1 BTC", "timestamp_iso": "2026-09-24T17:05:00Z", "spread": { "impact_spread_bps": 1.73, "bid_ask_spread_bps": 1.73, "impact_bid": 84485.4, "impact_ask": 84500, "mid_price": 84492.7, "mid_price_source": "impact_prices", "estimated_slippage_bps": { "$10k": 0.09, "$50k": 0.19, "$100k": 0.27, "$500k": 0.61 }, "slippage_model": { "formula": "impact_spread_bps / 2 * sqrt(notional_usd / 1e6)", "calibrated": false, "side_aware": false }, "liquidity_score": 10 }, "meta": { "provider": "Cerebrus Pulse", "offering": "pulse_spread", "execution_ms": 0, "data_age_seconds": 60, "deprecated": { "spread.bid_ask_spread_bps": "the impact spread, not the top-of-book bid-ask; read spread.impact_spread_bps" }, "sources": [ { "name": "Hyperliquid", "url": "https://hyperliquid.xyz" } ] }}Errors
Section titled “Errors”| Status | Reason |
|---|---|
| 400 | No impact prices for the market (not charged) |
| 402 | Payment required (the standard x402 flow) |
| 404 | Unknown coin (before any price is quoted) |
| 429 | Rate limit exceeded |
| 503 | Service disabled, payments down, or the market data feed is missing or stale; no price is quoted |
| 504 | Engine timeout (not charged) |