{"uid":"cap_oaAFiUad3Ey-8CVLApboy","slug":"laevitas-options-instrument-volume-history-89368f9d","name":"Laevitas Options Instrument Volume History","description":"Professional market data API for crypto derivatives, spot markets, prediction markets, Hyperliquid HyperCore data, proprietary volatility surfaces, and analytics.\n\n## Authentication\n\nUse an API key for authenticated REST requests:\n\n```http\nX-API-Key: your-api-key-here\n```\n\nData 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.\n\n**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).\n\nThe 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.\n\nFor Claude MCP, add `https://apiv2.laevitas.ch/api/v1/mcp`, select **Sign in now → Register automatically**\nwith no custom headers, and authorize with your API key on the Laevitas page.\nDo not enter a client ID or secret manually. All OAuth clients require PKCE S256.\nConnection guide: [MCP setup](/mcp). CIMD / published client identity is not supported.\n\n| Resource | Path |\n| --- | --- |\n| OpenAPI JSON | `GET /openapi.json` |\n| x402 discovery | `GET /.well-known/x402` |\n| Changelog | `GET /api/v1/changelog` |\n| WebSocket docs | `GET /websocket` |\n\n## REST Surfaces\n\n| Surface | Examples |\n| --- | --- |\n| Instruments | Cross-market contract reference data |\n| Futures | OHLCVT, trades, tickers, orderbook, liquidations, carry |\n| Perpetuals | OHLCVT, trades, funding, open interest, orderbook, liquidations |\n| Options | OHLCVT, trades, Greeks, volatility, flow, dealer GEX |\n| Options Backtests | Strategy templates, asynchronous submission, status, combined results, cancellation |\n| Vol Surface | Proprietary surface snapshots, slices, strikes, term structure, risk |\n| Spot | OHLCVT, ticker, trades, volume, L2 orderbook, snapshots |\n| Predictions | Polymarket instruments, categories, trades, ticker history |\n| Hyperliquid - HyperCore | Node-derived fills, liquidations, positions, funding, TWAPs, resting orders, L2 books |\n| Analytics | Realized volatility and derived metrics |\n\n## Pagination\n\nBacktests are asynchronous jobs, not paginated market-data queries. Start with\n`GET /api/v1/options/backtests/strategies`, submit with `POST /api/v1/options/backtests`,\nthen poll `/{id}` and retrieve `/{id}/result`. These responses have no data/meta wrapper.\n\nPaginated endpoints return the cursor at `meta.next_cursor`. Pass that value back as the `cursor` query parameter to fetch the next page.\n\n## WebSocket Streaming\n\nReal-time streams are documented at `/websocket`.\n\n| Data | Channel pattern |\n| --- | --- |\n| Trades | `trades.{market}.{exchange}.{instrument}` |\n| OHLC ticker | `ohlc.ticker.{market}.{exchange}.{instrument}.{timeframe}` |\n| OHLCVT | `ohlc.vt.{market}.{exchange}.{instrument}.{timeframe}` |\n\nVariables: `market` is one of `perpetuals`, `futures`, `options`, or `spot`; `timeframe` is one of `1m`, `5m`, `15m`, `1h`, `4h`, or `1d`.\n\n## Quick Start\n\n```bash\ncurl \"https://apiv2.laevitas.ch/api/v1/futures/ohlcvt?exchange=deribit&instrument_name=BTC-PERPETUAL\" \\\n  -H \"X-API-Key: your-api-key-here\"\n```","url":"https://apiv2.laevitas.ch/api/v1/options/instrument-volume-history?utm_source=zero.xyz","method":"POST","headers":{},"bodySchema":{"type":"object","required":["end","start","exchange","instrument_name"],"properties":{"end":{"type":"string","description":"Inclusive ISO-8601 instant with timezone, truncated to seconds. Not an exclusive boundary or an implicit full UTC day."},"page":{"type":"integer","description":"One-based output-row page. A liquidation page can split the long and short rows at one timestamp."},"limit":{"type":"integer","description":"Output rows per page: bucket and direction pairs. Default 10; maximum 1440."},"start":{"type":"string","description":"Inclusive ISO-8601 instant with timezone, truncated to seconds. Spot edge candles use only source observations inside the requested bounds."},"exchange":{"enum":["deribit","okx","binance","bybit","paradex"],"type":"string","description":"Retained options venue."},"instrument_name":{"type":"string","description":"Option instrument as CURRENCY-EXPIRY-STRIKE-TYPE, e.g. BTC-25DEC26-100000-C; expiry DMMMYY, type C or P. Compared case-insensitively."}}},"responseSchema":{"type":"object","required":["dataset_id","items","meta"],"properties":{"meta":{"type":"object","required":["total","items","page","total_pages","limit","availability","count_basis"],"properties":{"page":{"type":"integer","maximum":9007199254740991,"minimum":0,"description":"One-based page number.","exclusiveMinimum":true},"items":{"type":"integer","maximum":9007199254740991,"minimum":0,"description":"Number of rows actually returned on this page."},"limit":{"type":"integer","maximum":9007199254740991,"minimum":0,"exclusiveMinimum":true},"total":{"type":"integer","maximum":9007199254740991,"minimum":0,"description":"Total matching source rows for this window, not this page; instrument rows may share a timestamp."},"count_basis":{"enum":["bucket_direction_rows"],"type":"string","description":"What total, limit and pagination count; liquidation long/short rows may occupy separate pages."},"total_pages":{"type":"integer","maximum":9007199254740991,"minimum":0,"description":"Declared page count. Compatibility aliases preserve legacy omitted-limit accounting; send page and limit explicitly."},"availability":{"type":"object","required":["empty_reason","coverage","completeness"],"properties":{"coverage":{"type":"object","required":["source_id","exchange_supported","instrument_eligible","earliest_observed_at","latest_observed_at"],"properties":{"source_id":{"enum":["options.trade_history"],"type":"string"},"exchange_supported":{"enum":[true],"type":"boolean","nullable":true},"latest_observed_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","nullable":true},"instrument_eligible":{"enum":[null],"type":"string","nullable":true},"earliest_observed_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","nullable":true}},"additionalProperties":false},"completeness":{"type":"object","required":["status","certification","complete_from","complete_through","complete_from_inclusive","complete_through_inclusive","monotonic","monotonic_boundary","revisions_possible","certified_at","updated_at","unavailable_reason","scope"],"properties":{"scope":{"type":"object","required":["endpoint_id","source_ids","exchange","instrument_name","currency"],"properties":{"currency":{"type":"string","nullable":true},"exchange":{"type":"string","nullable":true},"source_ids":{"type":"array","items":{"type":"string"}},"endpoint_id":{"enum":["options.trade_history"],"type":"string"},"instrument_name":{"type":"string","nullable":true}},"additionalProperties":false},"status":{"enum":["unavailable"],"type":"string"},"monotonic":{"enum":[false],"type":"boolean"},"updated_at":{"enum":[null],"type":"string","nullable":true},"certified_at":{"enum":[null],"type":"string","nullable":true},"certification":{"enum":[null],"type":"string","nullable":true},"complete_from":{"enum":[null],"type":"string","nullable":true},"complete_through":{"enum":[null],"type":"string","nullable":true},"monotonic_boundary":{"enum":["complete_through"],"type":"string"},"revisions_possible":{"enum":[true],"type":"boolean"},"unavailable_reason":{"enum":["not_supported"],"type":"string"},"complete_from_inclusive":{"enum":[true],"type":"boolean"},"complete_through_inclusive":{"enum":[false],"type":"boolean"}},"additionalProperties":false},"empty_reason":{"enum":["classification_unavailable"],"type":"string","nullable":true}},"additionalProperties":false}},"additionalProperties":false},"items":{"type":"array","items":{"type":"object","required":["date","direction","volume"],"properties":{"date":{"type":"integer","maximum":9007199254740991,"minimum":0,"description":"Start of the UTC bucket, Unix epoch milliseconds."},"volume":{"type":"number","nullable":true,"description":"Sum of traded quantity in the bucket for that direction, in the instrument quantity unit, not USD."},"direction":{"enum":["buy","sell","unknown"],"type":"string","description":"Trade direction of the taker; unknown where the venue did not report one."}},"additionalProperties":false}},"dataset_id":{"enum":["options.trade_history"],"type":"string"}},"additionalProperties":false},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.1","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.1/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.1","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.1","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_rYX7vdXSbNrppy6wO621M","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.1","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Returns paginated historical trading volume data for a specific crypto options instrument on a given exchange over a requested time range.","exampleAgentPrompt":"Pull the historical volume data for BTC-25DEC26-100000-C on Deribit from January 1 2025 to March 31 2025, showing 100 rows per page starting at page 1.","exampleUseCases":[{"title":"Backtesting options liquidity for a strategy","prompt":"Get me the full volume history for ETH-27JUN25-2000-P on Deribit from March 1 2025 through May 31 2025, 200 rows per page, starting at page 1 — I need to assess how liquid this contract was."},{"title":"Monitoring recent call option activity on OKX","prompt":"Show me the trading volume history for BTC-30MAY25-90000-C on OKX for the past two weeks, give me 50 rows per page on page 1."},{"title":"Comparing volume across strike expirations","prompt":"Fetch the instrument volume history for BTC-26SEP25-150000-C on Bybit from January 1 2025 to April 30 2025, page 1 with 100 results, so I can compare activity at that strike over time."}],"resultDescription":"A paginated JSON object containing historical volume rows for the specified options instrument, with each row representing a bucket-direction pair (trade timestamps and volumes). Includes metadata such as total row count, current page, total pages, limit, and data coverage details including earliest and latest observed timestamps and exchange support status.","failureModes":["Invalid instrument_name format (must be CURRENCY-EXPIRY-STRIKE-TYPE, e.g. BTC-25DEC26-100000-C) returns a validation error","Unsupported exchange value outside the allowed enum returns a validation error","Missing required fields (start, end, exchange, instrument_name) returns a 400 error","Date range with no data available returns empty items with coverage metadata explaining the gap","Page number beyond total_pages returns an empty result set","Invalid ISO-8601 datetime format for start or end returns a parsing error","Insufficient credits or expired subscription returns a 402 payment required error"],"whenToPreferThis":"Use this endpoint when you need granular, paginated historical trading volume for a specific named options contract (e.g. BTC-25DEC26-100000-C) on a supported exchange (Deribit, OKX, Binance, Bybit, Paradex). It is the right choice for backtesting liquidity, analyzing how active a specific strike/expiry was over a time window, or building time-series volume charts for a known instrument. Prefer it over aggregated or cross-instrument endpoints when the exact contract identifier is known and per-instrument granularity is required.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-31T18:42:05.107Z","isFirstParty":false,"canonicalSlug":"laevitas-options-instrument-volume-history-89368f9d"}