# REST API

**Request URL:** `https://prod-data.blockscholes.com/`

## 1. Endpoints Overview

Below is an overview of all available REST API endpoints.

### **1.1 Catalog Instruments**

| **Category**        | **Endpoint**                                   | **Description**                                       |
| ------------------- | ---------------------------------------------- | ----------------------------------------------------- |
| Catalog Instruments | [/api/v1/catalog](#id-4.1-catalog-instruments) | Catalog of instruments listed on specified exchanges. |

### **1.2 Implied Volatility Surface**

| **Category**                        | **Endpoint**                                                                          | **Description**                                                        |
| ----------------------------------- | ------------------------------------------------------------------------------------- | ---------------------------------------------------------------------- |
| IV by Strike                        | [/api/v1/iv/strike](#id-4.3-implied-volatility-by-strike)                             | Implied volatility for given strike prices.                            |
| IV by Delta                         | [/api/v1/iv/delta](#id-4.4-implied-volatility-by-delta)                               | Implied volatility for specified delta levels.                         |
| IV by Moneyness                     | [/api/v1/iv/moneyness](#id-4.5-implied-volatility-by-moneyness)                       | Implied volatility for specified moneyness levels.                     |
| IV by Risk Reversal (Call-Put Skew) | [/api/v1/iv/risk-reversal](#id-4.6-implied-volatility-by-risk-reversal-call-put-skew) | Risk reversal data derived from the implied volatility surface.        |
| IV by Butterfly Spread              | [/api/v1/iv/butterfly-spread](#id-4.7-implied-volatility-by-butterfly-spread)         | Butterfly spread data derived from the implied volatility surface.     |
| IV Index (BSIV)                     | [/api/v1/iv/index](#id-4.8-implied-volatility-index-bsiv)                             | The Block Scholes Implied Volatility Index (BSIV) for constant tenors. |
| Calibrated Model Parameters         | [/api/v1/modelparams](#id-4.9-model-parameters)                                       | Calibrated SVI model parameters for a given exchange and expiry.       |

### **1.3 Instrument Pricing**

| **Category**     | **Endpoint**                                           | **Description**                                     |
| ---------------- | ------------------------------------------------------ | --------------------------------------------------- |
| Index Price      | [/api/v1/price/index](#id-4.10-index-prices)           | Index price for a specified asset type.             |
| Mark Price       | [/api/v1/price/mark](#id-4.11-mark-price)              | Mark price for a specified asset type.              |
| Settlement Price | [/api/v1/price/settlement](#id-4.13-settlement-prices) | Time-weighted spot index price at or before expiry. |

### 1.4 **Market Data**

| **Data Type**         | **Endpoint**                                           | **Description**                                                            |
| --------------------- | ------------------------------------------------------ | -------------------------------------------------------------------------- |
| Forward-Implied Rates | [/api/v1/rate/forward](#id-4.14-forward-implied-rates) | Forward-implied rates for supported assets.                                |
| Funding Rates         | [/api/v1/rate/funding](#id-4.15-funding-rates)         | Perpetual funding rates.                                                   |
| Mid Price             | [/api/v1/price/mid](#id-4.12-mid-prices)               | Mid-price for a given instrument.                                          |
| Treasury Rates        | /api/v1/rate/treasury                                  | Treasury yield curve daily (bank discount) rates for supported maturities. |
| Quote Prices (BBO)    | [/api/v1/price/quote](#id-4.19-quote-price)            | Best bid & ask for respective instrument                                   |
| Trade Price           | [/api/v1/price/trade](#id-4.17-trade-price)            | Last traded price for respective instrument                                |
| Open Interest         | [/api/v1/analytic/oi](#id-4.18-open-interest-oi)       | Returns aggregated open interest across supported exchanges.               |
| Trade Volume          | [/api/v1/analytic/volume](#id-4.16-volume)             | Returns aggregated trading volume data across supported exchanges.         |

## 2. Authentication

Requests must be authenticated and include the headers below. [Reach out for a free API key](https://docs.blockscholes.com/other/contact#request-free-trial-api-key)

| Header       | Value            | Description                |
| ------------ | ---------------- | -------------------------- |
| Content-Type | application/json | Format of the request body |
| X-API-Key    | {API\_KEY}       | API Key for authentication |

## 3. Request Options

A number of options are supported for applying & adjusting transformations on update messages.

**Request Example:**

```json
{
    "currency": "BTC",
    "expiry": "2023-10-05T00:00:00.000Z",
    "options": {
        "format": {
            "timestamp": "ms",
            "hexify": true,
            "decimals": 9
        },
        "signature": {
            "domain": {
                "name": "TRIAL",
                "version": "1",
                "chain_id": "50000",
                "verifying_contract": "0x1111111111111111111111111111111111111111"
            }
        }
    }
}
```

### 3.1 Object Definition

<table><thead><tr><th width="230.2625732421875">Field</th><th width="102.23223876953125">Type</th><th width="120.050537109375" data-type="checkbox">Mandatory</th><th>Description</th></tr></thead><tbody><tr><td><strong>format</strong></td><td>Object</td><td>true</td><td>Specifies data formatting preferences for the response.</td></tr><tr><td><strong>format.timestamp</strong></td><td>String</td><td>true</td><td>Defines the precision of the timestamps attached to returned data responses. Valid values: "s" (seconds), "ms" (milliseconds), "ns" (nanoseconds).</td></tr><tr><td><strong>format.hexify</strong></td><td>Boolean</td><td>true</td><td>Whether to convert numeric values to hexadecimal. If enabled, all numeric values will be transmitted as hex strings.</td></tr><tr><td><strong>format.decimals</strong></td><td>Integer</td><td>true</td><td>Number of decimals to support for numerical types in the data. When signing is requested, numerical values will be scaled by 10<sup>decimals</sup>. When no signing is requested, numerical values will be rounded to the specified number of decimals. Eg.: "decimals":9</td></tr><tr><td><strong>signature</strong></td><td>Object</td><td>false</td><td>Contains information about the signature domain specified by the client.</td></tr></tbody></table>

### 3.1 EIP-712 Signatures

Message signing using the EIP-712 signatures are supported as an optional feature\
for most data requests, allowing integrity & provenance verification on-chain.

To enable, include the signature tag along with domain information on each API\
Request

For type definitions and detailed verification schema, refer to the [**Pull Oracle**](https://docs.blockscholes.com/blockchain-oracle/pull-based-oracle#verification-via-eip-712) documentation section.

## 4. Endpoints

### 4.1 Catalog Instruments

**Description:** Returns the catalog of instruments listed on specified exchange(s).

**Endpoint:** `/api/v1/catalog`\
**Method:** `POST`

**Request Body:**

```json
{
    "start": "2024-01-02T09:00:00Z",
    "end": "2024-01-02T09:00:00Z",
    "exchanges": ["blockscholes"],
    "asset_types": ["option"],
    "base_assets": ["BTC"],
    "quote_assets": [],
    "fields": []
}
```

**Request Explanation:**

<table><thead><tr><th width="159">Field</th><th width="181">Type</th><th width="129.5556640625" data-type="checkbox">Mandatory</th><th>Description</th></tr></thead><tbody><tr><td><strong>start</strong></td><td>ISO 8601 string</td><td>true</td><td>An instrument is considered valid if it expires after the specified "start" date.</td></tr><tr><td><strong>end</strong></td><td>ISO 8601 string</td><td>true</td><td>An instrument is considered valid if it is listed before the specified "end" date.</td></tr><tr><td><strong>exchanges</strong></td><td>List[str]</td><td>true</td><td>List of exchanges for filtering Catalog instruments. Eg. "blockscholes".</td></tr><tr><td><strong>asset_types</strong></td><td>List[str]</td><td>true</td><td>List of asset types for filtering Catalog instruments. Valid types are 'option', 'future', 'spot', 'perpetual'.</td></tr><tr><td><strong>base_assets</strong></td><td>List[str]</td><td>false</td><td>List of base assets for filtering Catalog instruments. Please check the table for the <a href="#id-6.-supported-base-assets">Supported base assets.</a> </td></tr><tr><td><strong>quote_assets</strong></td><td>List[str]</td><td>false</td><td>Optional list of quote assets for filtering Catalog instruments.</td></tr><tr><td><strong>fields</strong></td><td>List[str]</td><td>false</td><td>Optional list of instrument’s fields to be returned in the response. Valid values correspond to the field names available in the <strong>Response Data</strong> section (e.g., exchange, asset_type, expiry, strike, etc.). Please refer the fields in the Response data. Eg. "fields": ["exchange", "asset_type", "expiry"]. If not specified, all fields will be returned by default.</td></tr></tbody></table>

**Response Data**

```json
{ 
   "data": [ 
       { 
           "asset_type": "option", 
           "exchange": "composite", 
           "available_since": "2023-12-28T08:00:09.000Z", 
           "listing": "2023-12-28T08:00:09.000Z", 
           "base_asset": "BTC", 
           "quote_asset": "BTC", 
           "settlement_asset": "BTC", 
           "expiry": "2024-12-27T08:00:00.000Z", 
           "strike": 10000, 
           "type": "C", 
           "style": "european" 
       }, 
 … 
] 
```

**Response Explanation:**

<table><thead><tr><th width="161">Field</th><th width="160">Type</th><th>Description</th></tr></thead><tbody><tr><td><strong>data</strong></td><td>List</td><td>List of Catalog Instruments that match the filters in the request.</td></tr><tr><td><strong>asset_type</strong></td><td>String</td><td>Represents the asset type of the instrument.</td></tr><tr><td><strong>exchange</strong></td><td>String</td><td>Represents the exchange associated with the instrument.</td></tr><tr><td><strong>available_since</strong></td><td>ISO 8601 string</td><td>The date and time when the instrument was made available.</td></tr><tr><td><strong>listing</strong></td><td>ISO 8601 string</td><td>The date and time when the instrument was listed.</td></tr><tr><td><strong>base_asset</strong></td><td>String</td><td>The base asset of the instrument. </td></tr><tr><td><strong>quote_asset</strong></td><td>String</td><td>The quote asset of the instrument.</td></tr><tr><td><strong>settlement_asset</strong></td><td>String</td><td>The settlement asset of the instrument.</td></tr><tr><td><strong>expiry</strong></td><td>ISO 8601 string</td><td>The date and time when the instrument expires. Only available for future and option asset types.</td></tr><tr><td><strong>strike</strong></td><td>Integer</td><td>An integer indicating the strike price of the option. Only available for option asset type.</td></tr><tr><td><strong>type</strong></td><td>String</td><td>Represents the type of the option. 'C' for call options and 'P' for put options. Only available for option asset type.</td></tr><tr><td><strong>style</strong></td><td>String</td><td>Represents the style of the option. In the provided example, it's a European option. Only available for option asset type.</td></tr></tbody></table>

***

### 4.2 Add Feed

**Description:** Adds support for a new price feed on any token with active markets. Clients can expect to see requests (and websocket API subscriptions) for newly added tokens to start returning prices within 5 minutes from when the endpoint is called. This automation serves to streamline addition of new feeds on `index.px` and `mark.px` without having to go through a manual client support workflow.

**Endpoint:** `/api/v1/feed/add`\
**Method:** `POST`

**Request Body:**

```json
{
    "feed": {
        "name": "index.px"
    },
    "base_asset": "BTC",
    "asset_type": "spot"
}
```

**Request Explanation:**

<table><thead><tr><th width="153.111083984375">Field</th><th width="115.888916015625">Type</th><th width="126.9998779296875" data-type="checkbox">Mandatory</th><th>Description</th></tr></thead><tbody><tr><td>feed</td><td>Object</td><td>true</td><td>Defines the feed metadata.</td></tr><tr><td>feed.name</td><td>String</td><td>true</td><td>The  name of the feed Eg. mark.px, index.px.</td></tr><tr><td>base_asset</td><td>String</td><td>true</td><td>The currency to be added to the provided feed. Please check the table for the <a href="#id-6.-supported-base-assets">Supported base assets.</a> </td></tr><tr><td>asset_type</td><td>String</td><td>true</td><td><p>Type of asset this feed corresponds to (e.g., perpetual, spot ). </p><p><strong>Allowed combinations:</strong><br>• spot :  index.px<br>• perpetual :  mark.px</p></td></tr></tbody></table>

**Response Data**

```json
{
    "status": "success",
    "message": "Successfully added feed for BTC (perpetual)"
}
```

***

### 4.3 Implied Volatility by Strike

**Description:** Provides implied volatility values at specific strike levels.

**Endpoint:** `/api/v1/iv/strike`\
**Method:** `POST`

**Request Body:**

```json
{
    "exchange": "composite",
    "base_asset": "BTC",
    "expiry": "2025-10-31T08:00:00Z",
    "model": "SVI",
    "start": "LATEST",
    "end": "LATEST",
    "strike": [100000.0, 200000.0],
    "frequency": "1h",
    "options": {
        "format": {
            "timestamp": "ms",
            "hexify": false,
            "decimals": 0
        }
    }
}

```

**Request Explanation:**

<table><thead><tr><th width="199.353515625">Field</th><th width="102.23223876953125">Type</th><th width="120.050537109375" data-type="checkbox">Mandatory</th><th>Description</th></tr></thead><tbody><tr><td><strong>exchange</strong></td><td>String</td><td>true</td><td>The name of the exchange (e.g., "blockscholes").</td></tr><tr><td><strong>base_asset</strong></td><td>String</td><td>true</td><td>The currency for which implied volatility is being requested. Please check the table for the <a href="#id-6.-supported-base-assets">Supported base assets.</a></td></tr><tr><td><strong>expiry</strong></td><td>String</td><td>true</td><td>The expiration date (in ISO 8601 format or constant tenor e.g., "7d").</td></tr><tr><td><strong>model</strong></td><td>String</td><td>false</td><td><p>The mathematical model used to fit market quotes and interpolate or extrapolate values. Allowed values: </p><ul><li>SVI </li><li>Spline</li></ul><p>Default: SVI</p></td></tr><tr><td><strong>start</strong></td><td>String</td><td>false</td><td>Default value is "LATEST" to get the latest values. Also accepts ISO 8601 string.</td></tr><tr><td><strong>end</strong></td><td>String</td><td>false</td><td>Default value is "LATEST" to get the latest values. Also accepts ISO 8601 string.</td></tr><tr><td><strong>strike</strong></td><td>List[float] or "listed"</td><td>true</td><td>A list of strikes found on the given exchange (please refer to our catalog endpoint to obtain exchange-specific strikes), or <code>"listed"</code> to include <em><strong>all</strong></em> strikes currently listed on the exchange for the given expiry.  <strong>Note:</strong>  In the case of strike endpoint <code>"listed"</code> should <em>not</em> be used when querying for arbitrary (non-market-listed) expiries, it is only valid for expiries that exist in the catalog. Eg. <code>"strike":[3000, 3200]</code>  or  <code>"strike": "listed"</code> . Non-listed / non-standard strikes are also supported when requested explicitly: <code>"strike":[3281, 4257]</code></td></tr><tr><td><strong>frequency</strong></td><td>String</td><td>false</td><td><p>Defines the time interval between data points in the response. </p><p>Possible values:</p><ul><li>1h - Hourly data</li><li>1m - Minutely data</li></ul><p><strong>Default:</strong> 1h (hourly data)</p></td></tr><tr><td><strong>options</strong></td><td>Object</td><td>true</td><td>Defines custom configuration options for the API response</td></tr><tr><td><strong>options.format</strong></td><td>Object</td><td>true</td><td>Specifies data formatting preferences for the response.</td></tr><tr><td><strong>options.format.timestamp</strong></td><td>String</td><td>true</td><td>Defines the precision of the timestamps attached to returned data responses. Valid values: "s" (seconds), "ms" (milliseconds), "ns" (nanoseconds).</td></tr><tr><td><strong>options.format.hexify</strong></td><td>Boolean</td><td>true</td><td>Whether to convert numeric values to hexadecimal. If enabled, all numeric values will be transmitted as hex strings.</td></tr><tr><td><strong>options.format.decimals</strong></td><td>Integer</td><td>true</td><td>Number of decimals to support for numerical types in the data. When signing is requested, numerical values will be scaled accordingly. When no signing is requested, numerical values will be rounded to the specified number of decimals. Eg.: "decimals":9</td></tr><tr><td><strong>options.signature</strong></td><td>Object</td><td>false</td><td>Contains information about the signature domain specified by the client. Please check <a href="#id-3.1-eip-712-signatures">EIP-712 Signatures</a>.</td></tr></tbody></table>

**Response Data:**

```json
{
    "data": [
        {
            "values": [
                {
                    "strike": 200000.0,
                    "v": 1.67449
                },
                {
                    "strike": 100000.0,
                    "v": 0.86181
                }
            ],
            "timestamp": 1761807600000
        }
    ]
}
```

**Response Explanation:**

<table><thead><tr><th width="169">Field</th><th width="145">Type</th><th>Description</th></tr></thead><tbody><tr><td><strong>data</strong></td><td>Object</td><td>Contains the implied volatility data and associated metadata.</td></tr><tr><td><strong>data.values</strong></td><td>List</td><td>Each object inside the values list has the following fields: (strike<strong>,</strong> v)</td></tr><tr><td><strong>data.values.strike</strong></td><td>Float</td><td>This represents the strike price.</td></tr><tr><td><strong>data.values.v</strong></td><td>Float</td><td>This represents the implied volatility value for the given strike price.</td></tr><tr><td><strong>data.timestamp</strong></td><td>Float</td><td>An integer value representing the timestamp when the data was recorded.</td></tr><tr><td><strong>signature</strong></td><td>Object</td><td>The signature field contains the EIP-712 signature, enabling on-chain validation of data integrity, and serving as a confirmation of authenticity &#x26; data quality as provided by Block Scholes.</td></tr></tbody></table>

***

### 4.4 Implied Volatility by Delta

**Description:** Provides implied volatility values for specified delta levels.

**Endpoint:** `/api/v1/iv/delta`\
**Method:** `POST`

**Request Body:**

```json
{
    "exchange": "composite",
    "base_asset": "ETH",
    "expiry": "2025-10-31T08:00:00Z",
    "start": "LATEST",
    "end": "LATEST",
    "delta": [0.1, 0.50],
    "frequency": "1h",
    "options": {
        "format": {
            "timestamp": "ms",
            "hexify": false,
            "decimals": 2
        }
    }
}
```

**Request Explanation:**

<table><thead><tr><th width="226">Field</th><th width="173.4444580078125">Type</th><th width="120.6666259765625" data-type="checkbox">Mandatory</th><th>Description</th></tr></thead><tbody><tr><td><strong>exchange</strong></td><td>String</td><td>true</td><td>The name of the exchange (e.g., "composite").</td></tr><tr><td><strong>base_asset</strong></td><td>String</td><td>true</td><td>The currency for which implied volatility is being requested. Please check the table for the <a href="#id-6.-supported-base-assets">Supported base assets.</a></td></tr><tr><td><strong>expiry</strong></td><td>String</td><td>true</td><td>The expiration date (in ISO 8601 format or constant tenor e.g., "7d").</td></tr><tr><td><strong>model</strong></td><td>String</td><td>false</td><td><p>The mathematical model used to fit market quotes and interpolate or extrapolate  values. Allowed values: </p><ul><li>SVI </li><li>Spline</li></ul><p>Default: SVI</p></td></tr><tr><td><strong>start</strong></td><td>String</td><td>false</td><td>Default value is "LATEST" to get the latest values. Also accepts ISO 8601 string.</td></tr><tr><td><strong>end</strong></td><td>String</td><td>false</td><td>Default value is "LATEST" to get the latest values. Also accepts ISO 8601 string.</td></tr><tr><td><strong>delta</strong></td><td>List[float] or "listed"</td><td>true</td><td>A list of delta levels. Valid values include any of <code>["0.5", "0.45", "0.40", "0.35", "0.30", "0.25", "0.20", "0.15", "0.10", "0.05", "0.04", "0.03", "0.02", "0.01"]</code> both negative &#x26; positive, or <code>"listed"</code> to include <em><strong>all</strong></em> deltas calculated by default as standard pillars. Eg. <code>"delta":[0.5, 0.45]</code>  or  <code>"delta": "listed"</code> . Non-listed / non-standard deltas are also supported when requested explicitly:  "<code>delta":[0.43, 0.31]</code></td></tr><tr><td><strong>frequency</strong></td><td>String</td><td>false</td><td><p>Defines the time interval between data points in the response. </p><p>Possible values:</p><ul><li>1h - Hourly data</li><li>1m - Minutely data</li></ul><p><strong>Default:</strong> 1h (hourly data)</p></td></tr><tr><td><strong>options</strong></td><td>Object</td><td>true</td><td>Defines custom configuration options for the API response</td></tr><tr><td><strong>options.format</strong></td><td>Object</td><td>true</td><td>Specifies data formatting preferences for the response.</td></tr><tr><td><strong>options.format.timestamp</strong></td><td>String</td><td>true</td><td>Defines the precision of the timestamps attached to returned data responses. Valid values: "s" (seconds), "ms" (milliseconds), "ns" (nanoseconds).</td></tr><tr><td><strong>options.format.hexify</strong></td><td>Boolean</td><td>true</td><td>Whether to convert numeric values to hexadecimal. If enabled, all numeric values will be transmitted as hex strings.</td></tr><tr><td><strong>options.format.decimals</strong></td><td>Integer</td><td>true</td><td>Number of decimals to support for numerical types in the data. When signing is requested, numerical values will be scaled accordingly. When no signing is requested, numerical values will be rounded to the specified number of decimals. Eg.,  "decimals":9</td></tr><tr><td><strong>options.signature</strong></td><td>Object</td><td>false</td><td>Contains information about the signature domain specified by the client. Please check <a href="#id-3.1-eip-712-signatures">EIP-712 Signatures</a>.</td></tr></tbody></table>

**Response Data:**

```json
{
    "data": [
        {
            "values": [
                {
                    "delta": 0.5,
                    "v": 0.66
                },
                {
                    "delta": 0.1,
                    "v": 0.72
                }
            ],
            "timestamp": 1761807600000
        }
    ]
}
```

**Response Explanation:**

<table><thead><tr><th width="158.44439697265625">Field</th><th width="160">Type</th><th>Description</th></tr></thead><tbody><tr><td><strong>data</strong></td><td>Object</td><td>Contains the implied volatility data and associated metadata.</td></tr><tr><td><strong>data.values</strong></td><td>List</td><td>Each object inside the values list has the following fields: (delta<strong>,</strong> v)</td></tr><tr><td><strong>data.values.delta</strong></td><td>Float</td><td>This represents the delta level of the IV.</td></tr><tr><td><strong>data.values.v</strong></td><td>Float</td><td>This represents the implied volatility value.</td></tr><tr><td><strong>data.timestamp</strong></td><td>Integer</td><td>An integer value representing the timestamp when the data was recorded.</td></tr><tr><td><strong>signature</strong></td><td>Object</td><td>The signature field contains the EIP-712 signature, enabling on-chain validation of data integrity, and serving as a confirmation of authenticity &#x26; data quality as provided by Block Scholes.</td></tr></tbody></table>

***

### 4.5 Implied Volatility by Moneyness

**Description:** Provides implied volatility values at given moneyness ratios (strike/forward).

**Endpoint:** `/api/v1/iv/moneyness`\
**Method:** `POST`

**Request Body:**

```json
{ 
    "exchange": "composite", 
    "base_asset": "ETH", 
    "expiry": "2025-10-31T08:00:00Z", 
    "start": "LATEST", 
    "end": "LATEST", 
    "moneyness": [1.0, 2.0],
    "frequency": "1h", 
    "options": { 
        "format": { 
            "timestamp": "ms", 
            "hexify": false, 
            "decimals": 0 
        }
    } 
} 
```

**Request Explanation:**

<table><thead><tr><th width="157">Field</th><th width="176">Type</th><th width="133.6666259765625" data-type="checkbox">Mandatory</th><th>Description</th></tr></thead><tbody><tr><td><strong>exchange</strong></td><td>String</td><td>true</td><td>The name of the exchange (e.g., "composite").</td></tr><tr><td><strong>base_asset</strong></td><td>String</td><td>true</td><td>The currency for which implied volatility is being requested. Please check the table for the <a href="#id-6.-supported-base-assets">Supported base assets.</a></td></tr><tr><td><strong>expiry</strong></td><td>String</td><td>true</td><td>The expiration date (in ISO 8601 format or constant tenor e.g., "7d").</td></tr><tr><td><strong>model</strong></td><td>String</td><td>false</td><td><p>The mathematical model used to fit market quotes and interpolate or extrapolate  values. Allowed values: </p><ul><li>SVI </li><li>Spline</li></ul><p>Default: SVI</p></td></tr><tr><td><strong>start</strong></td><td>String</td><td>false</td><td>Default value is "LATEST" to get the latest values. Also accepts ISO 8601 string.</td></tr><tr><td><strong>end</strong></td><td>String</td><td>false</td><td>Default value is "LATEST" to get the latest values. Also accepts ISO 8601 string.</td></tr><tr><td><strong>moneyness</strong></td><td>List[float] or "listed"</td><td>true</td><td>A list of moneyness levels. Valid values range from 0.1 to 3, in increments of 0.1, or <code>"listed"</code> to include <em><strong>all</strong></em> moneyness currently listed on the exchange for the given expiry. Eg. <code>"moneyness":[0.1, 0.2]</code>  or  <code>"moneyness": "listed"</code> . We can also provide non-listed / non-standard <code>moneyness</code>. Eg. <code>moneyness":[0.12, 0.22]</code></td></tr><tr><td><strong>frequency</strong></td><td>String</td><td>false</td><td><p>Defines the time interval between data points in the response. </p><p>Possible values:</p><ul><li>1h - Hourly data</li><li>1m - Minutely data</li></ul><p><strong>Default:</strong> 1h (hourly data)</p></td></tr><tr><td><strong>options</strong></td><td>Object</td><td>true</td><td>Defines custom configuration options for the API response.</td></tr><tr><td><strong>options.format</strong></td><td>Object</td><td>true</td><td>Specifies data formatting preferences for the response.</td></tr><tr><td><strong>options.format.timestamp</strong></td><td>String</td><td>true</td><td>Defines the precision of the timestamps attached to returned data responses. Valid values: "s" (seconds), "ms" (milliseconds), "ns" (nanoseconds).</td></tr><tr><td><strong>options.format.hexify</strong></td><td>Boolean</td><td>true</td><td>Whether to convert numeric values to hexadecimal. If enabled, all numeric values will be transmitted as hex strings.</td></tr><tr><td><strong>options.format.decimals</strong></td><td>Integer</td><td>true</td><td>Number of decimals to support for numerical types in the data. When signing is requested, numerical values will be scaled accordingly. When no signing is requested, numerical values will be rounded to the specified number of decimals. Eg.: "decimals":9</td></tr><tr><td><strong>options.signature</strong></td><td>Object</td><td>false</td><td>Contains information about the signature domain specified by the client. Please check <a href="#id-3.1-eip-712-signatures">EIP-712 Signatures</a>.</td></tr></tbody></table>

**Response Data:**

```json
{
    "data": [
        {
            "values": [
                {
                    "money": 1.0,
                    "v": 0.6661
                },
                {
                    "money": 2.0,
                    "v": 2.16117
                }
            ],
            "timestamp": 1761807600000
        }
    ]
}
```

**Response Explanation:**

<table><thead><tr><th width="208.2222900390625">Field</th><th width="131">Type</th><th>Description</th></tr></thead><tbody><tr><td><strong>data</strong></td><td>Object</td><td>Contains the implied volatility data and associated metadata.</td></tr><tr><td><strong>data.values</strong></td><td>List</td><td>Each object inside the values list has the following fields: (moneyness<strong>,</strong> v)</td></tr><tr><td><strong>data.values.moneyness</strong></td><td>Float</td><td>This represents the moneyness level of the IV.</td></tr><tr><td><strong>data.values.v</strong></td><td>Float</td><td>This represents the implied volatility value.</td></tr><tr><td><strong>data.timestamp</strong></td><td>Integer</td><td>An integer value representing the timestamp when the data was recorded.</td></tr><tr><td><strong>signature</strong></td><td>Object</td><td>The signature field contains the EIP-712 signature, enabling on-chain validation of data integrity, and serving as a confirmation of authenticity &#x26; data quality as provided by Block Scholes.</td></tr></tbody></table>

***

### 4.6 Implied Volatility by Risk Reversal (Call-Put Skew)

**Description:** Provides risk reversal values representing the skew between calls and puts.

**Endpoint:** `/api/v1/iv/risk-reversal`\
**Method:** `POST`

**Request Body:**

```json
{
    "exchange": "composite",
    "base_asset": "ETH",
    "model": "SVI",
    "expiry": "2025-10-31T08:00:00Z",
    "start": "LATEST",
    "end": "LATEST",
    "delta": [
        0.1, 0.2, 0.25
    ],
    "frequency": "1h",
    "options": {
        "format": {
            "timestamp": "ms",
            "hexify": false,
            "decimals": 10
        }
    }
}

```

**Request Explanation:**

<table><thead><tr><th width="238">Field</th><th width="183.111083984375">Type</th><th width="126.333251953125" data-type="checkbox">Mandatory</th><th>Description</th></tr></thead><tbody><tr><td><strong>exchange</strong></td><td>String</td><td>true</td><td>The name of the exchange (e.g., "composite").</td></tr><tr><td><strong>base_asset</strong></td><td>String</td><td>true</td><td>The currency for which implied volatility is being requested. Please check the table for the <a href="#id-6.-supported-base-assets">Supported base assets.</a></td></tr><tr><td><strong>expiry</strong></td><td>String</td><td>true</td><td>The expiration date (in ISO 8601 format or constant tenor e.g., "7d").</td></tr><tr><td><strong>model</strong></td><td>String</td><td>false</td><td><p>The mathematical model used to fit market quotes and interpolate or extrapolate  values. Allowed values: </p><ul><li>SVI </li><li>Spline</li></ul><p>Default: SVI</p></td></tr><tr><td><strong>start</strong></td><td>String</td><td>false</td><td>Default value is "LATEST" to get the latest values. Also accepts ISO 8601 string.</td></tr><tr><td><strong>end</strong></td><td>String</td><td>false</td><td>Default value is "LATEST" to get the latest values. Also accepts ISO 8601 string.</td></tr><tr><td><strong>delta</strong></td><td>List[float] or "listed"</td><td>true</td><td>Valid values include any of <code>[0.45, 0.4, 0.35, 0.3, 0.25, 0.2, 0.15, 0.1, 0.05, 0.04, 0.03, 0.02, 0.01]</code> positive only, or <code>"listed"</code> to include <em><strong>all</strong></em> deltas calculated by default as standard pillars.. Eg. <code>"delta":[0.4, 0.45]</code>  or  <code>"delta": "listed"</code> . Non-listed / non-standard deltas are also supported when requested explicitly:  "<code>delta":[0.43, 0.31]</code></td></tr><tr><td><strong>frequency</strong></td><td>String</td><td>false</td><td><p>Defines the time interval between data points in the response. </p><p>Possible values:</p><ul><li>1h - Hourly data</li><li>1m - Minutely data</li></ul><p><strong>Default:</strong> 1h (hourly data)</p></td></tr><tr><td><strong>options</strong></td><td>Object</td><td>true</td><td>Defines custom configuration options for the API response.</td></tr><tr><td><strong>options.format</strong></td><td>Object</td><td>true</td><td>Specifies data formatting preferences for the response.</td></tr><tr><td><strong>options.format.timestamp</strong></td><td>String</td><td>true</td><td>Defines the precision of the timestamps attached to returned data responses. Valid values: "s" (seconds), "ms" (milliseconds), "ns" (nanoseconds).</td></tr><tr><td><strong>options.format.hexify</strong></td><td>Boolean</td><td>true</td><td>Whether to convert numeric values to hexadecimal. If enabled, all numeric values will be transmitted as hex strings.</td></tr><tr><td><strong>options.format.decimals</strong></td><td>Integer</td><td>true</td><td>Number of decimals to support for numerical types in the data. Numerical values will be rounded to the specified number of decimals. Eg.: "decimals":9</td></tr><tr><td><strong>options.signature</strong></td><td>Object</td><td>false</td><td>Contains information about the signature domain specified by the client. Please check <a href="#id-3.1-eip-712-signatures">EIP-712 Signatures</a>.</td></tr></tbody></table>

**Response Data:**

```json
{
    "data": [
        {
            "values": [
                {
                    "delta": 0.1,
                    "v": -0.1112160081
                },
                {
                    "delta": 0.2,
                    "v": -0.0957562627
                },
                {
                    "delta": 0.25,
                    "v": -0.0823526868
                }
            ],
            "timestamp": 1761807600000
        }
    ]
}
```

**Response Explanation:**

<table><thead><tr><th width="163.3333740234375">Field</th><th width="134">Type</th><th>Description</th></tr></thead><tbody><tr><td><strong>data</strong></td><td>Object</td><td>Contains the implied volatility data and associated metadata.</td></tr><tr><td><strong>data.values</strong></td><td>List</td><td><p>Each object inside the values list has the following </p><p>fields: (delta<strong>,</strong> v)</p></td></tr><tr><td><strong>data.values.delta</strong></td><td>Float</td><td>This represents the delta level of the IV.</td></tr><tr><td><strong>data.values.v</strong></td><td>Float</td><td>This represents the implied volatility value.</td></tr><tr><td><strong>data.timestamp</strong></td><td>Integer</td><td>An integer value representing the timestamp when the data was recorded.</td></tr><tr><td><strong>signature</strong></td><td>Object</td><td>The signature field contains the EIP-712 signature, enabling on-chain validation of data integrity, and serving as a confirmation of authenticity &#x26; data quality as provided by Block Scholes.</td></tr></tbody></table>

***

### 4.7 Implied Volatility by Butterfly Spread

**Description:** Returns butterfly spread values at specific delta levels.

**Endpoint:** `/api/v1/iv/butterfly-spread`\
**Method:** `POST`

**Request Body:**

```json
{
    "exchange": "composite",
    "base_asset": "ETH",
    "model": "SVI",
    "expiry": "2025-10-31T08:00:00Z",
    "start": "LATEST",
    "end": "LATEST",
    "delta": [0.1, 0.2, 0.25],
    "frequency": "1h",
    "options": {
        "format": {
            "timestamp": "ms",
            "hexify": false,
            "decimals": 10
        }
    }
}

```

**Request Explanation:**

<table><thead><tr><th width="225">Field</th><th width="173">Type</th><th width="121.66650390625" data-type="checkbox">Mandatory</th><th>Description</th></tr></thead><tbody><tr><td><strong>exchange</strong></td><td>String</td><td>true</td><td>The name of the exchange (e.g., "composite").</td></tr><tr><td><strong>base_asset</strong></td><td>String</td><td>true</td><td>The currency for which implied volatility is being requested. Please check the table for the <a href="#id-6.-supported-base-assets">Supported base assets.</a></td></tr><tr><td><strong>expiry</strong></td><td>String</td><td>true</td><td>The expiration date (in ISO 8601 format or constant tenor e.g., "7d").</td></tr><tr><td><strong>model</strong></td><td>String</td><td>false</td><td><p>The mathematical model used to fit market quotes and interpolate or extrapolate  values. Allowed values: </p><ul><li>SVI </li><li>Spline</li></ul><p>Default: SVI</p></td></tr><tr><td><strong>start</strong></td><td>String</td><td>false</td><td>Default value is "LATEST" to get the latest values. Also accepts ISO 8601 string.</td></tr><tr><td><strong>end</strong></td><td>String</td><td>false</td><td>Default value is "LATEST" to get the latest values. Also accepts ISO 8601 string.</td></tr><tr><td><strong>delta</strong></td><td>List[float] or "listed"</td><td>true</td><td>A list of delta levels. Valid values include any of <code>[0.45, 0.4, 0.35, 0.3, 0.25, 0.2, 0.15, 0.1, 0.05, 0.04, 0.03, 0.02, 0.01]</code> positive only, or <code>"listed"</code> to include <em><strong>all</strong></em> deltas calculated by default as standard pillars. Eg. "delta":[0.05, 0.45] or "delta": "listed" . Non-listed / non-standard deltas are also supported when requested explicitly:  "<code>delta":[0.43, 0.31]</code>       </td></tr><tr><td><strong>frequency</strong></td><td>String</td><td>false</td><td><p>Defines the time interval between data points in the response. </p><p>Possible values:</p><ul><li>1h - Hourly data</li><li>1m - Minutely data</li></ul><p><strong>Default:</strong> 1h (hourly data)</p></td></tr><tr><td><strong>options</strong></td><td>Object</td><td>true</td><td>Defines custom configuration options for the API response.</td></tr><tr><td><strong>options.format</strong></td><td>Object</td><td>true</td><td>Specifies data formatting preferences for the response.</td></tr><tr><td><strong>options.format.timestamp</strong></td><td>String</td><td>true</td><td>Defines the precision of the timestamps attached to returned data responses. Valid values: "s" (seconds), "ms" (milliseconds), "ns" (nanoseconds).</td></tr><tr><td><strong>options.format.hexify</strong></td><td>Boolean</td><td>true</td><td>Whether to convert numeric values to hexadecimal. If enabled, all numeric values will be transmitted as hex strings.</td></tr><tr><td><strong>options.format.decimals</strong></td><td>Integer</td><td>true</td><td>Number of decimals to support for numerical types in the data. Numerical values will be rounded to the specified number of decimals. Eg.: "decimals":9</td></tr><tr><td><strong>options.signature</strong></td><td>Object</td><td>false</td><td>Contains information about the signature domain specified by the client. Please check <a href="#id-3.1-eip-712-signatures">EIP-712 Signatures</a>.</td></tr></tbody></table>

**Response Data:**

```json
{
    "data": [
        {
            "values": [
                {
                    "delta": 0.1,
                    "v": 0.1055129515
                },
                {
                    "delta": 0.2,
                    "v": 0.0439171329
                },
                {
                    "delta": 0.25,
                    "v": 0.0274426774
                }
            ],
            "timestamp": 1761807600000
        }
    ]
}
```

**Response Explanation:**

<table><thead><tr><th width="172.55560302734375">Field</th><th width="129">Type</th><th>Description</th></tr></thead><tbody><tr><td><strong>data</strong></td><td>Object</td><td>Contains the implied volatility data and associated metadata.</td></tr><tr><td><strong>data.values</strong></td><td>List</td><td><p>Each object inside the values list has the following</p><p> fields: (delta<strong>,</strong> v)</p></td></tr><tr><td><strong>data.values.delta</strong></td><td>Float</td><td>This represents the delta level of the IV.</td></tr><tr><td><strong>data.values.v</strong></td><td>Float</td><td>This represents the implied volatility value.</td></tr><tr><td><strong>data.timestamp</strong></td><td>Integer</td><td>An integer value representing the timestamp when the data was recorded.</td></tr><tr><td><strong>signature</strong></td><td>Object</td><td>The signature field contains the EIP-712 signature, enabling on-chain validation of data integrity, and serving as a confirmation of authenticity &#x26; data quality as provided by Block Scholes.</td></tr></tbody></table>

***

### 4.8 Implied Volatility Index (BSIV)

**Description:** Returns a composite implied volatility index for a given asset and tenor.

**Endpoint:** `/api/v1/iv/index`\
**Method:** `POST`

**Request Body:**

```json
{ 
    "exchange": "composite",
    "base_asset": "BTC",
    "asset_type": "option",
    "expiry": "30d",
    "start": "LATEST",
    "end": "LATEST", 
    "frequency": "1h", 
    "options": { 
        "format": { 
            "timestamp": "ms", 
            "hexify": false, 
            "decimals": 10 
        } 
    } 
} 
```

**Request Explanation:**

<table><thead><tr><th width="243">Field</th><th width="161">Type</th><th width="132" data-type="checkbox">Mandatory</th><th>Description</th></tr></thead><tbody><tr><td><strong>exchange</strong></td><td>String</td><td>true</td><td>The name of the exchange (e.g., "composite").</td></tr><tr><td><strong>base_asset</strong></td><td>String</td><td>true</td><td>The currency for which implied volatility is being requested. Please check the table for the <a href="#id-6.-supported-base-assets">Supported base assets.</a></td></tr><tr><td><strong>expiry</strong></td><td>String</td><td>true</td><td>The expiration in constant tenor (e.g. 7, 14, 30, 90, 180, 365)</td></tr><tr><td><strong>start</strong></td><td>String</td><td>false</td><td>Default value is "LATEST" to get the latest values. Also accepts ISO 8601 string.</td></tr><tr><td><strong>end</strong></td><td>String</td><td>false</td><td>Default value is "LATEST" to get the latest values. Also accepts ISO 8601 string.</td></tr><tr><td><strong>frequency</strong></td><td>String</td><td>false</td><td><p>Defines the time interval between data points in the response. </p><p>Possible values:</p><ul><li>1h - Hourly data</li><li>1m - Minutely data</li></ul><p><strong>Default:</strong> 1h (hourly data)</p></td></tr><tr><td><strong>options</strong></td><td>Object</td><td>true</td><td>Defines custom configuration options for the API response.</td></tr><tr><td><strong>options.format</strong></td><td>Object</td><td>true</td><td>Specifies data formatting preferences for the response.</td></tr><tr><td><strong>options.format.timestamp</strong></td><td>String</td><td>true</td><td>Defines the precision of the timestamps attached to returned data responses. Valid values: "s" (seconds), "ms" (milliseconds), "ns" (nanoseconds).</td></tr><tr><td><strong>options.format.hexify</strong></td><td>Boolean</td><td>true</td><td>Whether to convert numeric values to hexadecimal. If enabled, all numeric values will be transmitted as hex strings.</td></tr><tr><td><strong>options.format.decimals</strong></td><td>Integer</td><td>true</td><td>Number of decimals to support for numerical types in the data. Numerical values will be rounded to the specified number of decimals. Eg.: "decimals":9</td></tr><tr><td><strong>options.signature</strong></td><td>Object</td><td>false</td><td>Contains information about the signature domain specified by the client. Please check <a href="#id-3.1-eip-712-signatures">EIP-712 Signatures</a>.</td></tr></tbody></table>

**Response Data:**

```json
{
    "data": [
        {
            "v": 47.8669535559,
            "timestamp": 1761807600000
        }
    ]
}
```

**Response Explanation:**

<table><thead><tr><th width="159">Field</th><th width="135">Type</th><th>Description</th></tr></thead><tbody><tr><td><strong>data</strong></td><td>Object</td><td>Contains the implied volatility index data and associated metadata.</td></tr><tr><td><strong>data.v</strong></td><td>Float</td><td>This represents the implied volatility index vol value.</td></tr><tr><td><strong>data.timestamp</strong></td><td>Integer</td><td>An integer value representing the timestamp when the data was recorded.</td></tr><tr><td><strong>signature</strong></td><td>Object</td><td>The signature field contains the EIP-712 signature, enabling on-chain validation of data integrity, and serving as a confirmation of authenticity &#x26; data quality as provided by Block Scholes.</td></tr></tbody></table>

***

### 4.9 Model Parameters

**Description:** Provides calibrated model parameters for the given expiry and exchange.

**Endpoint:** `/api/v1/modelparams`\
**Method:** `POST`

**Request Body:**

```json
{
    "exchange": "composite",
    "base_asset": "BTC",
    "model": "SVI",
    "expiry": "2025-12-26T08:00:00Z",
    "start": "LATEST",
    "end": "LATEST",
    "frequency": "1h",
    "options": {
        "format": {
            "timestamp": "ms",
            "hexify": false,
            "decimals": 4
        }
    }
}

```

**Request Explanation:**

<table><thead><tr><th width="238">Field</th><th width="165">Type</th><th width="120.888916015625" data-type="checkbox">Mandatory</th><th>Description</th></tr></thead><tbody><tr><td><strong>exchange</strong></td><td>String</td><td>true</td><td>The name of the exchange i.e "composite".</td></tr><tr><td><strong>base_asset</strong></td><td>String</td><td>true</td><td>The currency for which model params are being requested. Please check the table for the <a href="#id-6.-supported-base-assets">Supported base assets.</a></td></tr><tr><td><strong>model</strong></td><td>String</td><td>false</td><td><p>The mathematical model used to fit market quotes and interpolate or extrapolate values. </p><p>Default value is "SVI".</p></td></tr><tr><td><strong>expiry</strong></td><td>ISO 8601 string</td><td>true</td><td>The expiration date (ISO 8601 format).</td></tr><tr><td><strong>start</strong></td><td>String</td><td>false</td><td>Default value is "LATEST" to get the latest values. Also accepts ISO 8601 string.</td></tr><tr><td><strong>end</strong></td><td>String</td><td>false</td><td>Default value is "LATEST" to get the latest values. Also accepts ISO 8601 string.</td></tr><tr><td><strong>frequency</strong></td><td>String</td><td>false</td><td><p>Defines the time interval between data points in the response. </p><p>Possible values:</p><ul><li>1h - Hourly data</li><li>1m - Minutely data</li></ul><p><strong>Default:</strong> 1h (hourly data)</p></td></tr><tr><td><strong>options</strong></td><td>Object</td><td>true</td><td>Defines custom configuration options for the API response.</td></tr><tr><td><strong>options.format</strong></td><td>Object</td><td>true</td><td>Specifies data formatting preferences for the response.</td></tr><tr><td><strong>options.format.timestamp</strong></td><td>String</td><td>true</td><td>Defines the precision of the timestamps attached to returned data responses. Valid values: "s" (seconds), "ms" (milliseconds), "ns" (nanoseconds). Message timestamps are always integers.</td></tr><tr><td><strong>options.format.hexify</strong></td><td>Boolean</td><td>true</td><td>Whether to convert numeric values to hexadecimal. If enabled, all numeric values will be transmitted as hex strings.</td></tr><tr><td><strong>options.format.decimals</strong></td><td>Integer</td><td>true</td><td>Number of decimals to support for numerical types in the data. When signing is requested, numerical values will be scaled accordingly. When no signing is requested, numerical values will be rounded to the specified number of decimals. Eg.: "decimals":9</td></tr><tr><td><strong>options.signature</strong></td><td>Object</td><td>false</td><td>Contains information about the signature domain specified by the client. Please check <a href="#id-3.1-eip-712-signatures">EIP-712 Signatures</a>.</td></tr></tbody></table>

**Response Data:**

```json
{
    "data": [
        {
            "alpha": 0.0077,
            "beta": 0.1053,
            "rho": -0.0911,
            "m": 0.0563,
            "sigma": 0.1838,
            "jw_atm_total_var": 0.0285,
            "jw_min_imp_var": 0.1727,
            "jw_atm_var": 0.1823,
            "jw_slope_right": 0.5674,
            "jw_slope_left": 0.6812,
            "jw_atm_skew": -0.1199,
            "timestamp": 1761811200000
        }
    ]
}
```

**Response Explanation:**

<table><thead><tr><th width="202.3333740234375">Field</th><th width="104.2222900390625">Type</th><th>Description</th></tr></thead><tbody><tr><td><strong>data</strong></td><td>Object</td><td>Contains the model parameter data and associated metadata.</td></tr><tr><td><strong>data.alpha</strong></td><td>Float</td><td>Controls the overall level of total variance.</td></tr><tr><td><strong>data.beta</strong></td><td>Float</td><td>Controls the skewness of the variance smile.</td></tr><tr><td><strong>data.rho</strong></td><td>Float</td><td>Controls the rotation of the smile.</td></tr><tr><td><strong>data.m</strong></td><td>Float</td><td>Controls the horizontal translation of the smile.</td></tr><tr><td><strong>data.sigma</strong></td><td>Float</td><td>Controls atm curvature of the smile.</td></tr><tr><td><strong>data.jw_atm_total_var</strong></td><td>Float</td><td>The total variance of the at-the-money options.</td></tr><tr><td><strong>data.jw_min_imp_var</strong></td><td>Float</td><td>The minimum implied variance across all strikes.</td></tr><tr><td><strong>data.jw_atm_var</strong></td><td>Float</td><td>The implied variance of the at-the-money options.</td></tr><tr><td><strong>data.jw_slope_right</strong></td><td>Float</td><td>The slope of the volatility skew to the right (out-of-the-money calls).</td></tr><tr><td><strong>data.jw_slope_left</strong></td><td>Float</td><td>The slope of the volatility skew to the left (out-of-the-money puts).</td></tr><tr><td><strong>data.jw_atm_skew</strong></td><td>Float</td><td>The skew of the at-the-money options, indicating the asymmetry of the volatility smile.</td></tr><tr><td><strong>data.timestamp</strong></td><td>Integer</td><td>An integer value representing the timestamp when the data was recorded.</td></tr><tr><td><strong>signature</strong></td><td>Object</td><td>The signature field contains the EIP-712 signature, enabling on-chain validation of data integrity, and serving as a confirmation of authenticity &#x26; data quality as provided by Block Scholes.</td></tr></tbody></table>

***

### 4.10 Index Prices

**Description:** Returns USD-denominated index prices for a given asset type.

**Endpoints:** `/api/v1/price/index` \
**Method:** `POST`

**Request Body:**

```json
{
    "base_asset": "BTC",
    "asset_type": "future",
    "expiry": "2025-10-31T08:00:00Z",
    "start": "LATEST",
    "end": "LATEST",
    "frequency": "1h",
    "options": {
        "format": {
            "timestamp": "ms",
            "hexify": false,
            "decimals": 5
        }
    }
}

```

**Request Explanation:**

<table><thead><tr><th width="227">Field</th><th width="172">Type</th><th width="120.6666259765625" data-type="checkbox">Mandatory</th><th>Description</th></tr></thead><tbody><tr><td><strong>base_asset</strong></td><td>String</td><td>true</td><td>The currency for which the index price is being requested. Please check the table for the <a href="#id-6.-supported-base-assets">Supported base assets.</a></td></tr><tr><td><strong>asset_type</strong></td><td>String</td><td>true</td><td>The type of asset. This can be "spot", "future" or "perpetual".</td></tr><tr><td><strong>expiry*</strong></td><td>ISO 8601 string</td><td>true</td><td>The expiry date and time for the asset in ISO 8601 format. Required if the asset type is "future".</td></tr><tr><td><strong>start</strong></td><td>String</td><td>false</td><td>Default value is "LATEST" to get the latest values. Also accepts ISO 8601 string.</td></tr><tr><td><strong>end</strong></td><td>String</td><td>false</td><td>Default value is "LATEST" to get the latest values. Also accepts ISO 8601 string.</td></tr><tr><td><strong>frequency</strong></td><td>String</td><td>false</td><td><p>Defines the time interval between data points in the response. </p><p>Possible values:</p><ul><li>1h - Hourly data</li><li>1m - Minutely data</li></ul><p><strong>Default:</strong> 1h (hourly data)</p></td></tr><tr><td><strong>options</strong></td><td>Object</td><td>true</td><td>Defines custom configuration options for the API response.</td></tr><tr><td><strong>options.format</strong></td><td>Object</td><td>true</td><td>Specifies data formatting preferences for the response.</td></tr><tr><td><strong>options.format.timestamp</strong></td><td>String</td><td>true</td><td>Defines the precision of the timestamps attached to returned data responses. Valid values: "s" (seconds), "ms" (milliseconds), "ns" (nanoseconds). Message timestamps are always integers.</td></tr><tr><td><strong>options.format.hexify</strong></td><td>Boolean</td><td>true</td><td>Whether to convert numeric values to hexadecimal. If enabled, all numeric values will be transmitted as hex strings.</td></tr><tr><td><strong>options.format.decimals</strong></td><td>Integer</td><td>true</td><td>Number of decimals to support for numerical types in the data. When signing is requested, numerical values will be scaled accordingly. When no signing is requested, numerical values will be rounded to the specified number of decimals. Eg.: "decimals":9</td></tr><tr><td><strong>options.signature</strong></td><td>Object</td><td>false</td><td>Contains information about the signature domain specified by the client. Please check <a href="#id-3.1-eip-712-signatures">EIP-712 Signatures</a>.</td></tr></tbody></table>

**Note:** Fields marked \* are conditionally required (see field descriptions).

**Response Data:**

```json
{
    "data": [
        {
            "v": 111370.49951,
            "timestamp": 1761811200000
        }
    ]
}
```

**Response Explanation:**

<table><thead><tr><th width="170">Field</th><th width="140">Type</th><th>Description</th></tr></thead><tbody><tr><td><strong>data</strong></td><td>Object</td><td>Contains the index price data and associated metadata.</td></tr><tr><td><strong>data.v</strong></td><td>Float</td><td>The index price value of the asset at the given timestamp.</td></tr><tr><td><strong>data.timestamp</strong></td><td>Integer</td><td>An integer value representing the timestamp when the data was recorded.</td></tr><tr><td><strong>signature</strong></td><td>Object</td><td>The signature field contains the EIP-712 signature, enabling on-chain validation of data integrity, and serving as a confirmation of authenticity &#x26; data quality as provided by Block Scholes.</td></tr></tbody></table>

***

### 4.11 Mark Price

**Description:** Returns USD-denominated mark prices for a given asset type.

**Endpoints:** `/api/v1/price/mark`\
**Method:** `POST`

**Request Body:**

```json
{
    "base_asset": "BTC",
    "asset_type": "option",
    "expiry": "2025-10-31T08:00:00Z",
    "start": "LATEST",
    "end": "LATEST",
    "frequency": "1h",
    "strike": [40000, 80000],
    "type": ["C", "P"],
    "options": {
        "format": {
            "timestamp": "ms",
            "hexify": false,
            "decimals": 4
        }
    }
}

```

**Request Explanation:**

<table><thead><tr><th width="227">Field</th><th width="172">Type</th><th width="127.3333740234375" data-type="checkbox">Mandatory</th><th>Description</th></tr></thead><tbody><tr><td><strong>base_asset</strong></td><td>String</td><td>true</td><td>The currency for which the mark price is being requested. Please check the table for the <a href="#id-6.-supported-base-assets">Supported base assets.</a></td></tr><tr><td><strong>asset_type</strong></td><td>String</td><td>true</td><td><p>The type of asset. </p><p>This can be "spot", "future", "option" or "perpetual".</p></td></tr><tr><td><strong>expiry*</strong></td><td>ISO 8601 string or String</td><td>true</td><td>The expiry date and time for the asset in ISO 8601 format. Required if the asset type is "future" or "option". For option, the field can also accept constant tenors (Eg. "7d").</td></tr><tr><td><strong>start</strong></td><td>String</td><td>false</td><td>Default value is "LATEST" to get the latest values. Also accepts ISO 8601 string.</td></tr><tr><td><strong>end</strong></td><td>String</td><td>false</td><td>Default value is "LATEST" to get the latest values. Also accepts ISO 8601 string.</td></tr><tr><td><strong>strike*</strong></td><td>List[Float] or String</td><td>false</td><td><p>A list of strikes found on the given exchange (please refer to our catalog endpoint to obtain an exchange's strikes), or "listed" to include all strikes currently listed on the exchange for the given expiry. Note: In the case of strike endpoint "listed" should not be used when querying for arbitrary (non-listed) expiries, it is only valid for expiries that exist in the catalog. Eg. <code>"strike":[3000, 3200]</code> or <code>"strike": "listed"</code> . Non-listed / non-standard strikes are also supported when provided explicitly:  <code>"strike":[3280, 4255]</code>. </p><p>Mandatory only when asset_type="option"</p></td></tr><tr><td><strong>type*</strong></td><td>List[str]</td><td>false</td><td><p>List of option types to query.<br>Allowed values: "C" (Call), "P" (Put). </p><p>Mandatory only when asset_type="option"</p></td></tr><tr><td><strong>frequency</strong></td><td>String</td><td>false</td><td><p>Defines the time interval between data points in the response. </p><p>Possible values:</p><ul><li>1h - Hourly data</li><li>1m - Minutely data</li></ul><p><strong>Default:</strong> 1h (hourly data)</p></td></tr><tr><td><strong>options</strong></td><td>Object</td><td>true</td><td>Defines custom configuration options for the API response.</td></tr><tr><td><strong>options.format</strong></td><td>Object</td><td>true</td><td>Specifies data formatting preferences for the response.</td></tr><tr><td><strong>options.format.timestamp</strong></td><td>String</td><td>true</td><td>Defines the precision of the timestamps attached to returned data responses. Valid values: "s" (seconds), "ms" (milliseconds), "ns" (nanoseconds). Message timestamps are always integers.</td></tr><tr><td><strong>options.format.hexify</strong></td><td>Boolean</td><td>true</td><td>Whether to convert numeric values to hexadecimal. If enabled, all numeric values will be transmitted as hex strings.</td></tr><tr><td><strong>options.format.decimals</strong></td><td>Integer</td><td>true</td><td>Number of decimals to support for numerical types in the data. When signing is requested, numerical values will be scaled accordingly. When no signing is requested, numerical values will be rounded to the specified number of decimals. Eg.: "decimals":9</td></tr><tr><td><strong>options.signature</strong></td><td>Object</td><td>false</td><td>Contains information about the signature domain specified by the client. Please check <a href="#id-3.1-eip-712-signatures">EIP-712 Signatures</a>.</td></tr></tbody></table>

**Response Data:**

```json
{
    "data": [
        {
            "values": [
                {
                    "strike": 80000.0,
                    "v": 30.9759,
                    "type": "P"
                },
                {
                    "strike": 40000.0,
                    "v": 0.046,
                    "type": "P"
                },
                {
                    "strike": 40000.0,
                    "v": 81498.1274,
                    "type": "C"
                },
                {
                    "strike": 80000.0,
                    "v": 41630.5538,
                    "type": "C"
                }
            ],
            "timestamp": 1760025600000
        }
    ]
}
```

**Note:** Fields marked \* are conditionally required (see field descriptions).

**Response Explanation:**

<table><thead><tr><th width="170">Field</th><th width="140">Type</th><th>Description</th></tr></thead><tbody><tr><td><strong>data</strong></td><td>Object</td><td>Contains the mark price data and associated metadata.</td></tr><tr><td><strong>data.v</strong></td><td>Float</td><td>The mark price value of the asset at the given timestamp.</td></tr><tr><td><strong>data.timestamp</strong></td><td>Integer</td><td>An integer value representing the timestamp when the data was recorded.</td></tr><tr><td><strong>signature</strong></td><td>Object</td><td>The signature field contains the EIP-712 signature, enabling on-chain validation of data integrity, and serving as a confirmation of authenticity &#x26; data quality as provided by Block Scholes.</td></tr></tbody></table>

***

### 4.12 Mid Prices

**Description:** Returns mid prices for a given asset type.

**Endpoints:** `/api/v1/price/mid` \
**Method:** `POST`

**Request Body:**

```json
{
    "base_asset": "BTC",
    "asset_type": "option",
    "expiry": "2025-10-31T08:00:00:000Z",
    "start": "LATEST",
    "end": "LATEST",
    "frequency": "1h",
    "options": {
        "format": {
            "timestamp": "ms",
            "hexify": false,
            "decimals": 4
        }
    }
}

```

**Request Explanation:**

<table><thead><tr><th width="227">Field</th><th width="141.99993896484375">Type</th><th width="120.6666259765625" data-type="checkbox">Mandatory</th><th>Description</th></tr></thead><tbody><tr><td><strong>base_asset</strong></td><td>String</td><td>true</td><td>The currency for which the mid price is being requested. Please check the table for the <a href="#id-6.-supported-base-assets">Supported base assets.</a></td></tr><tr><td><strong>asset_type</strong></td><td>String</td><td>true</td><td>The type of asset. This can be "spot", "future", "option" or "perpetual".</td></tr><tr><td><strong>expiry*</strong></td><td>ISO 8601 string</td><td>true</td><td>The expiry date and time for the asset in ISO 8601 format. Required if the asset type is "future" or "option". </td></tr><tr><td><strong>strike*</strong></td><td>List[Float] or String</td><td>false</td><td><p>A list of strikes found on the given exchange (please refer to our catalog endpoint to obtain an exchange's strikes), or "listed" to include all strikes currently listed on the exchange for the given expiry. Note: In the case of strike endpoint "listed" should not be used when querying for arbitrary (non-listed) expiries, it is only valid for expiries that exist in the catalog. Eg. <code>"strike":[3000, 3200]</code> or <code>"strike": "listed"</code> . Non-listed / non-standard strikes are also supported when provided explicitly:  <code>"strike":[3280, 4255]</code>. </p><p>Mandatory only when asset_type="option"</p></td></tr><tr><td><strong>type*</strong></td><td>List[str]</td><td>false</td><td><p>List of option types to query.<br>Allowed values: "C" (Call), "P" (Put). </p><p>Mandatory only when asset_type="option"</p></td></tr><tr><td><strong>start</strong></td><td>String</td><td>false</td><td>Default value is "LATEST" to get the latest values. Also accepts ISO 8601 string.</td></tr><tr><td><strong>end</strong></td><td>String</td><td>false</td><td>Default value is "LATEST" to get the latest values. Also accepts ISO 8601 string.</td></tr><tr><td><strong>frequency</strong></td><td>String</td><td>false</td><td><p>Defines the time interval between data points in the response. </p><p>Possible values:</p><ul><li>1h - Hourly data</li><li>1m - Minutely data</li></ul><p><strong>Default:</strong> 1h (hourly data)</p></td></tr><tr><td><strong>options</strong></td><td>Object</td><td>true</td><td>Defines custom configuration options for the API response.</td></tr><tr><td><strong>options.format</strong></td><td>Object</td><td>true</td><td>Specifies data formatting preferences for the response.</td></tr><tr><td><strong>options.format.timestamp</strong></td><td>String</td><td>true</td><td>Defines the precision of the timestamps attached to returned data responses. Valid values: "s" (seconds), "ms" (milliseconds), "ns" (nanoseconds). Message timestamps are always integers.</td></tr><tr><td><strong>options.format.hexify</strong></td><td>Boolean</td><td>true</td><td>Whether to convert numeric values to hexadecimal. If enabled, all numeric values will be transmitted as hex strings.</td></tr><tr><td><strong>options.format.decimals</strong></td><td>Integer</td><td>true</td><td>Number of decimals to support for numerical types in the data. When signing is requested, numerical values will be scaled accordingly. When no signing is requested, numerical values will be rounded to the specified number of decimals. Eg.: "decimals":9</td></tr><tr><td><strong>options.signature</strong></td><td>Object</td><td>false</td><td>Contains information about the signature domain specified by the client. Please check <a href="#id-3.1-eip-712-signatures">EIP-712 Signatures</a>.</td></tr></tbody></table>

**Note:** Fields marked \* are conditionally required (see field descriptions).

**Response Data:**

```json
{
    "data": [{
            "v": 68234,
            "timestamp": 1717228800000
        }, {
            "v": 68315,
            "timestamp": 1717232400000
        }
    ]
}

```

**Response Explanation:**

<table><thead><tr><th width="170">Field</th><th width="140">Type</th><th>Description</th></tr></thead><tbody><tr><td><strong>data</strong></td><td>Object</td><td>Contains the mid price data and associated metadata.</td></tr><tr><td><strong>data.v</strong></td><td>Float</td><td>The mid price value of the asset at the given timestamp.</td></tr><tr><td><strong>data.timestamp</strong></td><td>Integer</td><td>An integer value representing the timestamp when the data was recorded.</td></tr><tr><td><strong>signature</strong></td><td>Object</td><td>The signature field contains the EIP-712 signature, enabling on-chain validation of data integrity, and serving as a confirmation of authenticity &#x26; data quality as provided by Block Scholes.</td></tr></tbody></table>

***

### 4.13 Settlement Prices (TWAP)

**Description:** Returns the time weighted average spot index price as of the date of choice, or current\
time, whichever is sooner. The request can be made starting with 30m leading up to the\
specified expiry, denoting settlement datetime. The time weighting of the price is\
performed on the 31m worth of data leading up to settlement.

**Endpoint:** `/api/v1/price/settlement`\
**Method:** `POST`

**Request Body:**

```json
{
    "currency": "BTC",
    "expiry": "2023-10-27T00:00:00.000Z",
    "options": {
        "format": {
            "timestamp": "ms",
            "hexify": false,
            "decimals": 9
        }
    }
}

```

**Request Explanation:**

<table><thead><tr><th width="223.1112060546875">Field</th><th width="169">Type</th><th width="125.888916015625" data-type="checkbox">Mandatory</th><th>Description</th></tr></thead><tbody><tr><td><strong>currency</strong></td><td>String</td><td>true</td><td>The currency for which settlement price is being requested.</td></tr><tr><td><strong>expiry</strong></td><td>ISO 8601 string</td><td>true</td><td>The ISO datetime of settlement.</td></tr><tr><td><strong>options</strong></td><td>Object</td><td>true</td><td>Defines custom configuration options for the API response.</td></tr><tr><td><strong>options.format</strong></td><td>Object</td><td>true</td><td>Specifies data formatting preferences for the response.</td></tr><tr><td><strong>options.format.timestamp</strong></td><td>String</td><td>true</td><td>Defines the precision of the timestamps attached to returned data responses. Valid values: "s" (seconds), "ms" (milliseconds), "ns" (nanoseconds). Message timestamps are always integers.</td></tr><tr><td><strong>options.format.hexify</strong></td><td>Boolean</td><td>true</td><td>Whether to convert numeric values to hexadecimal. If enabled, all numeric values will be transmitted as hex strings.</td></tr><tr><td><strong>options.format.decimals</strong></td><td>Integer</td><td>true</td><td>Number of decimals to support for numerical types in the data. Eg.: "decimals":9</td></tr><tr><td><strong>options.signature</strong></td><td>Object</td><td>false</td><td>Contains information about the signature domain specified by the client. Please check <a href="#id-3.1-eip-712-signatures">EIP-712 Signatures</a>.</td></tr></tbody></table>

**Response Data:**

```json
{
    "data": {
        "v": 115537.321747493,
        "timestamp": 1761545520000,
        "expiry": 1761545520000,
        "currency": "BTC",
        "is_final": true
    }
}
```

**Response Explanation:**

<table><thead><tr><th width="155">Field</th><th width="140">Type</th><th>Description</th></tr></thead><tbody><tr><td><strong>data</strong></td><td>Object</td><td>Contains the settlement price data and associated metadata.</td></tr><tr><td><strong>data.v</strong></td><td>Float</td><td>Represents the time weighted average price at expiry or the current time, whichever is less.</td></tr><tr><td><strong>data.timestamp</strong></td><td>Integer</td><td>An integer value representing the timestamp when the data was recorded or the expiry time, whichever is less.</td></tr><tr><td><strong>data.is_final</strong></td><td>Boolean</td><td>A boolean value indicating whether the settlement price data is considered final or not. This would be false if the request is made before or in the seconds immediately after the settlement datetime (expiry).</td></tr><tr><td><strong>signature</strong></td><td>Object</td><td>The signature field contains the EIP-712 signature, enabling on-chain validation of data integrity, and serving as a confirmation of authenticity &#x26; data quality as provided by Block Scholes.</td></tr></tbody></table>

***

### 4.14 Forward Implied Rates

**Description:** Returns forward-implied rates for supported assets.

**Endpoint:** `/api/v1/rate/forward`\
**Method:** `POST`

**Request Body:**

```json
{
    "base_asset": "BTC",
    "exchange": "deribit",
    "expiry": "2025-10-31T08:00:00Z",
    "start": "LATEST",
    "end": "LATEST",
    "frequency": "1h",
    "options": {
        "format": {
            "timestamp": "ms",
            "hexify": false,
            "decimals": 7
        }
    }
}

```

**Request Explanation:**

<table><thead><tr><th width="227">Field</th><th width="172">Type</th><th width="120.6666259765625" data-type="checkbox">Mandatory</th><th>Description</th></tr></thead><tbody><tr><td><strong>base_asset</strong></td><td>String</td><td>true</td><td>The currency for which the interest rate is being requested.</td></tr><tr><td><strong>exchange</strong></td><td>String</td><td>true</td><td><p>The name of the exchange from which to source market data.</p><p>Eg: "deribit", "blockscholes" etc.</p><p><strong>"blockscholes":</strong> For data aggregated by BlockScholes, based on the futures index, which combines prices from multiple exchanges to produce a unified market feed.</p></td></tr><tr><td><strong>expiry</strong></td><td>ISO 8601 string</td><td>true</td><td>The expiry date and time for the asset in ISO 8601 format.</td></tr><tr><td><strong>start</strong></td><td>String</td><td>false</td><td>Default value is "LATEST" to get the latest values. Also accepts ISO 8601 string.</td></tr><tr><td><strong>end</strong></td><td>String</td><td>false</td><td>Default value is "LATEST" to get the latest values. Also accepts ISO 8601 string.</td></tr><tr><td><strong>frequency</strong></td><td>String</td><td>false</td><td><p>Defines the time interval between data points in the response. </p><p>Possible values:</p><ul><li>1h - Hourly data</li><li>1m - Minutely data</li></ul><p><strong>Default:</strong> 1h (hourly data)</p></td></tr><tr><td><strong>options</strong></td><td>Object</td><td>true</td><td>Defines custom configuration options for the API response.</td></tr><tr><td><strong>options.format</strong></td><td>Object</td><td>true</td><td>Specifies data formatting preferences for the response.</td></tr><tr><td><strong>options.format.timestamp</strong></td><td>String</td><td>true</td><td>Defines the precision of the timestamps attached to returned data responses. Valid values: "s" (seconds), "ms" (milliseconds), "ns" (nanoseconds). Message timestamps are always integers.</td></tr><tr><td><strong>options.format.hexify</strong></td><td>Boolean</td><td>true</td><td>Whether to convert numeric values to hexadecimal. If enabled, all numeric values will be transmitted as hex strings.</td></tr><tr><td><strong>options.format.decimals</strong></td><td>Integer</td><td>true</td><td>Number of decimals to support for numerical types in the data. When signing is requested, numerical values will be scaled accordingly. When no signing is requested, numerical values will be rounded to the specified number of decimals. Eg.: "decimals":9</td></tr><tr><td><strong>options.signature</strong></td><td>Object</td><td>false</td><td>Contains information about the signature domain specified by the client. Please check <a href="#id-3.1-eip-712-signatures">EIP-712 Signatures</a>.</td></tr></tbody></table>

**Response Data:**

```json
{
    "data": [
        {
            "v": 1888,
            "timestamp": 1761555600000
        },
        {
            "v": 1625,
            "timestamp": 1761555600000
        }
    ]
}

```

**Response Explanation:**

<table><thead><tr><th width="155">Field</th><th width="140">Type</th><th>Description</th></tr></thead><tbody><tr><td><strong>data</strong></td><td>Object</td><td>Contains the forward implied data and associated metadata.</td></tr><tr><td><strong>data.v</strong></td><td>Float</td><td>Represents the value of the asset at the given timestamp..</td></tr><tr><td><strong>data.timestamp</strong></td><td>Integer</td><td>An integer value representing the timestamp when the data was recorded.</td></tr><tr><td><strong>signature</strong></td><td>Object</td><td>The signature field contains the EIP-712 signature, enabling on-chain validation of data integrity, and serving as a confirmation of authenticity &#x26; data quality as provided by Block Scholes.</td></tr></tbody></table>

***

### 4.15 Funding Rates

**Description:** Returns forward-implied rates for supported assets.

**Endpoint:** `/api/v1/rate/funding`\
**Method:** `POST`

**Request Body:**

```json
{
    "base_asset": "BTC",
    "exchange": "deribit",
    "expiry": "2025-10-31T08:00:00Z",
    "start": "LATEST",
    "end": "LATEST",
    "frequency": "1h",
    "options": {
        "format": {
            "timestamp": "ms",
            "hexify": false,
            "decimals": 7
        }
    }
}

```

**Request Explanation:**

<table><thead><tr><th width="227">Field</th><th width="172">Type</th><th width="117.3333740234375" data-type="checkbox">Mandatory</th><th>Description</th></tr></thead><tbody><tr><td><strong>base_asset</strong></td><td>String</td><td>true</td><td>The currency for which the interest rate is being requested.</td></tr><tr><td><strong>exchange</strong></td><td>String</td><td>true</td><td><p>The name of the exchange from which to source market data.</p><p>Eg: "deribit", "blockscholes" etc.</p><p><strong>"blockscholes":</strong> For data aggregated by BlockScholes, based on the futures index, which combines prices from multiple exchanges to produce a unified market feed.</p></td></tr><tr><td><strong>start</strong></td><td>String</td><td>false</td><td>Default value is "LATEST" to get the latest values. Also accepts ISO 8601 string.</td></tr><tr><td><strong>end</strong></td><td>String</td><td>false</td><td>Default value is "LATEST" to get the latest values. Also accepts ISO 8601 string.</td></tr><tr><td><strong>frequency</strong></td><td>String</td><td>false</td><td><p>Defines the time interval between data points in the response. </p><p>Possible values:</p><ul><li>1h - Hourly data</li><li>1m - Minutely data</li></ul><p><strong>Default:</strong> 1h (hourly data)</p></td></tr><tr><td><strong>options</strong></td><td>Object</td><td>true</td><td>Defines custom configuration options for the API response.</td></tr><tr><td><strong>options.format</strong></td><td>Object</td><td>true</td><td>Specifies data formatting preferences for the response.</td></tr><tr><td><strong>options.format.timestamp</strong></td><td>String</td><td>true</td><td>Defines the precision of the timestamps attached to returned data responses. Valid values: "s" (seconds), "ms" (milliseconds), "ns" (nanoseconds). Message timestamps are always integers.</td></tr><tr><td><strong>options.format.hexify</strong></td><td>Boolean</td><td>true</td><td>Whether to convert numeric values to hexadecimal. If enabled, all numeric values will be transmitted as hex strings.</td></tr><tr><td><strong>options.format.decimals</strong></td><td>Integer</td><td>true</td><td>Number of decimals to support for numerical types in the data. When signing is requested, numerical values will be scaled accordingly. When no signing is requested, numerical values will be rounded to the specified number of decimals. Eg.: "decimals":9</td></tr><tr><td><strong>options.signature</strong></td><td>Object</td><td>false</td><td>Contains information about the signature domain specified by the client. Please check <a href="#id-3.1-eip-712-signatures">EIP-712 Signatures</a>.</td></tr></tbody></table>

**Response Data:**

```json
{
    "data": [
        {
            "v": 1888,
            "timestamp": 1761555600000
        },
        {
            "v": 1625,
            "timestamp": 1761555600000
        }
    ]
}

```

**Response Explanation:**

<table><thead><tr><th width="155">Field</th><th width="140">Type</th><th>Description</th></tr></thead><tbody><tr><td><strong>data</strong></td><td>Object</td><td>Contains the funding rates data and associated metadata.</td></tr><tr><td><strong>data.v</strong></td><td>Float</td><td>Represents the value of the asset at the given timestamp.</td></tr><tr><td><strong>data.timestamp</strong></td><td>Integer</td><td>An integer value representing the timestamp when the data was recorded.</td></tr><tr><td><strong>signature</strong></td><td>Object</td><td>The signature field contains the EIP-712 signature, enabling on-chain validation of data integrity, and serving as a confirmation of authenticity &#x26; data quality as provided by Block Scholes.</td></tr></tbody></table>

***

### 4.16 Volume

**Description:** Returns trading volume data for a given asset type across different exchanges.

**Endpoint:** `/api/v1/analytic/volume`\
**Method:** `POST`

**Request Body (Spot):**

```json
{
    "exchange": "binance",
    "base_asset": "BTC",
    "asset_type": "spot",
    "start": "LATEST",
    "end": "LATEST",
    "quote_asset": "USD",
    "frequency": "1h",
    "options": {
        "format": {
            "timestamp": "ms",
            "hexify": false,
            "decimals": 10
        }
    }
}
```

**Request Body (Perpetual):**

```json
{
    "exchange": "binance",
    "base_asset": "BTC",
    "asset_type": "perpetual",
    "start": "LATEST",
    "end": "LATEST",
    "quote_asset": "USD",
    "frequency": "1h",
    "options": {
        "format": {
            "timestamp": "ms",
            "hexify": false,
            "decimals": 10
        }
    }
}
```

**Request Body (Future):**

```json
{
    "exchange": "binance",
    "base_asset": "BTC",
    "asset_type": "future",
    "expiry": "2025-12-26T08:00:00Z",
    "start": "LATEST",
    "end": "LATEST",
    "quote_asset": "USD",
    "frequency": "1h",
    "options": {
        "format": {
            "timestamp": "ms",
            "hexify": false,
            "decimals": 10
        }
    }
}
```

**Request Body (Option):**

```json
{
    "exchange": "deribit",
    "base_asset": "BTC",
    "asset_type": "option",
    "expiry": "2025-12-26T08:00:00Z",
    "start": "LATEST",
    "end": "LATEST",
    "quote_asset": "USD",
    "strike": "listed",
    "frequency": "1h",
    "type": ["C"],
    "options": {
        "format": {
            "timestamp": "ms",
            "hexify": false,
            "decimals": 10
        }
    }
}
```

**Request Explanation:**

<table><thead><tr><th width="227">Field</th><th width="172">Type</th><th width="127.3333740234375" data-type="checkbox">Mandatory</th><th>Description</th></tr></thead><tbody><tr><td><strong>exchange</strong></td><td>String</td><td>true</td><td>The name of the exchange from which to source trading volume data (e.g., "binance").</td></tr><tr><td><strong>base_asset</strong></td><td>String</td><td>true</td><td>The currency for which the trading volume is being requested. Please check the table for the <a href="#id-6.-supported-base-assets">Supported base assets</a>.</td></tr><tr><td><strong>asset_type</strong></td><td>String</td><td>true</td><td><p>The type of asset.</p><p>This can be "spot", "future", "option" or "perpetual".</p></td></tr><tr><td><strong>expiry*</strong></td><td>ISO 8601 string</td><td>false</td><td>The expiry date and time for the asset in ISO 8601 format. Required if the asset type is "future" or "option".</td></tr><tr><td><strong>start</strong></td><td>String</td><td>false</td><td>Default value is "LATEST" to get the latest values. Also accepts ISO 8601 string for historical data queries.</td></tr><tr><td><strong>end</strong></td><td>String</td><td>false</td><td>Default value is "LATEST" to get the latest values. Also accepts ISO 8601 string for historical data queries.</td></tr><tr><td><strong>quote_asset</strong></td><td>String</td><td>true</td><td>The asset used as the pricing currency in a pair/market (e.g., USD in BTC/USD).</td></tr><tr><td><strong>frequency</strong></td><td>String</td><td>false</td><td><p>Defines the time interval between data points in the response.</p><p>Possible values:</p><ul><li>1h - Hourly data</li><li>1m - Minutely data</li></ul><p><strong>Default:</strong> 1h (hourly data)</p></td></tr><tr><td><strong>strike*</strong></td><td>List[Float] or String</td><td>false</td><td><p>A list of strikes found on the given exchange (please refer to our catalog endpoint to obtain an exchange's strikes), or "listed" to include all strikes currently listed on the exchange for the given expiry. Eg. <code>"strike":[3000, 3200]</code> or <code>"strike": "listed"</code> . </p><p>Mandatory only when asset_type="option"</p></td></tr><tr><td><strong>type*</strong></td><td>List[str]</td><td>false</td><td><p>List of option types to query.<br>Allowed values: "C" (Call), "P" (Put).</p><p>Mandatory only when asset_type="option"</p></td></tr><tr><td><strong>options</strong></td><td>Object</td><td>true</td><td>Defines custom configuration options for the API response.</td></tr><tr><td><strong>options.format</strong></td><td>Object</td><td>true</td><td>Specifies data formatting preferences for the response.</td></tr><tr><td><strong>options.format.timestamp</strong></td><td>String</td><td>true</td><td>Defines the precision of the timestamps attached to returned data responses. Valid values: "s" (seconds), "ms" (milliseconds), "ns" (nanoseconds). Message timestamps are always integers.</td></tr><tr><td><strong>options.format.hexify</strong></td><td>Boolean</td><td>true</td><td>Whether to convert numeric values to hexadecimal. If enabled, all numeric values will be transmitted as hex strings.</td></tr><tr><td><strong>options.format.decimals</strong></td><td>Integer</td><td>true</td><td>Number of decimals to support for numerical types in the data. When signing is requested, numerical values will be scaled accordingly. When no signing is requested, numerical values will be rounded to the specified number of decimals. Eg.: "decimals":10</td></tr><tr><td><strong>options.signature</strong></td><td>Object</td><td>false</td><td>Contains information about the signature domain specified by the client. Please check <a href="#id-3.1-eip-712-signatures">EIP-712 Signatures</a>.</td></tr></tbody></table>

**Note:** Fields marked \* are conditionally required (see field descriptions).

**Response Data (Spot):**

```json
{
    "data": [
        {
            "v": 0.00088,
            "timestamp": 1766235600000
        }
    ]
}
```

**Response Data (Perpetual):**

```json
{
    "data": [
        {
            "v": 5.0,
            "timestamp": 1766235600000
        }
    ]
}
```

**Response Data (Future):**

```json
{
    "data": [
        {
            "v": 1333.0,
            "timestamp": 1766235600000
        }
    ]
}
```

**Response Data (Option):**

```json
{
    "data": [
        {
            "values": [
                {
                    "strike": 92000.0,
                    "v": 6.0,
                    "type": "C"
                },
                {
                    "strike": 108000.0,
                    "v": 2.0,
                    "type": "C"
                }
            ],
            "timestamp": 1766232000000
        },
        {
            "values": [
                {
                    "strike": 160000.0,
                    "v": 3.4,
                    "type": "C"
                },
                {
                    "strike": 145000.0,
                    "v": 1.5,
                    "type": "C"
                }
            ],
            "timestamp": 1765857600000
        }
    ]
}
```

**Response Explanation:**

<table><thead><tr><th width="170">Field</th><th width="140">Type</th><th>Description</th></tr></thead><tbody><tr><td><strong>data</strong></td><td>Object</td><td>Contains the trading volume data and associated metadata.</td></tr><tr><td><strong>data.v</strong></td><td>Float</td><td>The trading volume value at the given timestamp. For spot, perpetuals, and futures, this represents the total volume traded. For options, it represents the number of contracts traded.</td></tr><tr><td><strong>data.values</strong></td><td>List</td><td>For options only: contains strike-specific trading volume data when multiple strikes are requested or when using "listed" strikes.</td></tr><tr><td><strong>data.values.strike</strong></td><td>Float</td><td>This represents the strike price.</td></tr><tr><td><strong>data.values.v</strong></td><td>Float</td><td>The trading volume for the specific instrument.</td></tr><tr><td><strong>data.values.type</strong></td><td>String</td><td>The option type: "C" (Call) or "P" (Put).</td></tr><tr><td><strong>data.timestamp</strong></td><td>Integer</td><td>An integer value representing the timestamp when the data was recorded.</td></tr><tr><td><strong>signature</strong></td><td>Object</td><td>The signature field contains the EIP-712 signature, enabling on-chain validation of data integrity, and serving as a confirmation of authenticity &#x26; data quality as provided by Block Scholes.</td></tr></tbody></table>

***

### 4.17 Trade Price

**Description:** Returns the last traded price for a given asset type across different exchanges.

**Endpoint:** `/api/v1/price/trade`\
**Method:** `POST`

**Request Body (Spot):**

```json
{
    "exchange": "binance",
    "base_asset": "BTC",
    "asset_type": "spot",
    "start": "LATEST",
    "end": "LATEST",
    "quote_asset": "USD",
    "frequency": "1h",
    "options": {
        "format": {
            "timestamp": "ms",
            "hexify": false,
            "decimals": 10
        }
    }
}
```

**Request Body (Perpetual):**

```json
{
    "exchange": "binance",
    "base_asset": "BTC",
    "asset_type": "perpetual",
    "start": "LATEST",
    "end": "LATEST",
    "quote_asset": "USD",
    "options": {
        "format": {
            "timestamp": "ms",
            "hexify": false,
            "decimals": 10
        }
    }
}
```

**Request Body (Future):**

```json
{
    "exchange": "binance",
    "base_asset": "BTC",
    "asset_type": "future",
    "expiry": "2025-12-26T08:00:00Z",
    "start": "LATEST",
    "end": "LATEST",
    "quote_asset": "USD",
    "options": {
        "format": {
            "timestamp": "ms",
            "hexify": false,
            "decimals": 10
        }
    }
}
```

**Request Body (Option):**

```json
{
    "exchange": "binance",
    "base_asset": "BTC",
    "asset_type": "option",
    "expiry": "2025-12-26T08:00:00Z",
    "start": "LATEST",
    "end": "LATEST",
    "quote_asset": "USD",
    "strike": "listed",
    "type": ["C"],
    "options": {
        "format": {
            "timestamp": "ms",
            "hexify": false,
            "decimals": 0
        }
    }
}
```

**Request Explanation:**

<table><thead><tr><th width="150.3333740234375">Field</th><th width="124.22216796875">Type</th><th width="127.3333740234375" data-type="checkbox">Mandatory</th><th>Description</th></tr></thead><tbody><tr><td><strong>exchange</strong></td><td>String</td><td>true</td><td>The name of the exchange from which to source trade price data (e.g., "binance").</td></tr><tr><td><strong>base_asset</strong></td><td>String</td><td>true</td><td>The currency for which the trade price is being requested. Please check the table for the <a href="#id-6.-supported-base-assets">Supported base assets.</a></td></tr><tr><td><strong>asset_type</strong></td><td>String</td><td>true</td><td><p>The type of asset.</p><p>This can be "spot", "future", "option" or "perpetual".</p></td></tr><tr><td><strong>expiry*</strong></td><td>ISO 8601 string</td><td>false</td><td>The expiry date and time for the asset in ISO 8601 format. Required if the asset type is "future" or "option".</td></tr><tr><td><strong>start</strong></td><td>String</td><td>false</td><td>Default value is "LATEST" to get the latest values. Also accepts ISO 8601 string for historical data queries.</td></tr><tr><td><strong>end</strong></td><td>String</td><td>false</td><td>Default value is "LATEST" to get the latest values. Also accepts ISO 8601 string for historical data queries.</td></tr><tr><td><strong>quote_asset</strong></td><td>String</td><td>true</td><td>The asset used as the pricing currency in a pair/market (e.g., USD in BTC/USD).</td></tr><tr><td><strong>frequency</strong></td><td>String</td><td>false</td><td><p>Defines the time interval between data points in the response.</p><p>Possible values:</p><ul><li>1h - Hourly data</li><li>1m - Minutely data</li></ul><p><strong>Default:</strong> 1h (hourly data)</p></td></tr><tr><td><strong>strike*</strong></td><td>List[Float] or String</td><td>false</td><td><p>A list of strikes found on the given exchange (please refer to our catalog endpoint to obtain an exchange's strikes), or "listed" to include all strikes currently listed on the exchange for the given expiry. Eg. <code>"strike":[3000, 3200]</code> or <code>"strike": "listed"</code> . </p><p>Mandatory only when asset_type="option"</p></td></tr><tr><td><strong>type*</strong></td><td>List[str]</td><td>false</td><td><p>List of option types to query.<br>Allowed values: "C" (Call), "P" (Put).</p><p>Mandatory only when asset_type="option"</p></td></tr><tr><td><strong>options</strong></td><td>Object</td><td>true</td><td>Defines custom configuration options for the API response.</td></tr><tr><td><strong>options.format</strong></td><td>Object</td><td>true</td><td>Specifies data formatting preferences for the response.</td></tr><tr><td><strong>options.format.timestamp</strong></td><td>String</td><td>true</td><td>Defines the precision of the timestamps attached to returned data responses. Valid values: "s" (seconds), "ms" (milliseconds), "ns" (nanoseconds). Message timestamps are always integers.</td></tr><tr><td><strong>options.format.hexify</strong></td><td>Boolean</td><td>true</td><td>Whether to convert numeric values to hexadecimal. If enabled, all numeric values will be transmitted as hex strings.</td></tr><tr><td><strong>options.format.decimals</strong></td><td>Integer</td><td>true</td><td>Number of decimals to support for numerical types in the data. When signing is requested, numerical values will be scaled accordingly. When no signing is requested, numerical values will be rounded to the specified number of decimals. Eg.: "decimals":10</td></tr><tr><td><strong>options.signature</strong></td><td>Object</td><td>false</td><td>Contains information about the signature domain specified by the client. Please check <a href="#id-3.1-eip-712-signatures">EIP-712 Signatures</a>.</td></tr></tbody></table>

**Note:** Fields marked \* are conditionally required (see field descriptions).

**Response Data (Spot):**

```json
{
    "data": [
        {
            "v": 88909.26,
            "timestamp": 1766386800000
        }
    ]
}
```

**Response Data (Perpetual):**

```json
{
    "data": [
        {
            "v": 88182.3,
            "timestamp": 1766221200000
        }
    ]
}
```

**Response Data (Future):**

```json
{
    "data": [
        {
            "v": 88382.7,
            "timestamp": 1766221200000
        }
    ]
}
```

**Response Data (Option):**

```json
{
    "data": [
        {
            "values": [
                {
                    "strike": 92000.0,
                    "v": 1970.0,
                    "type": "C"
                },
                {
                    "strike": 80000.0,
                    "v": 11300.0,
                    "type": "C"
                }
            ],
            "timestamp": 1766221200000
        }
    ]
}
```

**Response Explanation:**

<table><thead><tr><th width="170">Field</th><th width="140">Type</th><th>Description</th></tr></thead><tbody><tr><td><strong>data</strong></td><td>Array</td><td>Contains the trade price data and associated metadata. Returns an array of data points, one per timestamp.</td></tr><tr><td><strong>data.v</strong></td><td>Float</td><td>The last traded price at the given timestamp. For spot, perpetuals, and futures, this represents the most recent transaction price. For options, it represents the last trade price for the specific contract.</td></tr><tr><td><strong>data.values</strong></td><td>Array</td><td>For options only: contains strike-specific trade price data when multiple strikes are requested or when using "listed" strikes.</td></tr><tr><td><strong>data.values.strike</strong></td><td>Float</td><td>The strike price of the option contract.</td></tr><tr><td><strong>data.values.v</strong></td><td>Float</td><td>The last traded price  for the specific instrument.</td></tr><tr><td><strong>data.values.type</strong></td><td>String</td><td>The option type: "C" (Call) or "P" (Put).</td></tr><tr><td><strong>data.timestamp</strong></td><td>Integer</td><td>An integer value representing the timestamp when the trade occurred.</td></tr><tr><td><strong>signature</strong></td><td>Object</td><td>The signature field contains the EIP-712 signature, enabling on-chain validation of data integrity, and serving as a confirmation of authenticity &#x26; data quality as provided by Block Scholes.</td></tr></tbody></table>

### 4.18 Open-Interest (OI)

**Description:** Returns open interest data for a given asset type across different exchanges.

**Endpoint:** `/api/v1/analytic/oi`\
**Method:** `POST`

**Request Body (Perpetual):**

```json
{
    "exchange": "binance",
    "base_asset": "BTC",
    "asset_type": "perpetual",
    "start": "LATEST",
    "end": "LATEST",
    "quote_asset": "USD",
    "options": {
        "format": {
            "timestamp": "ms",
            "hexify": false,
            "decimals": 10
        }
    }
}
```

**Request Body (Future):**

```json
{
    "exchange": "binance",
    "base_asset": "BTC",
    "asset_type": "future",
    "expiry": "2026-03-27T08:00:00Z",
    "start": "LATEST",
    "end": "LATEST",
    "quote_asset": "USD",
    "options": {
        "format": {
            "timestamp": "ms",
            "hexify": false,
            "decimals": 10
        }
    }
}
```

**Request Body (Option):**

```json
{
    "exchange": "deribit",
    "base_asset": "BTC",
    "asset_type": "option",
    "expiry": "2026-01-30T08:00:00Z",
    "start": "LATEST",
    "end": "LATEST",
    "quote_asset": "USDC",
    "strike":[116000.0],
    "type": ["C"],
    "options": {
        "format": {
            "timestamp": "ms",
            "hexify": false,
            "decimals": 10
        }
    }
}
```

**Request Explanation:**

<table><thead><tr><th width="227">Field</th><th width="172">Type</th><th width="127.3333740234375" data-type="checkbox">Mandatory</th><th>Description</th></tr></thead><tbody><tr><td><strong>exchange</strong></td><td>String</td><td>true</td><td>The name of the exchange from which to source open-interest data (e.g., "binance").</td></tr><tr><td><strong>base_asset</strong></td><td>String</td><td>true</td><td>The currency for which the open-interest is being requested. Please check the table for the <a href="#id-6.-supported-base-assets">Supported base assets</a>.</td></tr><tr><td><strong>asset_type</strong></td><td>String</td><td>true</td><td><p>The type of asset.</p><p>This can be "perpetual", "future" or "option".</p></td></tr><tr><td><strong>expiry*</strong></td><td>ISO 8601 string</td><td>false</td><td>The expiry date and time for the asset in ISO 8601 format. Required if the asset type is "future" or "option".</td></tr><tr><td><strong>start</strong></td><td>String</td><td>false</td><td>Default value is "LATEST" to get the latest values. Also accepts ISO 8601 string for historical data queries.</td></tr><tr><td><strong>end</strong></td><td>String</td><td>false</td><td>Default value is "LATEST" to get the latest values. Also accepts ISO 8601 string for historical data queries.</td></tr><tr><td><strong>quote_asset</strong></td><td>String</td><td>true</td><td>The asset used as the pricing currency in a pair/market (e.g., USD in BTC/USD).</td></tr><tr><td><strong>frequency</strong></td><td>String</td><td>false</td><td><p>Defines the time interval between data points in the response.</p><p>Possible values:</p><ul><li>1h - Hourly data</li><li>1m - Minutely data</li></ul><p><strong>Default:</strong> 1h (hourly data)</p></td></tr><tr><td><strong>strike*</strong></td><td>List[Float] or String</td><td>false</td><td><p>A list of strikes found on the given exchange (please refer to our catalog endpoint to obtain an exchange's strikes), or "listed" to include all strikes currently listed on the exchange for the given expiry. Eg. <code>"strike":[3000, 3200]</code> or <code>"strike": "listed"</code> . </p><p>Mandatory only when asset_type="option"</p></td></tr><tr><td><strong>type*</strong></td><td>List[str]</td><td>false</td><td><p>List of option types to query.<br>Allowed values: "C" (Call), "P" (Put).</p><p>Mandatory only when asset_type="option"</p></td></tr><tr><td><strong>options</strong></td><td>Object</td><td>true</td><td>Defines custom configuration options for the API response.</td></tr><tr><td><strong>options.format</strong></td><td>Object</td><td>true</td><td>Specifies data formatting preferences for the response.</td></tr><tr><td><strong>options.format.timestamp</strong></td><td>String</td><td>true</td><td>Defines the precision of the timestamps attached to returned data responses. Valid values: "s" (seconds), "ms" (milliseconds), "ns" (nanoseconds). Message timestamps are always integers.</td></tr><tr><td><strong>options.format.hexify</strong></td><td>Boolean</td><td>true</td><td>Whether to convert numeric values to hexadecimal. If enabled, all numeric values will be transmitted as hex strings.</td></tr><tr><td><strong>options.format.decimals</strong></td><td>Integer</td><td>true</td><td>Number of decimals to support for numerical types in the data. When signing is requested, numerical values will be scaled accordingly. When no signing is requested, numerical values will be rounded to the specified number of decimals. Eg.: "decimals":10</td></tr><tr><td><strong>options.signature</strong></td><td>Object</td><td>false</td><td>Contains information about the signature domain specified by the client. Please check <a href="#id-3.1-eip-712-signatures">EIP-712 Signatures</a>.</td></tr></tbody></table>

**Note:** Fields marked \* are conditionally required (see field descriptions).

**Response Data (Perpetual):**

```json
{
    "data": [
        {
            "v": 18469444.0,
            "timestamp": 1767960000000
        }
    ]
}
```

**Response Data (Future):**

```json
{
    "data": [
        {
            "v": 2156515.0,
            "timestamp": 1767960000000
        }
    ]
}
```

**Response Data (Option):**

```json
{
    "data": [
        {
            "values": [
                {
                    "strike": 116000.0,
                    "v": 0.0,
                    "type": "C"
                }
            ],
            "timestamp": 1767960000000
        }
    ]
}
```

**Response Explanation:**

<table><thead><tr><th width="170">Field</th><th width="140">Type</th><th>Description</th></tr></thead><tbody><tr><td><strong>data</strong></td><td>Object</td><td>Contains the open-interest data and associated metadata.</td></tr><tr><td><strong>data.v</strong></td><td>Float</td><td>Represents the number of outstanding derivative contracts that have not been closed or settled. This applies to futures, perpetuals, and options.</td></tr><tr><td><strong>data.values</strong></td><td>List</td><td>For options only: contains strike-specific open-interest data when multiple strikes are requested or when using "listed" strikes.</td></tr><tr><td><strong>data.values.strike</strong></td><td>Float</td><td>This represents the strike price.</td></tr><tr><td><strong>data.values.v</strong></td><td>Float</td><td>The open-interest for the specific instrument.</td></tr><tr><td><strong>data.values.type</strong></td><td>String</td><td>The option type: "C" (Call) or "P" (Put).</td></tr><tr><td><strong>data.timestamp</strong></td><td>Integer</td><td>An integer value representing the timestamp when the data was recorded.</td></tr><tr><td><strong>signature</strong></td><td>Object</td><td>The signature field contains the EIP-712 signature, enabling on-chain validation of data integrity, and serving as a confirmation of authenticity &#x26; data quality as provided by Block Scholes.</td></tr></tbody></table>

***

### 4.19 Quote Price

**Description:** Returns quote data (bid and ask) for a given asset type across different exchanges.

**Endpoint:** `/api/v1/price/quote`\
**Method:** `POST`

**Request Body (Spot):**

```json
{
    "exchange": "binance",
    "base_asset": "BTC",
    "asset_type": "spot",
    "start": "LATEST",
    "end": "LATEST",
    "quote_asset": "USDC",
    "data_types": ["price", "size"],
    "frequency": "1m",
    "options": {
        "format": {
            "timestamp": "ms",
            "hexify": false,
            "decimals": 10
        }
    }
}
```

**Request Body (Perpetual):**

```json
{
    "exchange": "binance",
    "base_asset": "BTC",
    "asset_type": "perpetual",
    "start": "LATEST",
    "end": "LATEST",
    "frequency": "1m",
    "quote_asset": "USDC",
    "data_types": ["price", "size"],
    "options": {
        "format": {
            "timestamp": "ms",
            "hexify": false,
            "decimals": 10
        }
    }
}
```

**Request Body (Future):**

```json
{
    "exchange": "deribit",
    "base_asset": "BTC",
    "asset_type": "future",
    "expiry": "2026-03-27T08:00:00Z",
    "start": "LATEST",
    "end": "LATEST",
    "quote_asset": "USD",
    "data_types": ["price", "size"],
    "frequency": "1h",
    "options": {
        "format": {
            "timestamp": "ms",
            "hexify": false,
            "decimals": 10
        }
    }
}
```

**Request Body (Option):**

```json
{
    "exchange": "deribit",
    "base_asset": "BTC",
    "asset_type": "option",
    "expiry": "2026-01-30T08:00:00Z",
    "start": "LATEST",
    "end": "LATEST",
    "frequency": "1h",
    "quote_asset": "USDC",
    "data_types": ["price", "size"],
    "strike": [85000.0],
    "type": ["C","P"],
    "options": {
        "format": {
            "timestamp": "ms",
            "hexify": false,
            "decimals": 0
        }
    }
}
```

**Request Explanation:**

<table><thead><tr><th width="227">Field</th><th width="172">Type</th><th width="127.3333740234375" data-type="checkbox">Mandatory</th><th>Description</th></tr></thead><tbody><tr><td><strong>exchange</strong></td><td>String</td><td>true</td><td>The name of the exchange from which to source quote data (e.g., "binance").</td></tr><tr><td><strong>base_asset</strong></td><td>String</td><td>true</td><td>The currency for which the quote data is being requested. Please check the table for the <a href="#id-6.-supported-base-assets">Supported base assets</a>.</td></tr><tr><td><strong>asset_type</strong></td><td>String</td><td>true</td><td><p>The type of asset.</p><p>This can be "spot", "future", "option" or "perpetual".</p></td></tr><tr><td><strong>data_types</strong></td><td>List[String]</td><td>true</td><td>Types of quote data to return. Allowed values: "price", "size". If not provided Default: ["price"].</td></tr><tr><td><strong>expiry*</strong></td><td>ISO 8601 string</td><td>false</td><td>The expiry date and time for the asset in ISO 8601 format. Required if the asset type is "future" or "option".</td></tr><tr><td><strong>start</strong></td><td>String</td><td>false</td><td>Default value is "LATEST" to get the latest values. Also accepts ISO 8601 string for historical data queries.</td></tr><tr><td><strong>end</strong></td><td>String</td><td>false</td><td>Default value is "LATEST" to get the latest values. Also accepts ISO 8601 string for historical data queries.</td></tr><tr><td><strong>quote_asset</strong></td><td>String</td><td>true</td><td>The asset used as the pricing currency in a pair/market (e.g., USD in BTC/USD).</td></tr><tr><td><strong>frequency</strong></td><td>String</td><td>false</td><td><p>Defines the time interval between data points in the response.</p><p>Possible values:</p><ul><li>1h - Hourly data</li><li>1m - Minutely data</li></ul><p><strong>Default:</strong> 1h (hourly data)</p></td></tr><tr><td><strong>strike*</strong></td><td>List[Float] or String</td><td>false</td><td><p>A list of strikes found on the given exchange (please refer to our catalog endpoint to obtain an exchange's strikes), or "listed" to include all strikes currently listed on the exchange for the given expiry. Eg. <code>"strike":[3000, 3200]</code> or <code>"strike": "listed"</code> . </p><p>Mandatory only when asset_type="option"</p></td></tr><tr><td><strong>type*</strong></td><td>List[str]</td><td>false</td><td><p>List of option types to query.<br>Allowed values: "C" (Call), "P" (Put).</p><p>Mandatory only when asset_type="option"</p></td></tr><tr><td><strong>options</strong></td><td>Object</td><td>true</td><td>Defines custom configuration options for the API response.</td></tr><tr><td><strong>options.format</strong></td><td>Object</td><td>true</td><td>Specifies data formatting preferences for the response.</td></tr><tr><td><strong>options.format.timestamp</strong></td><td>String</td><td>true</td><td>Defines the precision of the timestamps attached to returned data responses. Valid values: "s" (seconds), "ms" (milliseconds), "ns" (nanoseconds). Message timestamps are always integers.</td></tr><tr><td><strong>options.format.hexify</strong></td><td>Boolean</td><td>true</td><td>Whether to convert numeric values to hexadecimal. If enabled, all numeric values will be transmitted as hex strings.</td></tr><tr><td><strong>options.format.decimals</strong></td><td>Integer</td><td>true</td><td>Number of decimals to support for numerical types in the data. When signing is requested, numerical values will be scaled accordingly. When no signing is requested, numerical values will be rounded to the specified number of decimals. Eg.: "decimals":10</td></tr><tr><td><strong>options.signature</strong></td><td>Object</td><td>false</td><td>Contains information about the signature domain specified by the client. Please check <a href="#id-3.1-eip-712-signatures">EIP-712 Signatures</a>.</td></tr></tbody></table>

**Note:** Fields marked \* are conditionally required (see field descriptions).

**Response Data: (Spot)**

```json
{
    "data": [
        {
            "timestamp": 1768986000000,
            "bid": 89115.31,
            "ask": 89115.32,
            "bid_size": 0.38412,
            "ask_size": 0.34933
        }
    ]
}
```

**Response Data: (Perpetual)**

```json
{
    "data": [
        {
            "timestamp": 1768986000000,
            "bid": 89077.0,
            "ask": 89077.1,
            "bid_size": 0.477,
            "ask_size": 0.567
        }
    ]
}
```

**Response Data: (Future)**

```json
{
    "data": [
        {
            "timestamp": 1768978800000,
            "bid": 90295.0,
            "ask": 90297.5,
            "bid_size": 3700.0,
            "ask_size": 200.0
        }
    ]
}
```

**Response Data: (Option)**

```json
{
    "data": [
        {
            "values": [
                {
                    "strike": 85000.0,
                    "type": "P",
                    "bid": 575.0,
                    "ask": 615.0,
                    "bid_size": 5.0,
                    "ask_size": 2.45
                },
                {  
                    "strike": 85000.0,
                    "type": "C",
                    "bid": 5.0,
                    "ask": 14000.0,
                    "bid_size": 3.24,
                    "ask_size": 0.1
                }
            ],
            "timestamp": 1767956400000
        }
    ]
}
```

**Response Explanation:**

<table><thead><tr><th width="200">Field</th><th width="113.3333740234375">Type</th><th>Description</th></tr></thead><tbody><tr><td><strong>data</strong></td><td>Array</td><td>Contains the quote price data and associated metadata.</td></tr><tr><td><strong>data.v</strong></td><td>Float</td><td>The quote price value (bid or ask) of the asset at the given timestamp.</td></tr><tr><td><strong>data.timestamp</strong></td><td>Integer</td><td>An integer value representing the timestamp when the data was recorded.</td></tr><tr><td><strong>data.values</strong></td><td>Array</td><td>For options: Contains an array of quote data for each strike and option type combination.</td></tr><tr><td><strong>data.values.strike</strong></td><td>Float</td><td>The strike price of the option.</td></tr><tr><td><strong>data.values.type</strong></td><td>String</td><td>The option type: "C" (Call) or "P" (Put).</td></tr><tr><td><strong>data.values.bid</strong></td><td>Float</td><td>The best bid price available for the specific instrument.</td></tr><tr><td><strong>data.values.ask</strong></td><td>Float</td><td>The best ask price available for the specific instrument.</td></tr><tr><td><strong>data.values.bid_size</strong></td><td>Float</td><td>Available quantity/size at the best bid price.</td></tr><tr><td><strong>data.values.ask_size</strong></td><td>Float</td><td>Available quantity/size at the best ask price.</td></tr><tr><td><strong>signature</strong></td><td>Object</td><td>The signature field contains the EIP-712 signature, enabling on-chain validation of data integrity, and serving as a confirmation of authenticity &#x26; data quality as provided by Block Scholes.</td></tr></tbody></table>

***

## 5. Error Handling

**Error Messages**

<table><thead><tr><th width="187">Error Type</th><th width="131.22216796875">HTTP Code</th><th width="264">Example Body</th><th>Description</th></tr></thead><tbody><tr><td><strong>Authentication Error</strong></td><td>403</td><td><pre class="language-json" data-overflow="wrap" data-full-width="true"><code class="lang-json">{
"data": {},
"error": {
"message": "Forbidden"
    }
}
</code></pre><p></p></td><td>Occurs when an invalid or missing API key is provided in the request header. Ensure that a valid X-API-Key is included.</td></tr><tr><td><strong>Missing Required Field</strong></td><td>422</td><td><pre class="language-json" data-overflow="wrap" data-full-width="true"><code class="lang-json">{ 
"data": {}, 
"error": { 
"message": "Invalid parameters: 'exchanges': Field required" 
    } 
}
</code></pre><p></p></td><td>Triggered when required fields are omitted from the request body. Check all mandatory parameters.</td></tr><tr><td><strong>Validation Error</strong></td><td>422</td><td><pre class="language-json" data-overflow="wrap" data-full-width="true"><code class="lang-json">{
"data": {},
"error": {
"message": "Validation error: exchange should be provided"
    }
}
</code></pre><p></p></td><td>Occurs when request parameters fail validation (e.g., missing exchange or invalid parameter types).</td></tr><tr><td><strong>Data Not Found Error</strong></td><td>404</td><td><pre class="language-json" data-overflow="wrap"><code class="lang-json">{
"data": {},
"error": {
"message": "No timeseries data retrieved. Errors: No instrument found matching the specified criteria"
    }
}
</code></pre><p></p></td><td>Indicates that no data was found for the provided filters or date range. Verify the start, end, or filtering parameters.</td></tr><tr><td><strong>Internal Server Error</strong> </td><td>500</td><td><pre class="language-json5" data-overflow="wrap"><code class="lang-json5">{
"data": {},
"error": {
"message": "Internal     server error"
    }
}

</code></pre><p></p></td><td>A generic error indicating a server-side issue. Retry later or report the incident.</td></tr></tbody></table>

***

## **6. Supported Base Assets**

<table><thead><tr><th width="165.5555419921875">asset_type</th><th width="568.7778930664062" valign="top">base_assets</th></tr></thead><tbody><tr><td><strong>option</strong></td><td valign="top"><p></p><p>To fetch all the allowed currencies for the option asset_type, please use the catalog API with following request body to call the <a href="#catalog-instruments">Catalog API</a></p><pre class="language-postman_json"><code class="lang-postman_json">{
    "fields": [],
    "start": "2025-10-06T06:00:00Z", //Use current date
    "end": "2025-10-06T06:00:00Z",  //Use current date
    "exchanges":["blockscholes"],
    "asset_types":["option"],
    "base_assets":[]
}
</code></pre></td></tr><tr><td><strong>spot</strong></td><td valign="top"><p>To fetch all the allowed currencies for the spot asset_type, please use the catalog API with following request body to call the <a href="#catalog-instruments">Catalog API</a></p><pre class="language-postman_json"><code class="lang-postman_json">{
    "fields": [],
    "start": "2025-10-06T06:00:00Z", //Use current date
    "end": "2025-10-06T06:00:00Z",  //Use current date
    "exchanges":["blockscholes"],
    "asset_types":["spot"],
    "base_assets":[]
}
</code></pre></td></tr><tr><td><strong>perpetual</strong></td><td valign="top"><p></p><p>To fetch all the allowed currencies for the spot asset_type, please use the catalog API with following request body to call the <a href="#catalog-instruments">Catalog API</a></p><pre class="language-postman_json"><code class="lang-postman_json">{
    "fields": [],
    "start": "2025-10-06T06:00:00Z", //Use current date
    "end": "2025-10-06T06:00:00Z",  //Use current date
    "exchanges":["blockscholes"],
    "asset_types":["perpetual"],
    "base_assets":[]
}
</code></pre></td></tr><tr><td><strong>future</strong></td><td valign="top"><p></p><p>To fetch all the allowed currencies for the spot asset_type, please use the catalog API with following request body to call the <a href="#catalog-instruments">Catalog API</a></p><pre class="language-postman_json"><code class="lang-postman_json">{
    "fields": [],
    "start": "2025-10-06T06:00:00Z", //Use current date
    "end": "2025-10-06T06:00:00Z",  //Use current date
    "exchanges":["blockscholes"],
    "asset_types":["future"],
    "base_assets":[]
}
</code></pre></td></tr></tbody></table>

***


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.blockscholes.com/data-access/rest-api.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
