/api/v1/analytics/realized-volatilityCross-asset analytics (realized volatility and other derived metrics) — pay per request
Realized Volatility
Returns annualised realised volatility metrics (rv_annualized expressed as a percentage, e.g. 38.76 = 38.76%) from precomputed cross-asset analytics. Snapshot mode is used when start/end are omitted; historical mode is used when start and/or end are provided. If frequency, window_days, and estimator are omitted, all available variants for the requested instrument are returned.
**Price:** $0.1 USDC per call
The request and x402 payment go directly to Laevitas. The live 402 challenge is authoritative for the price, network, asset and payTo address.
No API key is required for x402. Pay Laevitas directly using the live 402 challenge, which is authoritative for price, network, asset and payTo.
{
"properties": {
"currency": {
"description": "Base currency filter. Case-insensitive.",
"example": "BTC",
"required": false,
"type": "string",
"x-parameter-location": "query"
},
"cursor": {
"description": "Pagination cursor for fetching the next historical page. Use meta.next_cursor from the previous response.",
"required": false,
"type": "string",
"x-parameter-location": "query"
},
"date": {
"description": "Snapshot point-in-time in ISO 8601 format (UTC). If omitted in snapshot mode, returns latest rows.",
"example": "2026-04-27T12:35:30Z",
"format": "date-time",
"required": false,
"type": "string",
"x-parameter-location": "query"
},
"end": {
"description": "End date in ISO 8601 format (UTC). Providing start or end enables historical mode.",
"example": "2026-04-28T00:00:00Z",
"format": "date-time",
"required": false,
"type": "string",
"x-parameter-location": "query"
},
"estimator": {
"description": "Realised volatility estimator filter.",
"enum": [
"close_to_close",
"parkinson",
"garman_klass"
],
"example": "close_to_close",
"required": false,
"type": "string",
"x-parameter-location": "query"
},
"exchange": {
"description": "Exchange name. Required. Case-insensitive. Example data includes Deribit, Binance, and Hyperliquid instruments.",
"example": "deribit",
"required": true,
"type": "string",
"x-parameter-location": "query"
},
"frequency": {
"description": "Sampling frequency used to compute realised volatility.",
"enum": [
"daily",
"hourly"
],
"example": "daily",
"required": false,
"type": "string",
"x-parameter-location": "query"
},
"instrument_name": {
"description": "Full instrument identifier. Required. Case-insensitive.",
"example": "BTC-PERPETUAL",
"required": true,
"type": "string",
"x-parameter-location": "query"
},
"limit": {
"default": 100,
"description": "Maximum number of historical records to return (1-1000). Ignored in snapshot mode.",
"example": 100,
"maximum": 1000,
"minimum": 1,
"required": false,
"type": "number",
"x-parameter-location": "query"
},
"sort_dir": {
"default": "ASC",
"description": "Sort direction by ts (historical mode only). ASC = oldest first (default, suited for backfills/charts). DESC = newest first (suited for \"latest N\" queries). Cursor pagination works in both directions; keep sort_dir constant within a paginated scan.",
"enum": [
"ASC",
"DESC"
],
"required": false,
"type": "string",
"x-parameter-location": "query"
},
"start": {
"description": "Start date in ISO 8601 format (UTC). Providing start or end enables historical mode.",
"example": "2026-04-27T00:00:00Z",
"format": "date-time",
"required": false,
"type": "string",
"x-parameter-location": "query"
},
"window_days": {
"description": "Realised volatility lookback window in days.",
"enum": [
7,
30,
60,
90,
180,
365
],
"example": 30,
"minimum": 1,
"required": false,
"type": "number",
"x-parameter-location": "query"
}
},
"required": [
"exchange",
"instrument_name"
],
"type": "object"
}{
"properties": {
"currency": {
"description": "Base currency filter. Case-insensitive.",
"example": "BTC",
"type": "string"
},
"cursor": {
"description": "Pagination cursor for fetching the next historical page. Use meta.next_cursor from the previous response.",
"type": "string"
},
"date": {
"description": "Snapshot point-in-time in ISO 8601 format (UTC). If omitted in snapshot mode, returns latest rows.",
"example": "2026-04-27T12:35:30Z",
"format": "date-time",
"type": "string"
},
"end": {
"description": "End date in ISO 8601 format (UTC). Providing start or end enables historical mode.",
"example": "2026-04-28T00:00:00Z",
"format": "date-time",
"type": "string"
},
"estimator": {
"description": "Realised volatility estimator filter.",
"enum": [
"close_to_close",
"parkinson",
"garman_klass"
],
"example": "close_to_close",
"type": "string"
},
"exchange": {
"description": "Exchange name. Required. Case-insensitive. Example data includes Deribit, Binance, and Hyperliquid instruments.",
"example": "deribit",
"type": "string"
},
"frequency": {
"description": "Sampling frequency used to compute realised volatility.",
"enum": [
"daily",
"hourly"
],
"example": "daily",
"type": "string"
},
"instrument_name": {
"description": "Full instrument identifier. Required. Case-insensitive.",
"example": "BTC-PERPETUAL",
"type": "string"
},
"limit": {
"default": 100,
"description": "Maximum number of historical records to return (1-1000). Ignored in snapshot mode.",
"example": 100,
"maximum": 1000,
"minimum": 1,
"type": "number"
},
"sort_dir": {
"default": "ASC",
"description": "Sort direction by ts (historical mode only). ASC = oldest first (default, suited for backfills/charts). DESC = newest first (suited for \"latest N\" queries). Cursor pagination works in both directions; keep sort_dir constant within a paginated scan.",
"enum": [
"ASC",
"DESC"
],
"type": "string"
},
"start": {
"description": "Start date in ISO 8601 format (UTC). Providing start or end enables historical mode.",
"example": "2026-04-27T00:00:00Z",
"format": "date-time",
"type": "string"
},
"window_days": {
"description": "Realised volatility lookback window in days.",
"enum": [
7,
30,
60,
90,
180,
365
],
"example": 30,
"minimum": 1,
"type": "number"
}
},
"required": [
"exchange",
"instrument_name"
],
"type": "object"
}{
"allOf": [
{
"properties": {
"data": {
"items": {
"type": "array"
},
"type": "array"
},
"meta": {
"properties": {
"next_cursor": {
"description": "Pagination cursor for fetching the next page of results. Pass this value as the cursor parameter in the next request. Null indicates no more pages.",
"example": "eyJpZCI6MTIzNDU2NzgsInRzIjoxNjQwOTk1MjAwfQ==",
"nullable": true,
"type": "string"
}
},
"required": [
"next_cursor"
],
"type": "object",
"x-openapi-ref": "#/components/schemas/PaginationMetaEntity"
}
},
"required": [
"data",
"meta"
],
"type": "object",
"x-openapi-ref": "#/components/schemas/PaginatedResponse"
},
{
"properties": {
"data": {
"items": {
"properties": {
"currency": {
"description": "Base currency",
"example": "BTC",
"type": "string"
},
"date": {
"description": "Date in ISO 8601 format (UTC)",
"example": "2024-12-10T00:00:00.000Z",
"format": "date-time",
"type": "string"
},
"estimator": {
"description": "Realised volatility estimator",
"example": "close_to_close",
"type": "string"
},
"exchange": {
"description": "Exchange name",
"example": "deribit",
"type": "string"
},
"frequency": {
"description": "Sampling frequency used to compute realised volatility",
"example": "daily",
"type": "string"
},
"instrument_name": {
"description": "Full instrument identifier",
"example": "BTC-PERPETUAL",
"type": "string"
},
"rv_annualized": {
"description": "Annualized realised volatility, expressed as a percentage (e.g. 38.76 = 38.76% annualised vol).",
"example": 38.76,
"type": "number"
},
"sample_count": {
"description": "Number of samples used to compute the metric",
"example": 30,
"type": "number"
},
"window_days": {
"description": "Realised volatility lookback window in days",
"example": 30,
"type": "number"
}
},
"required": [
"date",
"exchange",
"currency",
"instrument_name",
"frequency",
"window_days",
"estimator",
"rv_annualized",
"sample_count"
],
"type": "object",
"x-openapi-ref": "#/components/schemas/RealizedVolatilityEntity"
},
"type": "array"
}
}
}
]
}{
"currency": "BTC",
"cursor": "test",
"date": "2026-04-27T12:35:30Z",
"end": "2026-04-28T00:00:00Z",
"estimator": "close_to_close",
"exchange": "deribit",
"frequency": "daily",
"instrument_name": "BTC-PERPETUAL",
"limit": 100,
"sort_dir": "ASC",
"start": "2026-04-27T00:00:00Z",
"window_days": 30
}{
"data": [
{
"currency": "BTC",
"date": "2026-04-27T12:35:30.000Z",
"estimator": "close_to_close",
"exchange": "deribit",
"frequency": "daily",
"instrument_name": "BTC-PERPETUAL",
"rv_annualized": 35.73,
"sample_count": 30,
"window_days": 30
},
{
"currency": "BTC",
"date": "2026-04-27T12:35:30.000Z",
"estimator": "parkinson",
"exchange": "deribit",
"frequency": "daily",
"instrument_name": "BTC-PERPETUAL",
"rv_annualized": 39.11,
"sample_count": 30,
"window_days": 30
},
{
"currency": "BTC",
"date": "2026-04-27T12:35:30.000Z",
"estimator": "garman_klass",
"exchange": "deribit",
"frequency": "daily",
"instrument_name": "BTC-PERPETUAL",
"rv_annualized": 39.85,
"sample_count": 30,
"window_days": 30
}
],
"meta": {
"next_cursor": null
}
}