# Laevitas Historical Options Type Skew

> Laevitas Historical Options Type Skew is a paid API for AI agents from apiv2.laevitas.ch, paid per call via x402, $0.1/call, status unknown (last checked 2026-10-31).

Returns historical implied volatility skew data (call IV, put IV, ATM IV, risk reversal, butterfly, and related Greeks) for a specific crypto options market, currency, and skew type over a date range.

## Facts

- Endpoint: POST https://apiv2.laevitas.ch/api/v1/historical/options/type/skew/%7Bmarket%7D/%7Bcurrency%7D/%7Btype%7D?utm_source=zero.xyz
- Price: $0.1/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-31
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/laevitas-historical-options-type-skew-ba6ec43f
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_BJdiMDQzGmTqxVqF47vWa

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability laevitas-historical-options-type-skew-ba6ec43f -d '<json body>'
```

Example prompt: Pull historical options skew data for BTC on Deribit — I want the actual_skew_model type from January 1 2024 to March 31 2024, with daily granularity, page 1 and 30 rows per page.

## When to prefer this

Choose this endpoint when you need time-series historical implied volatility skew metrics for crypto options — specifically call/put IV differentials, risk reversals, butterflies, ATM IV, GEX, or VEX — for a specific market and currency. Prefer it over real-time skew endpoints when you need backtesting data, trend analysis, or historical vol surface analytics. It supports flexible date ranges, pagination, and granularity resampling, making it suited for quantitative research workflows.

## Known failure modes

- Missing required 'start' parameter returns a 400 validation error
- Invalid market or currency path parameters return a 404 or empty dataset
- Date range with no available data returns items array with zero elements
- Malformed date string (not ISO or epoch) causes a 400 parse error
- Requesting data older than 3 years without sufficient x402 credits or valid API key returns a 402 or 401 error
- Invalid granularity string that is not on the known UTC sampling grid may return native granularity silently or an error

## How this service works

Professional market data API for crypto derivatives, spot markets, prediction markets, Hyperliquid HyperCore data, proprietary volatility surfaces, and analytics.

## Authentication

Use an API key for authenticated REST requests:

```http
X-API-Key: your-api-key-here
```

Data and history endpoints also accept x402 without an API key: 1, 5 or 10 credits ($0.001 each) for data up to 1 year, 1–3 years or older.

**Subscriptions with USDC:** Premium and Enterprise can be purchased on Base or Solana for a month, a quarter, six months or a year. Access is prepaid, with no automatic renewal. [Buy a subscription](https://v3.laevitas.ch/profile/subscription/wallet) or read the [USDC subscription guide](/x402#subscriptions).

The subscription belongs to your signed-in Laevitas account; wallet sign-in does not require an email. Enterprise users generate an API key in V3 after activation. Plan and billing-period limits still apply. Subscription purchases are separate from API credit bundles.

For Claude MCP, add `https://apiv2.laevitas.ch/api/v1/mcp`, select **Sign in now → Register automatically**
with no custom headers, and authorize with your API key on the Laevitas page.
Do not enter a client ID or secret manually. All OAuth clients require PKCE S256.
Connection guide: [MCP setup](/mcp). CIMD / published client identity is not supported.

| Resource | Path |
| --- | --- |
| OpenAPI JSON | `GET /openapi.json` |
| x402 discovery | `GET /.well-known/x402` |
| Changelog | `GET /api/v1/changelog` |
| WebSocket docs | `GET /websocket` |

## REST Surfaces

| Surface | Examples |
| --- | --- |
| Instruments | Cross-market contract reference data |
| Futures | OHLCVT, trades, tickers, orderbook, liquidations, carry |
| Perpetuals | OHLCVT, trades, funding, open interest, orderbook, liquidations |
| Options | OHLCVT, trades, Greeks, volatility, flow, dealer GEX |
| Options Backtests | Strategy templates, asynchronous submission, status, combined results, cancellation |
| Vol Surface | Proprietary surface snapshots, slices, strikes, term structure, risk |
| Spot | OHLCVT, ticker, trades, volume, L2 orderbook, snapshots |
| Predictions | Polymarket instruments, categories, trades, ticker history |
| Hyperliquid - HyperCore | Node-derived fills, liquidations, positions, funding, TWAPs, resting orders, L2 books |
| Analytics | Realized volatility and derived metrics |

## Pagination

Backtests are asynchronous jobs, not paginated market-data queries. Start with
`GET /api/v1/options/backtests/strategies`, submit with `POST /api/v1/options/backtests`,
then poll `/{id}` and retrieve `/{id}/result`. These responses have no data/meta wrapper.

