# Implied Volatility SVI (Closed Beta)

{% hint style="warning" %}
This is a closed beta. Please contact your account manager if you'd like to be included in the program.
{% endhint %}

## What is this endpoint for?&#x20;

IV SVI stands for Implied Volatility Surface for Vanilla Instruments. This endpoint distributes the raw data we use to calculate our [IV Smile](https://app.gitbook.com/s/ltAbhvgBfrAWlpUnC7ys/analytics-solutions/kaiko-derivatives-risk-indicators/implied-volatility-calculation-smile) solution.

## Endpoints

{% tabs %}
{% tab title="gRPC" %}

```url
gateway-v0-grpc.kaiko.ovh
```

{% endtab %}

{% tab title="http" %}

```url
gateway-v0-http.kaiko.ovh
```

{% endtab %}

{% tab title="API (testing)" %}
{% code overflow="wrap" %}

```url
https://gateway-v0-http.kaiko.ovh/api/stream/iv_svi_parameters_v1
```

{% endcode %}
{% endtab %}
{% endtabs %}

## Parameters

<table><thead><tr><th width="149">Parameter</th><th width="387">Description</th><th>Examples</th></tr></thead><tbody><tr><td><code>assets</code></td><td><p>A <strong>nested object</strong> to configure following properties for your stream: </p><ul><li><code>base</code> (String) - The desired base as the underlying of the options.</li><li><code>quote</code> (String) - The desired quote as the underlying of the options.</li></ul><p>Explore codes and exchanges in the <a href="https://instruments.kaiko.com/#/instruments">Instrument Explorer</a> or by using the <a href="broken-reference">Reference API</a> endpoint. </p></td><td><p><code>btc</code></p><p></p><p><code>usd</code><br><br></p></td></tr><tr><td><code>exchanges</code></td><td><p>The desired exchange as source of options data.<br></p><p>Explore codes and exchanges in the <a href="https://instruments.kaiko.com/#/instruments">Instrument Explorer</a> or by using the <a href="broken-reference">Reference API</a> endpoint. </p></td><td><code>drbt</code></td></tr></tbody></table>

## Fields

| Field                | Description                                                               |
| -------------------- | ------------------------------------------------------------------------- |
| `dataStartTime`      | Start time of the calculation window used.                                |
| `dataEndTime`        | End time of the calculation window used.                                  |
| `expiry`             | Expiry date of the instrument.                                            |
| `exchanges`          | Exchanges included.                                                       |
| `timeToExpiry`       | Time to expiry.                                                           |
| `atmImpliedVariance` | ATM implied variance.                                                     |
| `atmSkew`            | ATM skew.                                                                 |
| `leftSlope`          | Left slope of IV smile.                                                   |
| `rightSlope`         | Right slope of IV smile.                                                  |
| `minImpliedVariance` | Min implied variance.                                                     |
| `currentSpot`        | Current spot.                                                             |
| `interestRate`       | Interest rate.                                                            |
| `tsEvent`            | Event generation timestamp (event created by Kaiko), after normalization. |

## Request examples

{% tabs %}
{% tab title="Python" %}
**Make sure to read our** [**Python quick-start guide**](https://docs.kaiko.com/stream/general/quick-start-guides/quick-start-python) **before starting.**&#x20;

{% code overflow="wrap" %}

```python
# This is a code example. Configure your parameters in the parameter configuration section #

from __future__ import print_function
import logging
import os

import grpc
from google.protobuf.json_format import MessageToJson
from google.protobuf import duration_pb2

from kaikosdk import sdk_pb2_grpc
from kaikosdk.core import instrument_criteria_pb2, assets_pb2
from kaikosdk.stream.aggregates_ohlcv_v1 import request_pb2 as pb_ohlcv
from kaikosdk.stream.aggregates_vwap_v1 import request_pb2 as pb_vwap
from kaikosdk.stream.market_update_v1 import request_pb2 as pb_market_update
from kaikosdk.stream.market_update_v1 import commodity_pb2 as pb_commodity
from kaikosdk.stream.trades_v1 import request_pb2 as pb_trades
from kaikosdk.stream.index_v1 import request_pb2 as pb_index
from kaikosdk.stream.index_multi_assets_v1 import request_pb2 as pb_index_multi_assets
from kaikosdk.stream.index_forex_rate_v1 import request_pb2 as pb_index_forex_rate
from kaikosdk.stream.aggregated_quote_v2 import request_pb2 as pb_aggregated_quote
from kaikosdk.stream.aggregates_spot_exchange_rate_v2 import request_pb2 as pb_spot_exchange_rate
from kaikosdk.stream.aggregates_direct_exchange_rate_v2 import request_pb2 as pb_direct_exchange_rate
from kaikosdk.stream.derivatives_instrument_metrics_v1 import request_pb2 as pb_derivatives_instrument_metrics
from kaikosdk.stream.iv_svi_parameters_v1 import request_pb2 as pb_iv_svi_parameters


def iv_svi_parameters_v1_request(channel: grpc.Channel):
    try:
        with channel:
            stub = sdk_pb2_grpc.StreamIvSviParametersServiceV1Stub(channel)

            responses = stub.Subscribe(pb_iv_svi_parameters.StreamIvSviParametersRequestV1(
                assets = assets_pb2.Assets(
                    base = "btc",
                    quote = "usd"
                ),
                exchanges = "drbt"
            ))
            for response in responses:
                print("Received message %s" % (MessageToJson(response, including_default_value_fields = True)))
    except grpc.RpcError as e:
        print(e.details(), e.code())



def run():
    credentials = grpc.ssl_channel_credentials(root_certificates=None)
    call_credentials = grpc.access_token_call_credentials(os.environ['KAIKO_API_KEY'])
    composite_credentials = grpc.composite_channel_credentials(credentials, call_credentials)
    channel = grpc.secure_channel('gateway-v0-grpc.kaiko.ovh', composite_credentials)

    iv_svi_parameters_v1_request(channel)

if __name__ == '__main__':
    logging.basicConfig()
    run()

```

{% endcode %}
{% endtab %}

{% tab title="cURL" %}
**cURL requests are intended for testing purposes only.**

{% code overflow="wrap" %}

```url
curl --request POST \
  --url https://gateway-v0-http.kaiko.ovh/api/stream/iv_svi_parameters_v1 \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --header 'X-Api-Key: API_KEY' \
  --data '{"assets":{"base":"btc","quote":"usd"},"exchanges":"drbt"}'
```

{% endcode %}
{% endtab %}

{% tab title="Other examples" %}
For more advanced users, you can access our full SDK [here](https://github.com/kaikodata/kaiko-sdk-examples/tree/master), where you'll find more coding languages, examples and guidance.
{% endtab %}
{% endtabs %}

## Response Example