Paginated endpoints return the cursor at `meta.next_cursor`. Pass that value back as the `cursor` query parameter to fetch the next page.

## WebSocket Streaming

Real-time streams are documented at `/websocket`.

| Data | Channel pattern |
| --- | --- |
| Trades | `trades.{market}.{exchange}.{instrument}` |
| OHLC ticker | `ohlc.ticker.{market}.{exchange}.{instrument}.{timeframe}` |
| OHLCVT | `ohlc.vt.{market}.{exchange}.{instrument}.{timeframe}` |

Variables: `market` is one of `perpetuals`, `futures`, `options`, or `spot`; `timeframe` is one of `1m`, `5m`, `15m`, `1h`, `4h`, or `1d`.

## Quick Start

```bash
curl "https://apiv2.laevitas.ch/api/v1/futures/ohlcvt?exchange=deribit&instrument_name=BTC-PERPETUAL" \
  -H "X-API-Key: your-api-key-here"
```

## Output

A paginated JSON object with a meta block (total records, items per page, total pages) and an items array. Each item includes a date and nullable fields: call IV (c), put IV (p), ATM IV (atm), expiry ATM IV (iv), derived skew metric (d), legacy GEX, and VEX — all in percentage points or volatility points depending on field.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "start"
 ],
 "properties": {
  "end": {
   "type": "string",
   "description": "Date-only includes the whole UTC day. Omitted end is end of tomorrow in UTC."
  },
  "page": {
   "type": "integer",
   "description": "Omitted queries page 1 but omits meta.page, as in v1."
  },
  "limit": {
   "type": "integer",
   "description": "Omitted queries 10 rows but uses divisor 1 for meta.total_pages, as in v1."
  },
  "start": {
   "type": "string",
   "description": "Legacy ISO/date-only or 10/13-digit epoch."
  },
  "granularity": {
   "type": "string",
   "description": "Known UTC sampling grid; omitted or -- means native."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "meta",
  "items"
 ],
 "properties": {
  "meta": {
   "type": "object",
   "required": [
    "total",
    "items",
    "total_pages"
   ],
   "properties": {
    "page": {
     "type": "integer",
     "maximum": 9007199254740991,
     "minimum": 0,
     "exclusiveMinimum": true
    },
    "items": {
     "type": "integer",
     "maximum": 9007199254740991,
     "minimum": 0
    },
    "total": {
     "type": "integer",
     "maximum": 9007199254740991,
     "minimum": 0
    },
    "total_pages": {
     "type": "integer",
     "maximum": 9007199254740991,
     "minimum": 0
    }
   },
   "additionalProperties": false
  },
  "items": {
   "type": "array",
   "items": {
    "type": "object",
    "required": [
     "date"
    ],
    "properties": {
     "c": {
      "type": "number",
      "nullable": true,
      "description": "Call implied volatility operand at the selected delta, percentage points, published to four decimals. Not call quantity."
     },
     "d": {
      "type": "number",
      "nullable": true,
      "description": "Selected derived metric. actual_skew_model: round((p - c) / atm * 100, 2) from served operands in binary floating point, a percentage ratio. actual_risk_reversal_model / actual_butterfly_model: retained model result in volatility points, NOT that normalized ratio."
     },
     "p": {
      "type": "number",
      "nullable": true,
      "description": "Put implied volatility operand at the selected delta, percentage points, published to four decimals. Not put quantity."
     },
     "iv": {
      "type": "number",
      "nullable": true,
      "description": "Expiry ATM IV: implied volatility of the strike nearest the underlying price (index price when absent) among the options of the selected expiry, percentage points, four decimals."
     },
     "atm": {
      "type": "number",
      "nullable": true,
      "description": "ATM implied volatility operand, percentage points, published to four decimals. Not a price."
     },
     "gex": {
      "type": "number",
      "nullable": true,
      "description": "Legacy signed sum of gamma * underlying_price * open_interest; puts negative, calls positive. No extra 1%-move or squared-price scaling; not interchangeable with modern GEX."
     },
     "vex": {
      "type": "number",
      "nullable": true,
      "description": "Legacy signed vanna-style exposure term, including its 0.01 and /1000 scales. Not ordinary option vega or USD open interes
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/laevitas-historical-options-type-skew-ba6ec43f/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from apiv2.laevitas.ch](https://www.zero.xyz/host/apiv2.laevitas.ch/llms.txt)
