[Feature] Add Deribit Futures Data (#6998)

* add deribit futures data

* linting

* linting

* linting

* pylint

* still pylint

* still pylint

* try removing --no-update again

* trick it...

* try putting --no-update back in

* cut it back out

* more explicit hours ago
This commit is contained in:
Danglewood
2025-01-07 19:32:54 -08:00
committed by GitHub
parent f549d7dd95
commit 3f582a77af
24 changed files with 5003 additions and 475 deletions

View File

@@ -0,0 +1,18 @@
"""Futures Info Standard Model."""
from openbb_core.provider.abstract.data import Data
from openbb_core.provider.abstract.query_params import QueryParams
from openbb_core.provider.utils.descriptions import DATA_DESCRIPTIONS
from pydantic import Field
class FuturesInfoQueryParams(QueryParams):
"""Futures Info Query."""
# leaving this empty to let the provider create custom symbol docstrings.
class FuturesInfoData(Data):
"""Futures Instruments Data."""
symbol: str = Field(description=DATA_DESCRIPTIONS.get("symbol", ""))

View File

@@ -0,0 +1,12 @@
"""Futures Instruments Standard Model."""
from openbb_core.provider.abstract.data import Data
from openbb_core.provider.abstract.query_params import QueryParams
class FuturesInstrumentsQueryParams(QueryParams):
"""Futures Instruments Query."""
class FuturesInstrumentsData(Data):
"""Futures Instruments Data."""

View File

@@ -147,7 +147,7 @@ def install_platform_local(_extras: bool = False):
extras_args = ["-E", "all"] if _extras else []
subprocess.run(
CMD + ["lock", "--no-update"],
CMD + ["lock"],
cwd=PLATFORM_PATH,
check=True,
)
@@ -192,7 +192,7 @@ def install_platform_cli():
CMD = [sys.executable, "-m", "poetry"]
subprocess.run(
CMD + ["lock", "--no-update"],
CMD + ["lock"],
cwd=CLI_PATH,
check=True, # noqa: S603
)

View File

@@ -113,6 +113,15 @@ def test_derivatives_options_unusual(params, headers):
"expiration": "2025-12",
}
),
(
{
"provider": "deribit",
"interval": "1d",
"symbol": "BTC,ETH",
"start_date": "2023-01-01",
"end_date": "2023-06-06",
}
),
],
)
@pytest.mark.integration
@@ -144,6 +153,7 @@ def test_derivatives_futures_historical(params, headers):
"date": "2024-06-25",
}
),
({"provider": "deribit", "date": None, "symbol": "BTC", "hours_ago": 12}),
],
)
@pytest.mark.integration
@@ -164,7 +174,9 @@ def test_derivatives_futures_curve(params, headers):
({"provider": "intrinio", "date": None, "only_traded": True}),
],
)
@pytest.mark.integration
@pytest.mark.skip(
reason="This test is skipped because the download is excessively large."
)
def test_derivatives_options_snapshots(params, headers):
"""Test the options snapshots endpoint."""
params = {p: v for p, v in params.items() if v}
@@ -174,3 +186,39 @@ def test_derivatives_options_snapshots(params, headers):
result = requests.get(url, headers=headers, timeout=60)
assert isinstance(result, requests.Response)
assert result.status_code == 200
@parametrize(
"params",
[
({"provider": "deribit"}),
],
)
@pytest.mark.integration
def test_derivatives_futures_instruments(params, headers):
"""Test the futures instruments endpoint."""
params = {p: v for p, v in params.items() if v}
query_str = get_querystring(params, [])
url = f"http://0.0.0.0:8000/api/v1/derivatives/futures/instruments?{query_str}"
result = requests.get(url, headers=headers, timeout=10)
assert isinstance(result, requests.Response)
assert result.status_code == 200
@parametrize(
"params",
[
({"provider": "deribit", "symbol": "ETH-PERPETUAL"}),
],
)
@pytest.mark.integration
def test_derivatives_futures_info(params, headers):
"""Test the futures info endpoint."""
params = {p: v for p, v in params.items() if v}
query_str = get_querystring(params, [])
url = f"http://0.0.0.0:8000/api/v1/derivatives/futures/info?{query_str}"
result = requests.get(url, headers=headers, timeout=10)
assert isinstance(result, requests.Response)
assert result.status_code == 200

View File

@@ -114,6 +114,15 @@ def test_derivatives_options_unusual(params, obb):
"expiration": "2025-12",
}
),
(
{
"provider": "deribit",
"interval": "1d",
"symbol": "BTC,ETH",
"start_date": "2023-01-01",
"end_date": "2023-06-06",
}
),
],
)
@pytest.mark.integration
@@ -130,6 +139,7 @@ def test_derivatives_futures_historical(params, obb):
[
({"provider": "yfinance", "symbol": "ES", "date": None}),
({"provider": "cboe", "symbol": "VX", "date": "2024-06-25"}),
({"provider": "deribit", "date": None, "symbol": "BTC", "hours_ago": 12}),
],
)
@pytest.mark.integration
@@ -147,10 +157,42 @@ def test_derivatives_futures_curve(params, obb):
({"provider": "intrinio", "date": None, "only_traded": True}),
],
)
@pytest.mark.integration
@pytest.mark.skip(
reason="This test is skipped because the download is excessively large."
)
def test_derivatives_options_snapshots(params, obb):
"""Test the options snapshots endpoint."""
result = obb.derivatives.options.snapshots(**params)
assert result
assert isinstance(result, OBBject)
assert len(result.results) > 0
@parametrize(
"params",
[
({"provider": "deribit"}),
],
)
@pytest.mark.integration
def test_derivatives_futures_instruments(params, obb):
"""Test the futures instruments endpoint."""
result = obb.derivatives.futures.instruments(**params)
assert result
assert isinstance(result, OBBject)
assert len(result.results) > 0
@parametrize(
"params",
[
({"provider": "deribit", "symbol": "ETH-PERPETUAL"}),
],
)
@pytest.mark.integration
def test_derivatives_futures_info(params, obb):
"""Test the futures info endpoint."""
result = obb.derivatives.futures.info(**params)
assert result
assert isinstance(result, OBBject)
assert len(result.results) > 0

View File

@@ -17,6 +17,8 @@ class DerivativesViews:
# pylint: disable=import-outside-toplevel
from openbb_charting.charts.price_historical import price_historical
kwargs.update({"candles": False, "same_axis": False})
return price_historical(**kwargs)
@staticmethod
@@ -107,7 +109,8 @@ class DerivativesViews:
provider = kwargs.get("provider", "")
df["expiration"] = df["expiration"].apply(to_datetime).dt.strftime("%b-%Y")
if provider != "deribit":
df["expiration"] = df["expiration"].apply(to_datetime).dt.strftime("%b-%Y")
if (
provider == "cboe"
@@ -163,6 +166,15 @@ class DerivativesViews:
if "date" in df.columns
else ["Current"]
)
if provider == "deribit" and "hours_ago" in df.columns:
dates = [
str(d) + " Hours Ago" if d > 0 else "Current"
for d in df["hours_ago"].unique().tolist()
]
df.loc[:, "date"] = df["hours_ago"].apply(
lambda x: str(x) + " Hours Ago" if x > 0 else "Current"
)
figure, color_count = create_fig(figure, df, dates, color_count)
# Set the title for the chart
@@ -176,7 +188,7 @@ class DerivativesViews:
)
if len(dates) == 1 and dates[0] != "Current":
title = f"{title} for {dates[0]}"
elif provider == "yfinance":
else:
title = f"{symbol.upper()} Futures Curve"
# Use the supplied title, if any.

View File

@@ -60,3 +60,38 @@ async def curve(
) -> OBBject:
"""Futures Term Structure, current or historical."""
return await OBBject.from_query(Query(**locals()))
@router.command(
model="FuturesInstruments",
examples=[
APIEx(parameters={"provider": "deribit"}),
],
)
async def instruments(
cc: CommandContext,
provider_choices: ProviderChoices,
standard_params: StandardParams,
extra_params: ExtraParams,
) -> OBBject:
"""Get reference data for available futures instruments by provider."""
return await OBBject.from_query(Query(**locals()))
@router.command(
model="FuturesInfo",
examples=[
APIEx(parameters={"provider": "deribit", "symbol": "BTC"}),
APIEx(parameters={"provider": "deribit", "symbol": "SOLUSDC"}),
APIEx(parameters={"provider": "deribit", "symbol": "SOL_USDC-PERPETUAL"}),
APIEx(parameters={"provider": "deribit", "symbol": "BTC,ETH"}),
],
)
async def info(
cc: CommandContext,
provider_choices: ProviderChoices,
standard_params: StandardParams,
extra_params: ExtraParams,
) -> OBBject:
"""Get current trading statistics by futures contract symbol."""
return await OBBject.from_query(Query(**locals()))

View File

@@ -10,3 +10,36 @@
- SOL
- BNB
- PAXG
- obb.derivatives.futures.curve
- Support for symbols:
- BTC
- ETH
- PAXG
- obb.derivatives.futures.historical
- Support for symbols (Perpetual Futures):
- ADAUSDC
- ALGOUSDC
- AVAXUSDC
- BCHUSDC
- BNBUSDC
- BTC
- BTCUSDC
- BTCUSDT
- DOGEUSDC
- DOTUSDC
- ETH
- ETHUSDC
- ETHUSDT
- LINKUSDC
- LTCUSDC
- NEARUSDC
- PAXGUSDC
- SOLUSDC
- TRXUSDC
- UNIUSDC
- XRPUSDC
- Additional symbols include all Deribit instrument names of current open contracts for BTC, ETH, and PAXG futures.
- obb.derivatives.futures.instruments
- Reference data for all current futures instruments.
- obb.derivatives.futures.info
- Key stats by symbol (multiple items allowed).

View File

@@ -1,7 +1,10 @@
"""OpenBB Deribit Provider Module."""
from openbb_core.provider.abstract.provider import Provider
from openbb_deribit.models.futures_curve import DeribitFuturesCurveFetcher
from openbb_deribit.models.futures_historical import DeribitFuturesHistoricalFetcher
from openbb_deribit.models.futures_info import DeribitFuturesInfoFetcher
from openbb_deribit.models.futures_instruments import DeribitFuturesInstrumentsFetcher
from openbb_deribit.models.options_chains import DeribitOptionsChainsFetcher
deribit_provider = Provider(
@@ -9,7 +12,13 @@ deribit_provider = Provider(
website="https://deribit.com/",
description="""Unofficial Python client for public data published by Deribit.""",
credentials=None,
fetcher_dict={"OptionsChains": DeribitOptionsChainsFetcher},
fetcher_dict={
"FuturesCurve": DeribitFuturesCurveFetcher,
"FuturesHistorical": DeribitFuturesHistoricalFetcher,
"FuturesInfo": DeribitFuturesInfoFetcher,
"FuturesInstruments": DeribitFuturesInstrumentsFetcher,
"OptionsChains": DeribitOptionsChainsFetcher,
},
repr_name="Deribit Public Data",
instructions="This provider does not require any credentials and is not meant for trading.",
)

View File

@@ -0,0 +1,186 @@
"""Deribit Futures Curve Model."""
# pylint: disable=unused-argument
from typing import Any, Optional, Union
from openbb_core.app.model.abstract.error import OpenBBError
from openbb_core.provider.abstract.fetcher import Fetcher
from openbb_core.provider.standard_models.futures_curve import (
FuturesCurveData,
FuturesCurveQueryParams,
)
from openbb_core.provider.utils.descriptions import (
QUERY_DESCRIPTIONS,
)
from openbb_core.provider.utils.errors import EmptyDataError
from openbb_deribit.utils.helpers import (
DERIBIT_FUTURES_CURVE_SYMBOLS,
FuturesCurveSymbols,
)
from pydantic import Field, field_validator, model_validator
class DeribitFuturesCurveQueryParams(FuturesCurveQueryParams):
"""
Deribit Futures Curve Query.
Source: https://docs.deribit.com/?shell#public-ticker
"""
__json_schema_extra__ = {
"symbol": {
"multiple_items_allowed": False,
"choices": DERIBIT_FUTURES_CURVE_SYMBOLS,
},
"hours_ago": {
"multiple_items_allowed": True,
},
}
symbol: FuturesCurveSymbols = Field(
default="BTC",
description=QUERY_DESCRIPTIONS.get("symbol", "")
+ " Default is 'btc' Supported symbols are: ['btc', 'eth', 'paxg']",
)
hours_ago: Optional[Union[int, list[int], str]] = Field(
default=None,
description="Compare the current curve with the specified number of hours ago. Default is None.",
)
@field_validator("symbol", mode="before", check_fields=False)
@classmethod
def validate_symbol(cls, v):
"""Validate the symbol."""
symbol = v.upper()
if symbol not in DERIBIT_FUTURES_CURVE_SYMBOLS:
raise ValueError(
f"Invalid Deribit symbol, {symbol}. Supported symbols are: {', '.join(DERIBIT_FUTURES_CURVE_SYMBOLS)}"
)
return symbol
@field_validator("hours_ago", mode="before", check_fields=False)
@classmethod
def _validate_hours_ago(cls, v):
"""Validate hours ago."""
if isinstance(v, str):
return v
if isinstance(v, int):
return v
if isinstance(v, list):
return ",".join([str(i) for i in v])
return None
@model_validator(mode="before")
@classmethod
def _validate_model(cls, values):
"""Validate the model."""
if values.get("date"):
raise ValueError(
"Date field is not supported for Deribit provider. Use 'hours_ago' instead."
)
return values
class DeribitFuturesCurveData(FuturesCurveData):
"""Deribit Futures Curve Data."""
hours_ago: Optional[int] = Field(
default=None,
description="The number of hours ago represented by the price."
+ " Only available when hours_ago is set in the query.",
)
class DeribitFuturesCurveFetcher(
Fetcher[DeribitFuturesCurveQueryParams, list[DeribitFuturesCurveData]]
):
"""Deribit Futures Curve Fetcher."""
@staticmethod
def transform_query(params: dict[str, Any]) -> DeribitFuturesCurveQueryParams:
"""Transform query params."""
return DeribitFuturesCurveQueryParams(**params)
@staticmethod
async def aextract_data(
query: DeribitFuturesCurveQueryParams,
credentials: Optional[dict[str, str]],
**kwargs: Any,
) -> list:
"""Extract the raw data."""
# pylint: disable=import-outside-toplevel
import asyncio # noqa
from openbb_deribit.utils.helpers import (
get_futures_curve_symbols,
get_ticker_data,
get_futures_curve_by_hours_ago,
)
try:
symbols = await get_futures_curve_symbols(query.symbol)
tasks = [get_ticker_data(s) for s in symbols]
data = await asyncio.gather(*tasks, return_exceptions=True)
if query.hours_ago is not None:
num_hours = query.hours_ago
hours_ago = (
[int(d) for d in num_hours.split(",")]
if isinstance(num_hours, str)
else [int(num_hours)] if isinstance(num_hours, int) else num_hours
)
for hours in hours_ago:
hours_data = await get_futures_curve_by_hours_ago(
query.symbol, hours
)
if hours_data:
data.extend(hours_data)
return data
except Exception as e: # pylint: disable=broad-except
raise OpenBBError(
f"Failed to get futures curve -> {e.__class__.__name__ if hasattr(e, '__class__') else e}: {e.args}"
) from e
@staticmethod
def transform_data(
query: DeribitFuturesCurveQueryParams, data: list, **kwargs: Any
) -> list[DeribitFuturesCurveData]:
"""Transform the data."""
# pylint: disable=import-outside-toplevel
from datetime import datetime # noqa
from pandas import to_datetime
if not data:
raise EmptyDataError("No data found")
futures_curve: list[DeribitFuturesCurveData] = []
for d in data:
if not d:
continue
ins_name = d.get("instrument_name", "")
exp = ins_name.split("-")[1]
hours_ago = d.get("hours_ago", 0)
exp = (
datetime.today().strftime("%Y-%m-%d")
if exp == "PERPETUAL"
else to_datetime(exp).strftime("%Y-%m-%d")
)
price = d.get("last_price", d.get("mark_price"))
result = {"expiration": exp, "price": price}
if query.hours_ago:
result["hours_ago"] = hours_ago
if price:
futures_curve.append(DeribitFuturesCurveData.model_validate(result))
if not futures_curve:
raise EmptyDataError("No data found.")
return sorted(futures_curve, key=lambda x: x.expiration)

View File

@@ -0,0 +1,155 @@
"""Deribit Futures Historical Model."""
# pylint: disable=unused-argument
from datetime import datetime, timedelta
from typing import Any, Optional
from openbb_core.app.model.abstract.error import OpenBBError
from openbb_core.provider.abstract.fetcher import Fetcher
from openbb_core.provider.standard_models.futures_historical import (
FuturesHistoricalData,
FuturesHistoricalQueryParams,
)
from openbb_core.provider.utils.descriptions import QUERY_DESCRIPTIONS
from openbb_core.provider.utils.errors import EmptyDataError
from openbb_deribit.utils.helpers import DERIBIT_INTERVALS, DeribitIntervals
from pydantic import Field, field_validator, model_validator
class DeribitFuturesHistoricalQueryParams(FuturesHistoricalQueryParams):
"""
Deribit Futures historical Price Query.
Source: https://docs.deribit.com/?shell#public-get_tradingview_chart_data
"""
__json_schema_extra__ = {
"symbol": {"multiple_items_allowed": True},
"interval": {
"multiple_items_allowed": False,
"choices": DERIBIT_INTERVALS,
},
}
interval: DeribitIntervals = Field(
default="1d", description=QUERY_DESCRIPTIONS.get("interval", "")
)
@field_validator("symbol", mode="before", check_fields=False)
@classmethod
def _validate_symbol(cls, v):
"""Validate the symbol."""
# pylint: disable=import-outside-toplevel
from openbb_core.provider.utils.helpers import run_async
from openbb_deribit.utils.helpers import (
get_futures_symbols,
get_perpetual_symbols,
)
if not v:
raise ValueError("Symbol is required.")
futures_symbols = run_async(get_futures_symbols)
perpetual_symbols = run_async(get_perpetual_symbols)
all_symbols = list(perpetual_symbols) + futures_symbols
symbols = v.upper().split(",")
new_symbols: list = []
for symbol in symbols:
if symbol not in all_symbols:
raise ValueError(
f"Invalid Deribit symbol: {symbol}. Supported symbols are: {', '.join(all_symbols)}"
)
if symbol in perpetual_symbols:
new_symbols.append(perpetual_symbols[symbol])
else:
new_symbols.append(symbol)
return ",".join(new_symbols)
@model_validator(mode="before")
@classmethod
def _validate_model(cls, values):
"""Validate the model."""
interval = values.get("interval")
now = datetime.today()
if not values.get("start_date"):
if interval == "1m":
start = now - timedelta(days=30)
elif interval in ["3m", "5m"]:
start = now - timedelta(days=60)
elif interval in ["15m", "30m"]:
start = now - timedelta(days=90)
else:
start = now - timedelta(days=364)
values["start_date"] = start.strftime("%Y-%m-%d")
if not values.get("end_date"):
values["end_date"] = (now + timedelta(days=1)).strftime("%Y-%m-%d")
return values
class DeribitFuturesHistoricalData(FuturesHistoricalData):
"""Deribit Futures Historical Data."""
volume_notional: float = Field(description="Trading volume in quote currency.")
class DeribitFuturesHistoricalFetcher(
Fetcher[DeribitFuturesHistoricalQueryParams, list[DeribitFuturesHistoricalData]]
):
"""Deribit Futures Historical Fetcher."""
@staticmethod
def transform_query(params: dict[str, Any]) -> DeribitFuturesHistoricalQueryParams:
"""Transform the query."""
return DeribitFuturesHistoricalQueryParams(**params)
@staticmethod
async def aextract_data(
query: DeribitFuturesHistoricalQueryParams,
credentials: Optional[dict[str, str]],
**kwargs: Any,
) -> list:
"""Extract the raw data."""
# pylint: disable=import-outside-toplevel
from openbb_deribit.utils.helpers import get_ohlc_data
symbols = query.symbol.split(",")
results: list = []
for symbol in symbols:
try:
data = await get_ohlc_data(
symbol=symbol,
interval=query.interval,
start_date=query.start_date,
end_date=query.end_date,
)
if data:
results.extend(data)
except OpenBBError as e:
raise e from e
if not results:
raise EmptyDataError("No data found.")
return sorted(results, key=lambda x: x["date"])
@staticmethod
def transform_data(
query: DeribitFuturesHistoricalQueryParams, data: list, **kwargs: Any
) -> list[DeribitFuturesHistoricalData]:
"""Transform the data."""
symbols = query.symbol.split(",")
if len(symbols) == 1:
results: list[DeribitFuturesHistoricalData] = []
for d in data:
_ = d.pop("symbol", None)
results.append(DeribitFuturesHistoricalData.model_validate(d))
return [DeribitFuturesHistoricalData.model_validate(d) for d in data]
return [DeribitFuturesHistoricalData.model_validate(d) for d in data]

View File

@@ -0,0 +1,224 @@
"""Deribit Futures Info Models."""
# pylint: disable=unused-argument
from datetime import datetime
from typing import Any, Literal, Optional
from openbb_core.provider.abstract.fetcher import Fetcher
from openbb_core.provider.standard_models.futures_info import (
FuturesInfoData,
FuturesInfoQueryParams,
)
from openbb_core.provider.utils.descriptions import (
DATA_DESCRIPTIONS,
QUERY_DESCRIPTIONS,
)
from pydantic import ConfigDict, Field, field_validator
class DeribitFuturesInfoQueryParams(FuturesInfoQueryParams):
"""Deribit Futures Instruments Query."""
__json_schema_extra__ = {
"symbol": {"multiple_items_allowed": True},
}
symbol: str = Field(
description=QUERY_DESCRIPTIONS.get("symbol", "")
+ " Perpetual contracts can be referenced by their currency pair - i.e, SOLUSDC"
+ " - or by their official Deribit symbol - i.e, SOL_USDC-PERPETUAL"
+ " For a list of currently available instruments, use `derivatives.futures.instruments()`"
)
@field_validator("symbol", mode="before", check_fields=False)
@classmethod
def _validate_symbol(cls, v):
"""Validate the symbol."""
# pylint: disable=import-outside-toplevel
from openbb_core.provider.utils.helpers import run_async
from openbb_deribit.utils.helpers import (
get_futures_symbols,
get_perpetual_symbols,
)
symbols = v.split(",")
new_symbols: list = []
perpetual_symbols = run_async(get_perpetual_symbols)
futures_symbols = run_async(get_futures_symbols)
all_symbols = futures_symbols + list(perpetual_symbols)
for s in symbols:
if s not in all_symbols:
raise ValueError(
f"Invalid symbol: {s}. Valid symbols are: {all_symbols}"
)
if s in perpetual_symbols:
new_symbols.append(perpetual_symbols[s])
else:
new_symbols.append(s)
return ",".join(new_symbols)
class DeribitFuturesInfoData(FuturesInfoData):
"""Deribit Futures Info Data."""
__alias_dict__ = {
"symbol": "instrument_name",
"change_percent": "price_change",
}
model_config = ConfigDict(extra="ignore")
symbol: str = Field(description=DATA_DESCRIPTIONS.get("symbol", ""))
state: Literal["open", "closed"] = Field(
description="The state of the order book. Possible values are open and closed."
)
open_interest: float = Field(
description="The total amount of outstanding contracts in the corresponding amount units."
)
index_price: float = Field(
description="Current index (reference) price",
json_schema_extra={"x-unit_measurement": "currency"},
)
best_ask_amount: Optional[float] = Field(
default=None,
description="It represents the requested order size of all best asks",
)
best_ask_price: Optional[float] = Field(
default=None,
description="The current best ask price, null if there aren't any asks",
json_schema_extra={"x-unit_measurement": "currency"},
)
best_bid_price: Optional[float] = Field(
default=None,
description="The current best bid price, null if there aren't any bids",
json_schema_extra={"x-unit_measurement": "currency"},
)
best_bid_amount: Optional[float] = Field(
default=None,
description="It represents the requested order size of all best bids",
)
last_price: Optional[float] = Field(
default=None,
description="The price for the last trade",
json_schema_extra={"x-unit_measurement": "currency"},
)
high: Optional[float] = Field(
default=None,
description="Highest price during 24h",
json_schema_extra={"x-unit_measurement": "currency"},
)
low: Optional[float] = Field(
default=None,
description="Lowest price during 24h",
json_schema_extra={"x-unit_measurement": "currency"},
)
change_percent: Optional[float] = Field(
default=None,
description="24-hour price change expressed as a percentage, null if there weren't any trades",
json_schema_extra={"x-unit_measurement": "percent", "x-frontend_multiply": 100},
)
volume: Optional[float] = Field(
default=None,
description="Volume during last 24h in base currency",
json_schema_extra={"x-unit_measurement": "currency"},
)
volume_usd: Optional[float] = Field(
default=None,
description="Volume in USD",
json_schema_extra={"x-unit_measurement": "currency"},
)
mark_price: float = Field(
description="The mark price for the instrument",
json_schema_extra={"x-unit_measurement": "currency"},
)
settlement_price: Optional[float] = Field(
default=None,
description="The settlement price for the instrument. Only when state = open",
json_schema_extra={"x-unit_measurement": "currency"},
)
delivery_price: Optional[float] = Field(
default=None,
description="The settlement price for the instrument. Only when state = closed.",
json_schema_extra={"x-unit_measurement": "currency"},
)
estimated_delivery_price: float = Field(
description="Estimated delivery price for the market.",
json_schema_extra={"x-unit_measurement": "currency"},
)
current_funding: Optional[float] = Field(
default=None,
description="Current funding (perpetual only)",
)
funding_8h: Optional[float] = Field(
default=None,
description="Funding 8h (perpetual only)",
)
interest_value: Optional[float] = Field(
default=None,
description="Value used to calculate realized_funding in positions (perpetual only)",
)
max_price: float = Field(
description="The maximum price for the future."
+ " Any buy orders submitted higher than this price, will be clamped to this maximum.",
json_schema_extra={"x-unit_measurement": "currency"},
)
min_price: float = Field(
description="The minimum price for the future."
+ " Any sell orders submitted lower than this price will be clamped to this minimum.",
json_schema_extra={"x-unit_measurement": "currency"},
)
timestamp: datetime = Field(description="The timestamp of the data.")
@field_validator("change_percent", mode="before", check_fields=False)
@classmethod
def _validate_change_percent(cls, v):
"""Validate the change percent."""
return v / 100 if v else v
class DeribitFuturesInfoFetcher(
Fetcher[DeribitFuturesInfoQueryParams, list[DeribitFuturesInfoData]]
):
"""Deribit Futures Info Fetcher."""
@staticmethod
def transform_query(params: dict[str, Any]) -> DeribitFuturesInfoQueryParams:
"""Transform the query."""
return DeribitFuturesInfoQueryParams(**params)
@staticmethod
async def aextract_data(
query: DeribitFuturesInfoQueryParams,
credentials: Optional[dict[str, str]],
**kwargs: Any,
) -> list:
"""Extract data from the response."""
# pylint: disable=import-outside-toplevel
import asyncio # noqa
from openbb_core.provider.utils.errors import EmptyDataError, OpenBBError
from openbb_deribit.utils.helpers import get_ticker_data
result: list = []
symbols = query.symbol.split(",")
try:
tasks = [get_ticker_data(symbol) for symbol in symbols]
for task in asyncio.as_completed(tasks, timeout=10):
result.append(await task)
except Exception as e: # pylint: disable=broad-except
raise OpenBBError(f"Error fetching data: {e}") from e
if not result:
raise EmptyDataError("No data found for the given symbol(s).")
return sorted(result, key=lambda x: symbols.index(x["instrument_name"]))
@staticmethod
def transform_data(
query: DeribitFuturesInfoQueryParams,
data: list,
**kwargs: Any,
) -> list[DeribitFuturesInfoData]:
"""Transform the data."""
return [DeribitFuturesInfoData(**d) for d in data]

View File

@@ -0,0 +1,133 @@
"""Deribit Futures Instruments Model."""
# pylint: disable=unused-argument
from datetime import datetime
from typing import Any, Optional
from openbb_core.app.model.abstract.error import OpenBBError
from openbb_core.provider.abstract.fetcher import Fetcher
from openbb_core.provider.standard_models.futures_instruments import (
FuturesInstrumentsData,
FuturesInstrumentsQueryParams,
)
from openbb_core.provider.utils.descriptions import DATA_DESCRIPTIONS
from pydantic import ConfigDict, Field, field_validator
class DeribitFuturesInstrumentsQueryParams(FuturesInstrumentsQueryParams):
"""Deribit Futures Instruments Query."""
class DeribitFuturesInstrumentData(FuturesInstrumentsData):
"""Deribit Futures Instrument Data."""
__alias_dict__ = {
"symbol": "instrument_name",
}
model_config = ConfigDict(extra="ignore")
instrument_id: int = Field(description="Deribit Instrument ID")
symbol: str = Field(description=DATA_DESCRIPTIONS.get("symbol", ""))
base_currency: str = Field(description="The underlying currency being traded.")
counter_currency: str = Field(description="Counter currency for the instrument.")
quote_currency: str = Field(
description="The currency in which the instrument prices are quoted."
)
settlement_currency: Optional[str] = Field(
default=None, description="Settlement currency for the instrument."
)
future_type: str = Field(description="Type of the instrument. linear or reversed")
settlement_period: Optional[str] = Field(
default=None, description="The settlement period."
)
price_index: str = Field(
description="Name of price index that is used for this instrument"
)
contract_size: float = Field(description="Contract size for instrument.")
is_active: bool = Field(
description="Indicates if the instrument can currently be traded."
)
creation_timestamp: datetime = Field(
description="The time when the instrument was first created (milliseconds since the UNIX epoch)."
)
expiration_timestamp: Optional[datetime] = Field(
default=None,
description="The time when the instrument will expire (milliseconds since the UNIX epoch).",
)
tick_size: float = Field(
description="Specifies minimal price change and, as follows, the number of decimal places for instrument prices."
)
min_trade_amount: float = Field(
description="Minimum amount for trading, in USD units."
)
max_leverage: int = Field(description="Maximal leverage for instrument.")
max_liquidation_commission: float = Field(
description="Maximal liquidation trade commission for instrument."
)
block_trade_commission: float = Field(
description="Block Trade commission for instrument."
)
block_trade_min_trade_amount: float = Field(
description="Minimum amount for block trading."
)
block_trade_tick_size: float = Field(
description="Specifies minimal price change for block trading."
)
maker_commission: Optional[float] = Field(
default=None, description="Maker commission for instrument."
)
taker_commission: Optional[float] = Field(
default=None, description="Taker commission for instrument."
)
@field_validator("expiration_timestamp", mode="before", check_fields=False)
@classmethod
def _validate_expiration(cls, v):
"""Validate the expiration timestamp."""
if int(v) == 32503708800000:
return None
return v
class DeribitFuturesInstrumentsFetcher(
Fetcher[DeribitFuturesInstrumentsQueryParams, list[DeribitFuturesInstrumentData]]
):
"""Deribit Futures Instruments Fetcher."""
@staticmethod
def transform_query(params: dict[str, Any]) -> DeribitFuturesInstrumentsQueryParams:
"""Transform the query."""
return DeribitFuturesInstrumentsQueryParams(**params)
@staticmethod
async def aextract_data(
query: DeribitFuturesInstrumentsQueryParams,
credentials: Optional[dict[str, str]],
**kwargs: Any,
) -> list:
"""Extract data from Deribit API."""
# pylint: disable=import-outside-toplevel
from openbb_deribit.utils.helpers import get_instruments
try:
data = await get_instruments("all", "future")
except Exception as e: # pylint: disable=broad-except
raise OpenBBError(f"Error fetching data: {e}") from e
if not data:
raise OpenBBError(
"There was an error with the request and it was returned empty."
)
return data
@staticmethod
def transform_data(
query: DeribitFuturesInstrumentsQueryParams,
data: list,
**kwargs: Any,
) -> list[DeribitFuturesInstrumentData]:
"""Transform the data."""
return [DeribitFuturesInstrumentData.model_validate(d) for d in data]

View File

@@ -1,6 +1,6 @@
"""Deribit Helpers Module."""
from typing import Literal, Optional
from typing import Literal, Optional, Union
from async_lru import alru_cache
from openbb_core.app.model.abstract.error import OpenBBError
@@ -11,13 +11,48 @@ CURRENCIES = ["BTC", "ETH", "USDC", "USDT", "EURR", "all"]
Currencies = Literal["BTC", "ETH", "USDC", "USDT", "EURR", "all"]
DERIVATIVE_TYPES = ["future", "option", "spot", "future_combo", "option_combo"]
DerivativeTypes = Literal["future", "option", "spot", "future_combo", "option_combo"]
DERIBIT_FUTURES_CURVE_SYMBOLS = ["BTC", "ETH", "PAXG"]
FuturesCurveSymbols = Literal["BTC", "ETH", "PAXG"]
BASE_URL = "https://www.deribit.com"
DERIBIT_INTERVALS = [
"1m",
"3m",
"5m",
"10m",
"15m",
"30m",
"1h",
"2h",
"3h",
"6h",
"12h",
"1d",
]
DeribitIntervals = Literal[
"1m", "3m", "5m", "10m", "15m", "30m", "1h", "2h", "3h", "6h", "12h", "1d"
]
INTERVAL_MAP = {
"1m": "1",
"3m": "3",
"5m": "5",
"10m": "10",
"15m": "15",
"30m": "30",
"1h": "60",
"2h": "120",
"3h": "180",
"6h": "360",
"12h": "720",
"1d": "1D",
}
@alru_cache(maxsize=64)
async def get_instruments(
currency: Currencies = "BTC",
derivative_type: Optional[DerivativeTypes] = None,
expired: bool = False,
) -> list[dict]:
"""
Get Deribit instruments.
@@ -51,6 +86,9 @@ async def get_instruments(
if derivative_type is not None:
url += f"&kind={derivative_type}"
if expired:
url += f"&expired={str(expired).lower()}"
try:
response = await amake_request(url)
return response.get("result", []) # type: ignore
@@ -67,7 +105,7 @@ async def get_options_symbols(symbol: OptionsSymbols = "BTC") -> dict:
Parameters
----------
symbol : OptionsSymbols
The underlying symbol to get options for. Default is "BTC".
The underlying symbol to get options for. Default is "btc".
Returns
-------
@@ -109,3 +147,256 @@ async def get_options_symbols(symbol: OptionsSymbols = "BTC") -> dict:
expirations[item[0]] = item[1]
return {k: [d for d in all_options if v in d] for k, v in expirations.items()}
async def get_futures_curve_symbols(symbol: FuturesCurveSymbols = "BTC") -> list[str]:
"""
Get a list of futures symbols for a given symbol.
Parameters
----------
symbol : FuturesCurveSymbols
The symbol to get futures symbols for.
Returns
-------
list[str]
A list of futures symbols.
"""
symbol = symbol.upper() # type: ignore
if symbol not in DERIBIT_FUTURES_CURVE_SYMBOLS:
raise ValueError(
f"Invalid Deribit symbol. Supported symbols are: {', '.join(DERIBIT_FUTURES_CURVE_SYMBOLS)}",
)
currency = "USDC" if symbol == "PAXG" else symbol
instruments = await get_instruments(currency, "future")
symbols: list = []
for d in instruments:
ins_name = d.get("instrument_name", "")
if ins_name.startswith(symbol):
symbols.append(ins_name)
return symbols
async def get_ticker_data(symbol: str) -> dict:
"""
Get ticker data.
Parameters
----------
symbol : str
The symbol to get ticker data for.
Returns
-------
dict
The ticker data.
"""
# pylint: disable=import-outside-toplevel
from openbb_core.provider.utils.helpers import amake_request
url = f"{BASE_URL}/api/v2/public/ticker?instrument_name={symbol}"
try:
response = await amake_request(url)
if response.get("error"):
raise OpenBBError(response.get("error"))
data = response.get("result", {})
stats = data.pop("stats", {})
return {**data, **stats}
except Exception as e: # pylint: disable=broad-except
raise OpenBBError(f"Failed to get ticker data -> {e}: {e.args[0]}") from e
async def get_perpetual_symbols() -> dict:
"""
Get perpetual symbols.
Returns
-------
dict
A dictionary of short symbols to full perpetual symbols.
"""
instruments = await get_instruments("all", "future")
return {
d["instrument_name"].split("-")[0].replace("_", ""): d["instrument_name"]
for d in instruments
if d.get("settlement_period") == "perpetual"
}
async def get_ohlc_data(
symbol: str, start_date: str, end_date: str, interval: DeribitIntervals = "1d"
) -> list[dict]:
"""Get OHLC data for a given symbol. Enter dates in the format 'YYYY-MM-DD'."""
# pylint: disable=import-outside-toplevel
import asyncio # noqa
from openbb_core.provider.utils.errors import EmptyDataError
from openbb_core.provider.utils.helpers import amake_request
from pandas import DataFrame, date_range, to_datetime
new_interval = INTERVAL_MAP.get(interval, interval)
all_instruments = await get_instruments("all", None)
all_symbols = {
d.get("instrument_name"): d.get("creation_timestamp") for d in all_instruments
}
creation_date = all_symbols.get(symbol, 0)
use_start = to_datetime(start_date).timestamp() * 1000 > creation_date
if creation_date == 0:
raise ValueError(f"Symbol {symbol} not found")
def generate_urls(symbol, start_date, end_date, interval, window_size=5000):
"""Generate urls for historical data breaking it down into requests of length window_size."""
interval_period = f"{interval}min" if interval.lower() != "1d" else "1d"
interval = "1D" if interval.lower() == "1d" else interval
dates = date_range(
start=start_date if use_start else creation_date,
end=end_date,
freq=interval_period,
)
windows = [
(dates[i], dates[min(i + window_size, len(dates) - 1)])
for i in range(0, len(dates), window_size)
]
urls: list = []
for start, end in windows:
start_timestamp = int(start.timestamp() * 1000)
end_timestamp = int(end.timestamp() * 1000)
url = (
"https://www.deribit.com/api/v2/public/get_tradingview_chart_data?"
f"instrument_name={symbol}&start_timestamp={start_timestamp}&"
f"end_timestamp={end_timestamp}&resolution={interval}"
)
urls.append(url)
return urls
results: list = []
async def get_one(url):
"""Get data from one url."""
json_response = await amake_request(url)
if json_response.get("error"):
raise ValueError(json_response["error"])
if json_response.get("result"):
result = json_response["result"]
df = DataFrame(result)
df = (
df.drop(columns=["status"])
.rename(columns={"ticks": "date", "cost": "volume_notional"})
.convert_dtypes()
)
df.date = to_datetime(df.date, unit="ms", origin="unix", utc=True)
if interval == "1D":
df.date = df.date.dt.date
df.loc[:, "symbol"] = symbol
results.extend(
df[
[
"date",
"symbol",
"open",
"high",
"low",
"close",
"volume",
"volume_notional",
]
].to_dict(orient="records")
)
urls = generate_urls(symbol, start_date, end_date, new_interval)
if len(urls) > 15:
raise OpenBBError(
"The request is too large. Break up the request into smaller chunks."
)
tasks = [get_one(url) for url in urls]
await asyncio.gather(*tasks, return_exceptions=True)
if results:
return sorted(results, key=lambda x: x["date"])
raise EmptyDataError("No data found for the given symbol and dates.")
async def check_ohlc_symbol(symbol: str) -> Union[bool, str]:
"""
Check if the symbol has OHLC data.
Parameters
----------
symbol : str
The symbol to check.
Returns
-------
bool
True if the symbol has OHLC data, False otherwise.
"""
all_instruments = await get_instruments("all", None)
all_symbols = {
d.get("instrument_name", ""): d.get("creation_timestamp")
for d in all_instruments
}
all_perpetuals = await get_perpetual_symbols()
if symbol in all_perpetuals:
return all_perpetuals.get(symbol, False)
if symbol in all_symbols:
return symbol
return False
async def get_futures_symbols() -> list:
"""
Get futures symbols.
Returns
-------
list
A list of futures symbols.
"""
instruments = await get_instruments("all", "future")
return [d["instrument_name"] for d in instruments]
async def get_futures_curve_by_hours_ago(symbol, hours):
"""Get futures curve N hours ago."""
# pylint: disable=import-outside-toplevel
import asyncio # noqa
from datetime import datetime, timedelta
symbols = await get_futures_curve_symbols(symbol)
now = datetime.now().replace(microsecond=0, second=0)
if hours < 24:
start = (now - timedelta(days=1)).strftime("%Y-%m-%d")
else:
start = (now - timedelta(hours=hours)).strftime("%Y-%m-%d")
end = (now + timedelta(days=2)).strftime("%Y-%m-%d")
results: list = []
async def get_one(s):
"""Get data for one symbol."""
data = await get_ohlc_data(s, start, end, "1h")
result = {
"instrument_name": data[-1 - hours]["symbol"],
"hours_ago": hours,
"last_price": data[-1 - hours]["close"],
}
results.append(result)
tasks = [get_one(s) for s in symbols]
await asyncio.gather(*tasks, return_exceptions=True)
return results

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,528 @@
interactions:
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/get_instruments?currency=BTC&expired=false&kind=future
response:
body:
string: !!binary |
H4sIAAAAAAAAA+2Y30/bMBDH/xc/B2Q7Tuz0rdBOGtoPBPRpQlGaXjevzQ9sh8EQ//subdkoJRoP
yGVT8pTc1z7fXT7yObkj321VmjonA8IPKQmIAdssHRl8uSO10TmkupzBDcpTl6eNnbVD5ldkMM+W
FgKyQBnFeeMaA6gVukydyWaQZkXVlOiI0UMaEG3TLHf6GsjAmQYn6tLiTQGlS8usQDM5ujg+YPRk
+IlHraNsASbNq6LQ1uqqJIMDdEQpC4jbkVZKtOXU3datUwPXYCy0YcNNrU3mcELqdAHWZUWN4ckw
FklMV1dA8qrE8HOXWv0THoJ3Ol9sDPwQl5kuKzSs03yk4ViMbppZSPPGGCjz23VaZCsyjQUTTMg4
xuUMPBdRxFUsWLKKyIJzS1jNrMHoqi33D4AFOl1X/ZlUi+wmXbaP2dc25mhj0VeNnq3Xe1o9+SSt
xzrmDAdiW999z3xTwUfx7lQhb4e27+6PMDkfoXDVVA52zb+Lm1oHtUUqL++D/YAp9wCmZJQq32DG
STu4C0yVMM54D+abATNk3WCuGXllKFXIqPALZZjgpTqhxM1ScqY6oSwwym89lT6p5Ord+MgjlYJK
vmnifnt4N5V/6+E9lXug8uPwzCeVIRPKcwMPaSJp0kUlw/aecN7dwHsq/VMpTyY+O3jEKGPcM5UC
1406qUyimMVM9FS+ISrj8/GpTyqVwi9xz1Ti2VF0dnAuBRe0P1e+LSpH42OPVMbxA5Sez5WyP1f+
O1Sejs9OxxeT4QdPXIY8oqGkLz5a0tcBkzOqwq7tMgpxt+RcyU4w8aYG12TLl8MZ0f8JzsuANPZ9
uf7nzLhIKMeSUspb++fGPRGYilthpOdzVBSm4bDaJbgNxve/AJzKofa9FwAA
headers:
Access-Control-Allow-Headers:
- Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
Access-Control-Allow-Methods:
- GET, POST, OPTIONS
Access-Control-Allow-Origin:
- '*'
Cache-Control:
- no-store
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Length:
- '672'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 00:55:02 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
Vary:
- Origin,Authorization,Partner
- accept-encoding
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/ticker?instrument_name=BTC-10JAN25
response:
body:
string: !!binary |
H4sIAAAAAAAAA2VRy1LDMAz8F51DRrbzcm48LnCAC/eM27itwXEysVNgOv135BTSFnzTrnZXkg/w
5ns3DmuogacICYzaTzZAfYBgOu2D6gaoWSkKxjOJvBRZAoQGTYp+0A5OpY+KndnuoJYSizzFBGz/
QVWZszLNExhGs9bNeqfclrSYIkeRwL63U0d1VaS8krks+QI2k2+JyKpSSIx+P7Drg+mdshfcMQHj
Wv3ZzCEUWvFCpCKiPowkcqFxKubA3ev9DcOn22ee0+hW+XAW5WLO8ToEq2fRmUKeVmTYGbeAJQoe
N+vUOZje7BFP0xgXNN2Trsk5ZlJmGJvH9wtbhmlVJLCirkb5K2b2nomVaa8l5EO46egb2qbV1uz1
+PVv+cVUdf3k4hRVns3ixfWXYViw0x0n/+iuPjxjKLOIv0zhDyFQRuLBbDZkzmjcQMZOU99GWa+P
395bfrBfAgAA
headers:
Access-Control-Allow-Headers:
- Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
Access-Control-Allow-Methods:
- GET, POST, OPTIONS
Access-Control-Allow-Origin:
- '*'
Cache-Control:
- no-store
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Length:
- '351'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 00:55:02 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
Vary:
- Origin,Authorization,Partner
- accept-encoding
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/ticker?instrument_name=BTC-PERPETUAL
response:
body:
string: !!binary |
H4sIAAAAAAAAA2VSy07DMBD8lz2HyHZsx+mNRw9ISFSonCPTuK3BcarYLiDEv7NOS6Fw3Jkd7+ys
P+A5DH7crWAGrCRQwGhCchFmHxBtb0LU/Q5mtK4kZbwhrK6aAhCNBhXDzng4lCErtnazhVmjlCAl
KcANr1jVTE3VbrQr06622m9Qi1AlZAH7waUea8YkLylpuFDNCW5T6DLFCBOiml45En6IdvDanbGf
BVjfmbd2GpWNMFmVVUZDHFHmY+t1ngZXy+uLxfxhMV8+Xt7hCk6H+Eum6lLgXiZGZybZDyUwJuR6
60+gVLTK3nr9M7qpJctYjqi1PhrMFVOlFPdDkk/t48v5TC6y10Nvu9cuHYOiRBHFlcRcJasVK+Ap
d+hwpld53kQ82e7fMojbHs/WtZ1xdm/G938xnR7V/ZA8umWU88MpT89+U7KUBiWrNI45n3XynfWb
yW4Bx6pV+BtUSZk0FwKPk8KtP/tLnFLaZPw+xT9ExWgmbux6jT4IrhzRgjfYt9YumM8vHVcPAroC
AAA=
headers:
Access-Control-Allow-Headers:
- Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
Access-Control-Allow-Methods:
- GET, POST, OPTIONS
Access-Control-Allow-Origin:
- '*'
Cache-Control:
- no-store
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Length:
- '401'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 00:55:02 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
Vary:
- Origin,Authorization,Partner
- accept-encoding
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/ticker?instrument_name=BTC-31JAN25
response:
body:
string: !!binary |
H4sIAAAAAAAAA2VRy3KDIBT9l7s2DA8VcdfHpl20m+4dEklCi+gIpu1k8u+9mMZJ2o0j59zz4HKE
99D7cdhADZxQyGA0YXIR6iNE25kQdTdAzaQoGc8V5fiTAaLRoKIfjIfzMSTF3u72UCsluSRFBq7/
xFPFVEFoBsNoN6bZ7LXfoXZFCRWFyODQu6lDIJekopLmvMovYDOFNhGC5jlNFr+w76PtvXZX3CkD
61vz1cwpKZWXgoiEhjiiyMfG65QD928PK8Ge7154gd2dDnERKc7mqsHE6MwsWiimBJE8g876BZSS
z706vQQzQqk0ePm0m8b6aHChuE6Wy5IXgs7T48dVJFVEoe8axxodbpi5zEysbbsQOG5wRwjbDt+h
bVrj7MGM3/8uv3jqrp88tpC8pDeeF4LlpTivcQpP/ubBCy5plfDXKf4h8JuIR7vdIqOwVERjb3Bu
q10wpx+MwXpJXwIAAA==
headers:
Access-Control-Allow-Headers:
- Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
Access-Control-Allow-Methods:
- GET, POST, OPTIONS
Access-Control-Allow-Origin:
- '*'
Cache-Control:
- no-store
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Length:
- '355'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 00:55:02 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
Vary:
- Origin,Authorization,Partner
- accept-encoding
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/ticker?instrument_name=BTC-28MAR25
response:
body:
string: !!binary |
H4sIAAAAAAAAA2VRyU7DMBD9F59Ty2sS51bgwgEhIe6R27itwXGi2ClFVf+dcWhDSyVf5i0z4zdH
9BE6P/RrVCGGCcrQYMLoIqqOKNrWhKjbHlW04DllQhFWCJkhQKMBR9cbj37LkBw7u92BmFDJCww6
132lkhA5lf1g16Ze77TfgntBMBWkzNC+c2MLAKMKSyEUL0l+QesxNMAwWhBKCSYz7rtoO6/dNXnK
kPWNOdTTIFSpkuUc84SGOIDLx9rrNAo9vD8uWPmyfGMSPuB0iBcTbE/EtG4wMTozua64gmIFLVvr
5zFYSSMA0oc/IZNcpnVTRLX10UCukKpgeV5KUpIkHz6vG1MYCo1XoKt1uKPOzMo2N8w0BAjbwkma
ujHO7s3wfRfB3Fa33ehjShu2SOa57YUR/BzmGJ79ze0lPJHw1zH+I1T60hie7GaTTgIHjNDXG9Bt
tAvm9AN3pHxTagIAAA==
headers:
Access-Control-Allow-Headers:
- Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
Access-Control-Allow-Methods:
- GET, POST, OPTIONS
Access-Control-Allow-Origin:
- '*'
Cache-Control:
- no-store
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Length:
- '355'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 00:55:02 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
Vary:
- Origin,Authorization,Partner
- accept-encoding
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/ticker?instrument_name=BTC-17JAN25
response:
body:
string: !!binary |
H4sIAAAAAAAAA2VRuXKDMBD9l60JowMkoMvRJEXSpNfIRjZKhGCQcJLx+N+zwmMHTwoV+449no7w
EQY/jVtogOUEMphMmF2E5gjR9iZE3Y/QUMkFZUVN8IkMEI0GHcNoPJzLkByd3XfQ1DUrSU4ycMMX
VlIWZarGyW6N2nba79G7CA6Dm3ssOM9JXXEiygum5tAizkQhi5VU+SHawWu34k4ZWN+ab7UMwIEV
EzznCQ1xQpOPyus0Bh7eH++ofLl/ZSWu7XSIfybJZI7jg4nRmcW0ojAamkFv/RWUrFj0vb4OpoQw
yhKYclHWR4NhYpSCVZTXJImnz3XbOpe45wZFSoc1w5ebF2Jj29tNsD/itscvaFVrnD2Y6eff8dem
uh9mj0swWt42vRClOIc4h2e//mlZsoqLhL/N8ZbghMpEPNndDpkKs4nY1hvU7bQL5vQLMMZctVgC
AAA=
headers:
Access-Control-Allow-Headers:
- Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
Access-Control-Allow-Methods:
- GET, POST, OPTIONS
Access-Control-Allow-Origin:
- '*'
Cache-Control:
- no-store
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Length:
- '344'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 00:55:02 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
Vary:
- Origin,Authorization,Partner
- accept-encoding
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/ticker?instrument_name=BTC-26SEP25
response:
body:
string: !!binary |
H4sIAAAAAAAAA2VRy07DMBD8lz2nke34kfTI48AJJLhHbuO2BseJYqcUVf131mlLAxw9szM7nj3C
e+j80K9hCSwnkMFgwugiLI8QbWtC1G0PS6oKSRmvCCuIzADRaFDR9cbD+RmSYme3OxwmipYsFxm4
7jM9hRQkJxn0g12ber3TfovqBWKC4tS+c2OLABN5RZUUtJJXsB5Dg4SShJ8tLrDvou28djPulIH1
jTnU0xZYViWTRV4kNMQBRT7WXqc9cPd2v2Dy9fGFCUzvdIhXESVSUZEWBROjM5Pqxkl0pGUGrfU3
VJBSpc+2+nADS1ZNeVNDtfXRYK1YKi245FxxksaHj7k1mpSYdoVztQ5/KXFhVrb5lWeqGQnb4kWa
ujHO7s3w9a+EH1vddqPHJCynppiZXnF6rnIMT35+diWYrIqEP4/xD1FylogHu9kgw6sMIrp6g3Mb
7YI5fQOBB4bEZQIAAA==
headers:
Access-Control-Allow-Headers:
- Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
Access-Control-Allow-Methods:
- GET, POST, OPTIONS
Access-Control-Allow-Origin:
- '*'
Cache-Control:
- no-store
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Length:
- '355'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 00:55:02 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
Vary:
- Origin,Authorization,Partner
- accept-encoding
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/ticker?instrument_name=BTC-26DEC25
response:
body:
string: !!binary |
H4sIAAAAAAAAA2VRwXKDIBT8l3c2joKKeGzSQ0+99O6QSBJaQEcwbSeTf++DxNS0M17Y3bf73nqG
d9fbcdhBAyTNIIFRukl7aM7glZHOCzNAkzNa5aTgGaFZlQCiXuJEP0gL16cLE0d1OKI44zXP0iwB
3X+GZ00zkpYJDKPayXZ3FPaA0yuUkOB26vVkEKB5WlFeMF6UM9hOrkOiKAtSRMcbbHuveiv0grsk
oGwnv9qYAg2vSUVTGlDnRxyyvrUi5MDT23pFqs3zmpS4vRbOz0O4OuFlCHLSey3j1IKreEoSMMr+
gqy63mrEPTpHKYsXh4JaZb3EVn2okbGCk6gePxbGFG9ndQJblLXCPVAk7hOZreoeNo3BSCiD/6Nr
O6nVSY7f/yq42wrTTxYXubV5N51xjJIUm5zci13+dVbixwL+Ovk/BKYEYqP2ezQmeLVHWytRtxfa
ycsPJLJ86WQCAAA=
headers:
Access-Control-Allow-Headers:
- Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
Access-Control-Allow-Methods:
- GET, POST, OPTIONS
Access-Control-Allow-Origin:
- '*'
Cache-Control:
- no-store
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Length:
- '353'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 00:55:02 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
Vary:
- Origin,Authorization,Partner
- accept-encoding
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/ticker?instrument_name=BTC-28FEB25
response:
body:
string: !!binary |
H4sIAAAAAAAAA2VRyW6DMBD9lzlTywvGgWO6SD310jtygpO4NQZhk6aK8u8dEyUB9ei3zLx5PsNX
6PzQb6ECTihkMJgwugjVGaJtTYi67aFiShSM5yXlgosMEI0GHV1vPFyfITkOdn9AMaWFVERm4Lof
qMqSienVD3Zr6u1B+z2anyihqlxlcOzc2CLAOJEyl1LRO1iPoUmEVEyh/A77LtrOazfjLhlY35hT
PW3BrSteCCISGuKAJh9rr9MeWH8+P/HV2+uaSwzvdIg3EyZnfMoaTIzOTK45J0mRZ9Ba/1hTXI9r
9emhZEUuU9zUT219NFgqVsql4EoomtTD93xwzgjFrBuU1TosKDkdPjEb2yxM02IkbIvf0dSNcfZo
ht9/FdzH6rYbfQpCVbEce2MwtsmxyzG8+/m3K8lLzhP+McYlIVipEvFidzscrTBTxLHeoG6nXTCX
P4lKSENlAgAA
headers:
Access-Control-Allow-Headers:
- Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
Access-Control-Allow-Methods:
- GET, POST, OPTIONS
Access-Control-Allow-Origin:
- '*'
Cache-Control:
- no-store
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Length:
- '351'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 00:55:02 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
Vary:
- Origin,Authorization,Partner
- accept-encoding
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/ticker?instrument_name=BTC-27JUN25
response:
body:
string: !!binary |
H4sIAAAAAAAAA2VRy1LDMAz8F52Dx484TnIELnCAC5wzbuO2BsfJxE4p0+m/I6fTNh2O2tWupNUR
vkLvx2ENNXBCIYPRhMlFqI8QbWdC1N0ANVOiYDyvKJeKZYBoNKjoB+PhXIak2NntDptpXghOZAau
/0ml4Hwuh9GuTbPeab9F9QMljHGVwb53U4dAKQkVgpVCiAvYTKFFopSsUpTQK+z7aHuv3YI7ZWB9
aw7NPAXqquSFICKhIY4o8rHxOs2Bx4+nB65eP9+4xO2dDvEiwtVZIdOgYGJ0ZlYtOClJhZad9TcU
I5lX6/ThBsqiUunklFBjfTQYK4bKMUjOSz63j99LayFImWewwr5Ghzsqn/1nZmXbO9E8BAnb4Ufa
pjXO7s34+y+Eq63u+smnTWSh7m0vDP7uHOcUXvzy9UrySsmEv0/xnhCS0UQ8280GaiwziOjrDfZt
tAvm9Ac5r1NEaQIAAA==
headers:
Access-Control-Allow-Headers:
- Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
Access-Control-Allow-Methods:
- GET, POST, OPTIONS
Access-Control-Allow-Origin:
- '*'
Cache-Control:
- no-store
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Length:
- '355'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 00:55:02 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
Vary:
- Origin,Authorization,Partner
- accept-encoding
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
version: 1

View File

@@ -0,0 +1,528 @@
interactions:
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/get_instruments?currency=BTC&expired=false&kind=future
response:
body:
string: !!binary |
H4sIAAAAAAAAA+2Y30/bMBDH/xc/B2Q7ju30DWgnDe0H4sfThKI0vW5emx/YDoMh/vdd2rIBJRoP
yLApeUrva5/P5498l96Q766ubFOQEeG7lETEgmuXnoy+3JDGmgIyU83gCuWpL7LWzboh8wsymudL
BxFZoIzivPWtBdRKU2Xe5jPI8rJuK3TE6C6NiHFZXnhzCWTkbYsTTeXwpYTKZ1Veopnsnx7sMHq4
94knnaN8ATYr6rI0zpm6IqMddEQpi4jfklZK8sCpv246pxYuwTrowoarxtjc44TMmxKcz8sGw1Ox
FKmkqyciRV1h+IXPnPkJd8F7Uyw2Br6Ly0yXNRrW27yn4ViMbpo7yIrWWqiK6/W2yIPIDCZMMKGk
xOUsPBVRwrUULF1F5MD7JaxmNmBN3aX7B8ACna6z/sRWy/wqW3Y/869dzMnGYi5aM1uv9zh76tG2
7uu4Z9gRD/Xtc+abDN6LdysLRTe0O7s/wtnJGIWLtvawbf6d3Mx5aBxSeX4bvQ6Y6hXAVIxSHRpM
mXaD+8DUKeOMD2C+GTBj1g/mmpEXhlLHjIqwUMYpProXSrwsFWe6F8oSo/w2UBmSSq7fTfYDUimo
4psiHraG91P5txo+UPkKVH7cOw5JZcyEDlzAY5oqmvZRybC8p5z3F/CByvBUqsOzkBU8YZQxHphK
gesmvVSmiWSSiYHKN0SlPJkchaRSa/wSD0wl9o6it4JzJbigQ1/5tqgcTw4CUinlHZSB+0o19JX/
DpVHk+OjyenZ3odAXMY8obGiz24t6cuAyRnVcd91mcR4W3KuVS+Y+NKAb/Pl8+FM6P8E53lEWve+
Wv/nzLhQiRSJ1Jx19s+tfySkYiWMzXyOCu+OFLNdgd9gfPsLcvm6kb0XAAA=
headers:
Access-Control-Allow-Headers:
- Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
Access-Control-Allow-Methods:
- GET, POST, OPTIONS
Access-Control-Allow-Origin:
- '*'
Cache-Control:
- no-store
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Length:
- '671'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 00:52:36 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
Vary:
- Origin,Authorization,Partner
- accept-encoding
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/ticker?instrument_name=BTC-17JAN25
response:
body:
string: !!binary |
H4sIAAAAAAAAA2VRu3LDIBD8l6sVBhASlro8mqRImvQabJ1tEoQ0AjnJePzvOZSxbE/K273dPZYj
fITej8MGapCMQwYjhslFqI8QbYchmm6AWui8FFLpQgsuMyA0Iin6AT38jSEp9na3h7qqZMEZz8D1
XzRprYo0DaPdYLPZG78j7R1tKF5kcOjd1BGQ54xXuuIiF2ewmUJLBJOl0lguqO+j7b1xF+qUgfUt
fjdzBmWupCiYUgkOcSSRj403KQYe3h/vhH65f5UFne5MiBdVudKMTgoYo8NZtFBaUj10WWf9AjIt
kTI6swQLzkUpk0eqprE+IvVJbZZyJVTO0/L4eR3IWUGua1pqTLhiNJ9Lm4m1ba8k1dwt4bajX2ib
Fp094Pjz//GLq+n6ydMVuSz5jeuZEExhTi1O4dnf/LZeVZwn/G2Kt0Ql0u9N4clut1DLNESy9Uh7
W+MCnn4Boe+AJVwCAAA=
headers:
Access-Control-Allow-Headers:
- Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
Access-Control-Allow-Methods:
- GET, POST, OPTIONS
Access-Control-Allow-Origin:
- '*'
Cache-Control:
- no-store
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Length:
- '356'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 00:52:37 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
Vary:
- Origin,Authorization,Partner
- accept-encoding
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/ticker?instrument_name=BTC-28FEB25
response:
body:
string: !!binary |
H4sIAAAAAAAAA2VSyW7DIBD9lzm7FmBjjI/pIvXUS+8WiUlCi7FlcJoqyr93IEriqNx424wenODL
D24aN9AAywlkMGk/2wDNCYLptQ+qH6GhoqgoKwUXtKIZIBo0OoZRO7hcfXTszW6PYkIqLnKegR1+
oJGSFuk2Tmaj281euR2an0hOZFlncBjs3CNAWc7jKevqCraz7yLBBRMov8FuCGZwyi64cwbGdfrY
pik4tWaU52UZYR8mdLnQOhUHwerz+YnVb68rxnF7q3y4unB1ytKyXodgdXItOZ5XGNkbd5/DBY+r
9ep4V1IuUkosqDUuaGwVO2W8YKIQST19L4KJqHLGMlijrFX+gZIsJiVmbbolUycGCdPje3Rtp605
6On3fwe3XNUPs8NNCiZTobfYKyFremlz9u/u4eFFLUkR8Y85PBKS8DISL2a7RYbjDwmY6zTqtsp6
ff4DhydV1GcCAAA=
headers:
Access-Control-Allow-Headers:
- Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
Access-Control-Allow-Methods:
- GET, POST, OPTIONS
Access-Control-Allow-Origin:
- '*'
Cache-Control:
- no-store
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Length:
- '353'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 00:52:37 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
Vary:
- Origin,Authorization,Partner
- accept-encoding
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/ticker?instrument_name=BTC-10JAN25
response:
body:
string: !!binary |
H4sIAAAAAAAAA2VRy1LDMAz8F51Tj+3YsZ0bjwsc4MI94zZua0icTOwUmE7/HSVAmoGjdrVarXSG
19iFod9BCZxQyGBwcWwSlGdIvnUx2baHkqm8YFwoqZg2GSCaHCq63gX4LuOkOPrDEUpjaCEJzaDp
3rFSkikiM+gHv3PV7mjDAbUbSiineQanrhlbBHRBuMmZMGYBqzHWSAitlKDTwB84dMl3wTYr7pKB
D7X7qGYXdNWcSSLEBMc0oCqkKtjJCG5f7jaMPt48cYnLNzamq0qY2Si6lBo3ixZKUk407tb6sICF
0XO21l6djRFz+uk4lQ/J4UXxnpxTzCbo1Dy8rRyLgjCdwRa7KhvXjJ53mYmtr1eEmg0Q9y0+oq5q
1/iTGz7/p1+m2rYbA65REOny1dBfnBEmnMAzjvEhrB/OmeKUTfjzmP4QQuQTce/3ewwoeAYJ5waH
fXvbRHf5AqMF+TpfAgAA
headers:
Access-Control-Allow-Headers:
- Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
Access-Control-Allow-Methods:
- GET, POST, OPTIONS
Access-Control-Allow-Origin:
- '*'
Cache-Control:
- no-store
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Length:
- '357'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 00:52:37 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
Vary:
- Origin,Authorization,Partner
- accept-encoding
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/ticker?instrument_name=BTC-26SEP25
response:
body:
string: !!binary |
H4sIAAAAAAAAA2VRS3PCIBD+L3uODBAgicc+Dj21M+09gwaVlpBMINaO43/vEqvG6XG/F8u3R/gM
nR/6NSyBEwoZDCaMLsLyCNG2JkTd9rBkRa4YF4UsWFllgGg06Oh64+E8huTY2e0OxRRVnMgMXPed
RqkkJTSDfrBrU6932m/RvUBMMlTtOze2CHBJKlYoySp1AesxNEgUiopzxB/su2g7r92MO2VgfWMO
9fQKLKuSM0mESHCIA7p8rL1OD8HDx+OCq/fnNy5xfadDvLgYVQXa8KVgYnRmct04pXLCygxa62+o
pGL6basPN7DkYopJFdXWR4O9YqssF0qIQtAkH77m0SInWO0KZbUOd4wsUvzErGwzZ86rImFbvEhT
N8bZvRl+/pdwzdVtN3rcJOfV1Og19kIwQo3ANsfw4ueX55xXkib8dYz3RM5klYgnu9ngSSgOEWO9
Qd1Gu2BOv3IS2hpoAgAA
headers:
Access-Control-Allow-Headers:
- Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
Access-Control-Allow-Methods:
- GET, POST, OPTIONS
Access-Control-Allow-Origin:
- '*'
Cache-Control:
- no-store
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Length:
- '357'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 00:52:37 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
Vary:
- Origin,Authorization,Partner
- accept-encoding
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/ticker?instrument_name=BTC-27JUN25
response:
body:
string: !!binary |
H4sIAAAAAAAAA2VRTVPDIBD9L5xTBjYhIT2qFz3oRc8Z2tAWJSQTSK3T6X93obapetz3sW/n7ZG8
+96Nw5osCVBGMjJqP9lAlkcSTKd9UN1AlrzKSw5FJSou64wgGjQ6+kE7ch59dOzMdodiVpQ5UJER
23/GMQdI4zCatW7WO+W26F4wyiVARva9nToEZEFrKYXkBb+AzeRbJGRR5Tmj7Aq7PpjeKXvDnTJi
XKsPTUohy1oCF7QoIuzDiC4XGqdiELl7vV9A9fT2DALPt8qHiwtvZ1LEJK9DsDq5Zo4LQes8I51x
MwoCkqNThxkUpUgHx4oa44LGXrFVwCY5MJHk48ev2JJKXL1CXaP8TFGM1eKHWJn21lOnDCRMhx9p
m1Zbs9fj1/8SrmtV108uXoIfTe7r3gtTQnXuc/KP7vb3ADljZcRfpvCH4DVE4sFsNshIVAXc6zTq
Nsp6ffoGy3fWDmoCAAA=
headers:
Access-Control-Allow-Headers:
- Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
Access-Control-Allow-Methods:
- GET, POST, OPTIONS
Access-Control-Allow-Origin:
- '*'
Cache-Control:
- no-store
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Length:
- '356'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 00:52:37 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
Vary:
- Origin,Authorization,Partner
- accept-encoding
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/ticker?instrument_name=BTC-26DEC25
response:
body:
string: !!binary |
H4sIAAAAAAAAA2VRu3KDMBD8l6uxRuiBgDJ2ilRp0jOykW05QjBIOMl4/O854dhhklK7t7u6vQuc
Qu/HYQc1MEIhg9GEyUWoLxBtZ0LU3QB1rniRM6FkoSqZAaLRoKIfjIfbMyTF0R6OOEyrsqKEZuD6
j/QsOWUEZcNod6bZHbU/oHpFSc6kyuDcu6lDgOekEDmOy+oONlNokRBSCDY7/sC+j7b32i24awbW
t+azmVOgrkqWSyJEgkMcUeVj43UKgqe39YoVm+c1k/h9p0O8q/DvTMqUFEyMzsyqBVdUhGXQWf8L
qkLM23X6kZ3PNsklNdRYHw3WGlOPSomK0TQ9vi+NS05KXHuLY40OSwo3TE4zs7XtUsRVCkbCdniQ
tmmNs2czfv3v4OGru37yMZV9O9HD9k5gmOFY5hRe/OLwijFOuUj46xT/EIwWidjY/T4x2FBEW29w
bq9dMNdvYSt3zWcCAAA=
headers:
Access-Control-Allow-Headers:
- Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
Access-Control-Allow-Methods:
- GET, POST, OPTIONS
Access-Control-Allow-Origin:
- '*'
Cache-Control:
- no-store
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Length:
- '356'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 00:52:37 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
Vary:
- Origin,Authorization,Partner
- accept-encoding
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/ticker?instrument_name=BTC-PERPETUAL
response:
body:
string: !!binary |
H4sIAAAAAAAAA2VSy27bMBD8F55lgcuHSPmWNDkUKJCgSM8CY9E2G4oyRNJpEeTfu2RSx06OO7Oz
OzvkC/kd57AcNmRNWEtJQxYbs09k/UKSm2xMZjqQNSjeARNKKsZ4QxBNFhXzwQbyVsai2Lvdnqx7
rSVtaUP8/IyVYrpWh8Vt7LDZm7BD7QoxzqEhx9nnCQHGOmip6noBoP7DQ45joUAxJaGOeSfCnNwc
jL9gXxviwmj/DHVXccJAtkIUOKYFdSENwZR15Prh2+r+9uf97cOvqx94hDcxnemEbCVeZlPytso+
KIlBITe5cAI7JXUxN5mP3b2idUYJaXAhWUwWcwWQPUNfrLYvT2eDObSdKl7feoej8RmZkhRQpXoF
nILWVHS6IY+lw8RzveiKh0o8uvHLMYi7CR9uHEbr3dEuf7/mdJpqpjmHYpcLEPRi7omCvhKbvCwl
oW0Oowu7argh79Wg8UfoFjjYlcT3yfF7uPxPWoi+4Hc5fSI6rgpx47ZbZDQendBDsNi3NT7a138K
i9jIvgIAAA==
headers:
Access-Control-Allow-Headers:
- Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
Access-Control-Allow-Methods:
- GET, POST, OPTIONS
Access-Control-Allow-Origin:
- '*'
Cache-Control:
- no-store
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Length:
- '406'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 00:52:37 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
Vary:
- Origin,Authorization,Partner
- accept-encoding
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/ticker?instrument_name=BTC-28MAR25
response:
body:
string: !!binary |
H4sIAAAAAAAAA2VSyW7DIBD9lzm7CDDYxrculx6qSlXvFolJQouxZXCaKsq/d3CVxe1x3jJvZuAI
H6H347CGGjihkMFowuQi1EeItjMh6m6AmpV5wbgoZclZkQGi0aCjH4yH3zIkx85udyimTOYlkRm4
/iuVlMq5HEa7Ns16p/0W3XeUsIqKDPa9mzoEOFMkl5ghq/KMNlNokeFMMqYooRfc99H2Xrtb8pSB
9a05NHMQ1KpCigiR4BBHtPnYeJ2y4OH98Y5XL/dvXOIGTod4duH4OHCKCiZGZ2bXDVcyovIMOusv
OUqIebZOH65KPBdPW6cjNdZHg5fFuwpeFJVS5SwfP696qqQkafMV6hodFlQxDzQzK9sumDkZCdvh
o7RNa5zdm/H7/xEufXXXTx5HqSq66HrG8SMYgcecwrNfvH2uyqJK+OsU/xCKq0Q82c0GmYJlELGt
N6jbaBfM6QeRjc7xagIAAA==
headers:
Access-Control-Allow-Headers:
- Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
Access-Control-Allow-Methods:
- GET, POST, OPTIONS
Access-Control-Allow-Origin:
- '*'
Cache-Control:
- no-store
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Length:
- '358'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 00:52:37 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
Vary:
- Origin,Authorization,Partner
- accept-encoding
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/ticker?instrument_name=BTC-31JAN25
response:
body:
string: !!binary |
H4sIAAAAAAAAA2VRy1LDIBT9l7tOmUBICNn52OhCN+4ztKEtSkgmkKrT6b97QRszOqw4554HlzO8
+sFN4w4aYCSHDCbtZxugOUMwvfZB9SM0VBQVZVyUglKeAaJBo2IYtYPvq4+KozkcoZFSMEHKDOzw
jreaypLkGYyT2el2d1TugNpNTnIuZAanwc49AlwQwfEUvL6C7ey7SDBeFnm0+IHdEMzglF1xlwyM
6/RHm1JiKqMl4TzCPkyocqF1KgbB7cvdpqCPN0+sxPJW+bCoJK1Tc69DsDqJfilZEMEy6I1bQFGJ
9LZeLck0z6uSRZO4nda4oHGluFDKRcWwbBqf3lbGFSMVzWCLY63ya0akNonYmm5NpATETY9f0bWd
tuakp8//719cVT/MDnvUIu1yMb3ilHDNcY+zf3DrH2eFrGoW8ec5/CFqwSNxb/Z7ZCROBbR1Guf2
ynp9+QJ/d3xeYAIAAA==
headers:
Access-Control-Allow-Headers:
- Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
Access-Control-Allow-Methods:
- GET, POST, OPTIONS
Access-Control-Allow-Origin:
- '*'
Cache-Control:
- no-store
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Length:
- '355'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 00:52:37 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
Vary:
- Origin,Authorization,Partner
- accept-encoding
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
version: 1

View File

@@ -0,0 +1,916 @@
interactions:
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/get_instruments?currency=any&expired=false&kind=future
response:
body:
string: !!binary |
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
faUNqbrakUyXKP/4D7B0jAQFbgAA
headers:
Access-Control-Allow-Headers:
- Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
Access-Control-Allow-Methods:
- GET, POST, OPTIONS
Access-Control-Allow-Origin:
- '*'
Cache-Control:
- no-store
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Length:
- '1788'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 00:55:21 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
Vary:
- Origin,Authorization,Partner
- accept-encoding
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/get_instruments?currency=any&expired=false
response:
body:
string: !!binary |
H4sIAAAAAAAAA+zdbZPc1pmt6f+iz00GXjawgf4m0bR1Oty2QqInHDExUcGXtMVpipSLlEbnOPzf
B5lJ0iQrsasShYXnZnH1mTkzRbLFrMLFBWCvZwP//Or/ff3q5eXPT7/6z6+a+9VX//HV5e71Ly/e
fPWf//c/v/r58vnT3cXzl892v02//eTlk4tfXj97uv8zf/vHV//5t8cvXu/+46v/mX5/+t1XP795
/url9Hs/PX958eby8bPdxeOfXv3ycvov1f/x1fPXF4+fvnn+6+6r/3xz+cv0v/X85evp/+en3cs3
Fy8f/zT98lff/Ombi7/88LsH9/r/+vpPTXevb6p7D/b/vcf/s7u8ePrqp5+ev369/yv+s7pfVdX0
H31z+ne6j/7rb/73z/v/+ovnL3ePL6f/3O63n59fPt5/1os3z3/avX7z+Kefp4+Y277uqlTt/+c/
vnr66uX0LTx9c/H6+f+Z/rfr+9OvTf/F5/8zfTF9rv2Xb54//Z+3v13dnz7Mkxevpl84fuNXfu/x
693F018uL3cvn/7v47f61Ucf8vn0E0x17uo8/d2Xu1Mfrxtz7vvjx3u9e/Pmxe7wv/nz7vL5q/3P
/9nj/z39N49H4d03/fTxixdfffzRrvy02o9//+rRa7pP/soPvpH98fpq/+Oa/uT+UFz5nX/88urN
7sSvv/8JXbx+s/v59aTt//nXfwDAffelgRtWBffzL2/s7cbeWmjAtUJvowMuFBwy4ITgmsoBF+Yt
QQMuCb3VDrhQcMiAU4JrHHBh3jpowHVCb60DLhQcMuCU4JIDLsxbDw24Xuitc8CFgkMGnBJc74AL
85ahAZeF3lwyxIJDBpwSnEuGOG8DNOAGoTeXDLHgkAEnBNe6ZAj01kEDrtN5c8kQC44ZcEJwLhni
vI3QK7hReEJ1yRALDhlwSnAuGQK9Qa/gRuEJ1SVDLDhmwAnBuWQI85Yr5hXc9Ll03lwyxIIjBpwU
nEuGQG/MK7jpc+m8uWSIBccMOB245JIhzlsNvYKrdSfU5JIhFhwy4JTgXDIEeoNewdXCE6pLhlhw
zIATgnPJEOcN+jSRLHy4Q3LJEAsOGXBKcC4ZAr1Br+Aa4QnVJUMsOGbACcG5ZIjzBn1cUhY+vSa5
ZIgFhww4IbjOJUOgN+gVXKs7oXYuGWLBMQNOCM4lQ5w36PPgsvDxXJ1LhlhwyIBTgnPJEOgNegWX
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
uP6By6RGplym6x8uTO4OoCTfZ9G4/oHLpEamXKbrnzNh/vz4t7/vZT4V0fzu67/+4WL6dh68B9p0
TTE661mg3SmgL56/3D2+XIPn/oNdGYLrCji7qzL33+4pmikVbs2nv7dqo0JzFuf+oM3qfHCK59tf
v+qT464QjHfV3fyN9yJ3K0XiF8QuUeMu6di1hbeS79lVfe2407tjxp3U3Xybvcid4+5cdj017nol
u/mu2nG3mTtm3EndzTfRjrtN2A3UuBuU7Mo3s467Tdwx407qrnwz67iTsxupcTfK2HV5KNxUdENX
Rb3G+8tyx4w7qbvCXcUSd467M9ldMxgTx+7E8MF6J9n5iRhf3G3GDpl2Unbz4y6+tttEXQ0Nu+mD
CW8p5odZnHabuUOmndbd/KiK424TdtQxlF45DlB4g6vjbjN3zLiTunMvG8yupcZdq2TnXhbgjhl3
UnfuZYPZUafueuH0Uyq8N9Vxt5k7ZtxJ3bmXDWZXfup1ILsTDxZej52bCoA7ZtxJ3bmqCGZHHTLu
hcOeqfC2UsfdZu6YcSd156oimF2mxl0Wsiu8aNRxt5k7ZtxJ3bmqCGZH3VPRC2fbU+EdoY67zdwx
407qzlVFLLuMHTLOsmnPVHi7p9NuM3bItJOyc1ERrI46dZeV00+Fd8w57TZzh0w7rTsXFcHsqGMo
WTkOUHg/nONuM3fMuJO6c1ERzI7ay2ZlP1Z4t5vjbjN3zLiTunNREcyOWlRk5YJx4b1sjrvN3DHj
TurORUUsu2veeRG4Ynz1vQKrqSs+YbEd+lQ57fTskGknZVfqxxaw+7zD7vWrFwvRVTdS98Of//gx
uhoUdR+Qmz7WlfNr6fUpJ96dMn2rp8RNpK5btPuygi6EHCXmtiJ33XqdQ04qDtTFfijuRCO2lrh8
3VKdQ05OjhhySnLXrdI55KTiQA3sh+JO9GCribtugc4hJydHDDkluevW5hxyUnGg7f8fijuxCXs1
cdcNEDvk5OSIIackd93wsENOKg40XPKhuBMV/2rirpsbdsjJyRFDTknuupFhh5xW3MAMuUEkLqW+
FHL7t6A45OTkkCEnJFcKuQXkHHLniQM9z+RDcSeeKrHaadXtajg5YsgpybldjRXXMEOukYkb3K6G
k0OGnJCc29VYcT0z5HqdOLer4eSQISck53Y1VBxom9eH4k5stllNnNvVcHLEkFOSc7saKy4xQy7p
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
qpuxrr3GCcBJDU41zqG0AL8Ep4NzTZvgnUOjenNG15c2ZwzD6HEkAE5qcMpxloaMl+B0cK5pE7xz
aNRuzhjffoKZk3rbVbXXOAE4qcEpx1lo1RfhdHCuaRO8c2gUb85ox352GWn/5K4++4oTgJManHKc
pSfQLMHp4FzTJnjn0Ch/rUvth3zwcVKDU42z8UM+yDbBO4dG8eaMVKX5uyE/Vo6Ckxqccpyze9X9
WDmATfAA/CieMU5NLmwHbtrGe9UJOKnBKcdZWEdahNPBuaLN4xIzNDmnL3ad9nbIj0f6DHQyo3MD
nX4+EhoneCJp+qKR6sylgqiu6jR4lpPAE5udcp6FUeNFPB2eq+oEl+vTF0mqc2wKDzTe727rfctO
4IkNTznP8s7g83k6PFfVCS7Ypy869X2RHzH3GfDEhqecpx8yh9YJLtmnL3rtqT21pSvPvhv9Kg0C
T2x4ynmWrjyX8HR4rqoTXLRPXwxinUN5//rhdQ4Oz2ie2PBU8yw+QnYJT4fnmjoPdSY2PGv1bZEf
0/kZ6KRmp1ynn9OJxonu2mtpmTlOB6DwMMS261p37QSe2OyU8yyMgizi6fBcVSe6a6+lZebY5cK7
C6aL0rHziieBJzY85TzndxYt4+nwXFUnumuv5WWmH3X8GfDEhqecpx92jNaJ7tprZZmZqjTMLyq1
7V6v6yICT2x4ynnOryot4+nwXFUnumuvlWVmqrq+nx2jm3SO023T6PCM54kNTznP+Tm6ZTwdnmvq
PCw5Y8NTu/mtHYfSwzv73o+LR+ikZqdcZ+npnUt0OjpXxYnu2hulzsOJvXTT7utOCE9sdsp5lm7a
fd0ZrhNdFzXa9fjUFHRWTTN0HlQi8MSGp5xn6WF0S3g6PNfU2aJv2lspzmEovvG6Th7yROikZqdc
Z2HGc5FOR+eqONHXna32xD604+wjQabPmPcvjHF2xvPEZqec53yXuYynw3NNnQl93Sl+2NdY3L2R
ar8iE6GTmp1ynYVHLizS6ehcFSf6ujNJT+xjVbfzmzema55x9IQngSc2O+U8C7dFi3g6PNfU2aGv
O+U3RYUn0fmenaKTmp1ynYUH0fmWPRxnj45O6VMSx2rsCpedXd0M3tJO0EmNTrnOwlXnIp2OzjVx
DujolD4jcaJZuCVq6rEbBl91AnRSo1Ouc74oWqbT0bkizsOMAzU6G+37CPc452/YHZ0Ynczo3EDn
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
lNmAQ7NRn849p0mnSQ1NOU3PaYJltuDQbNUyPadJp0kNTTlNz2mCZXLnNFvpMNxBpkeO6DSpoSmn
6ZEjsEzunGYrH4Yb3J7TaVJDU01zdHsOlsmd02ylw3AHmW7P6TSpoSmn6fYcLDODQzOrZboIotOk
hqacposgsEzucHsrnyAeXQTRaVJDU07TRRBY5ggOzVEt00UQnSY1NOU0XQRxZe73sEJDM8m3XRSe
cuTQZNBkhqacZukpRw7NcJncHUFJuu1ikjkUX2c1dskP7AinSQ1NOc1SEbSEpkNzRZncHUFJve2i
qdye02lSQ1NO0+05WCZ3R1CSbrtIVcrNvMzpf4aucmhG06SGppzm/GDHMpoOzRVlcncEJfW2i6by
yBGdJjU05TQ9cgSWyd0RlKTbLlLVN33hfZRdXbcOzXCa1NCU0yy8jHIRTYfmijK5O4KSettFU3lO
k06TGppymp7TBMvkDrcn9QRxU3lOk06TGppymp7T5MrcryhDQ7PTD8N5TpNOkxmaepq15zTBMrkj
R510riNVXW7nZe6fSzY6NMNpUkNTTnN+Gm4ZTYfmijK5RVCnfv5WU3tOk06TGppymp7T5Mrsubfn
vf4eyCNHdJrM0NyApkeOwDK5V5q9eK6jy0359nzwNspwmtTQlNMs356fT9OhuZ7MgXulOUhP56lK
feEdQW3bVOP+4WQOzVCazNDcgOb8yNEymg7N9WTWFTc1py92SUuzMN3u1GTYZMbmBjYL4+2OzWia
4KmjeroNEtOcnzpybEJsUmNTbbPwniDH5mmaPz/+7e97m09FOL/7+q9/uJi+nQfviTZtV0zPelZo
d0roi+cvd48v1/C5/2D7rz/6WXYFnd1Vmvtv94TNuhqGeZupS+N+xjomN2d17o/aLM8Hp3y+/fWr
QDnwCtF4V+HNr1sug7dSKH457q558EacuxPPNliHXTX0TWFRchyrFFZ/f1nukHkndVdYcVzkznF3
Ljvq9V2SnWb37grLic67zeAh804Lr7BW6MDbwt01AzuB59mrMxHrsSusAzrvNnOHzDulu9IGLsfd
JuwaaNxNH0y2jDIWHtOXur7d71xz3unhIfNOC29+IWUZPAfeue4SNfCS7L5ibPr5hZSJ5fTbDrwt
4DEDTwpvfiVlGTwH3rnuqCt4nXIhpbT/3ne0m8FjBp4UXuGNHr6l3cRdTw28XuduLDwPNFVNTr6l
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
headers:
Access-Control-Allow-Headers:
- Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
Access-Control-Allow-Methods:
- GET, POST, OPTIONS
Access-Control-Allow-Origin:
- '*'
Cache-Control:
- no-store
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Length:
- '43294'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 00:55:22 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
Vary:
- Origin,Authorization,Partner
- accept-encoding
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/get_tradingview_chart_data?end_timestamp=1733184000000&instrument_name=BTC-PERPETUAL&resolution=720&start_timestamp=1733011200000
response:
body:
string: '{"usOut":1736124923261326,"usIn":1736124923259456,"usDiff":1870,"testnet":false,"result":{"volume":[1765.50937228,1795.26276348,3824.28604442,7511.65710613,3391.8982902],"ticks":[1732996800000,1733040000000,1733083200000,1733126400000,1733169600000],"status":"ok","open":[97116.5,96529.5,97288.0,96077.0,95872.5],"low":[95555.0,96487.5,95843.5,94377.5,95153.5],"high":[97116.5,97627.0,98275.0,97469.0,96375.0],"cost":[170140340.0,174409490.0,371629810.0,720033750.0,324979260.0],"close":[96530.0,97288.0,96077.5,95872.5,95602.0]},"jsonrpc":"2.0"}'
headers:
Connection:
- keep-alive
Content-Length:
- '546'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 00:55:23 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
version: 1

View File

@@ -0,0 +1,916 @@
interactions:
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/get_instruments?currency=any&expired=false&kind=future
response:
body:
string: !!binary |
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
fKqWO5LpkuUf/wEjI6skBm4AAA==
headers:
Access-Control-Allow-Headers:
- Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
Access-Control-Allow-Methods:
- GET, POST, OPTIONS
Access-Control-Allow-Origin:
- '*'
Cache-Control:
- no-store
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Length:
- '1786'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 00:34:14 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
Vary:
- Origin,Authorization,Partner
- accept-encoding
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/get_instruments?currency=any&expired=false
response:
body:
string: !!binary |
H4sIAAAAAAAAA+zdbZPc1pmt6f+iz00GXjawgf4m0bR1Oty2QqInHDExUcGXtMVpipSLlEbnOPzf
B5lJ0iQrsasShYXnZnH1mTkzRbLFrMLFBWCvZwP//Or/ff3q5eXPT7/6z6+a+9VX//HV5e71Ly/e
fPWf//c/v/r58vnT3cXzl892v02//eTlk4tfXj97uv8zf/vHV//5t8cvXu/+46v/mX5/+t1XP795
/url9Hs/PX958eby8bPdxeOfXv3ycvov1f/x1fPXF4+fvnn+6+6r/3xz+cv0v/X85evp/+en3cs3
Fy8f/zT98lff/Ombi7/88LsH9/r/+vpPTXevb6p7D/b/vcf/s7u8ePrqp5+ev369/yv+s7pfVdX0
H31z+ne6j/7rb/73z/v/+ovnL3ePL6f/3O63n59fPt5/1os3z3/avX7z+Kefp4+Y277uqlTt/+c/
vnr66uX0LTx9c/H6+f+Z/rfr+9OvTf/F5/8zfTF9rv2Xb54//Z+3v13dnz7Mkxevpl84fuNXfu/x
693F018uL3cvn/7v47f61Ucf8vn0E0x17uo8/d2Xu1Mfrxtz7vvjx3u9e/Pmxe7wv/nz7vL5q/3P
/9nj/z39N49H4d03/fTxixdfffzRrvy02o9//+rRa7pP/soPvpH98fpq/+Oa/uT+UFz5nX/88urN
7sSvv/8JXbx+s/v59aTt//nXfwDAffelgRtWBffzL2/s7cbeWmjAtUJvowMuFBwy4ITgmsoBF+Yt
QQMuCb3VDrhQcMiAU4JrHHBh3jpowHVCb60DLhQcMuCU4JIDLsxbDw24Xuitc8CFgkMGnBJc74AL
85ahAZeF3lwyxIJDBpwSnEuGOG8DNOAGoTeXDLHgkAEnBNe6ZAj01kEDrtN5c8kQC44ZcEJwLhni
vI3QK7hReEJ1yRALDhlwSnAuGQK9Qa/gRuEJ1SVDLDhmwAnBuWQI85Yr5hXc9Ll03lwyxIIjBpwU
nEuGQG/MK7jpc+m8uWSIBccMOB245JIhzlsNvYKrdSfU5JIhFhwy4JTgXDIEeoNewdXCE6pLhlhw
zIATgnPJEOcN+jSRLHy4Q3LJEAsOGXBKcC4ZAr1Br+Aa4QnVJUMsOGbACcG5ZIjzBn1cUhY+vSa5
ZIgFhww4IbjOJUOgN+gVXKs7oXYuGWLBMQNOCM4lQ5w36PPgsvDxXJ1LhlhwyIBTgnPJEOgNegWX
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
uP6By6RGplym6x8uTO4OoCTfZ9G4/oHLpEamXKbrnzNh/vz4t7/vZT4V0fzu67/+4WL6dh68B9p0
TTE661mg3SmgL56/3D2+XIPn/oNdGYLrCji7qzL33+4pmikVbs2nv7dqo0JzFuf+oM3qfHCK59tf
v+qT464QjHfV3fyN9yJ3K0XiF8QuUeMu6di1hbeS79lVfe2407tjxp3U3Xybvcid4+5cdj017nol
u/mu2nG3mTtm3EndzTfRjrtN2A3UuBuU7Mo3s467Tdwx407qrnwz67iTsxupcTfK2HV5KNxUdENX
Rb3G+8tyx4w7qbvCXcUSd467M9ldMxgTx+7E8MF6J9n5iRhf3G3GDpl2Unbz4y6+tttEXQ0Nu+mD
CW8p5odZnHabuUOmndbd/KiK424TdtQxlF45DlB4g6vjbjN3zLiTunMvG8yupcZdq2TnXhbgjhl3
UnfuZYPZUafueuH0Uyq8N9Vxt5k7ZtxJ3bmXDWZXfup1ILsTDxZej52bCoA7ZtxJ3bmqCGZHHTLu
hcOeqfC2UsfdZu6YcSd156oimF2mxl0Wsiu8aNRxt5k7ZtxJ3bmqCGZH3VPRC2fbU+EdoY67zdwx
407qzlVFLLuMHTLOsmnPVHi7p9NuM3bItJOyc1ERrI46dZeV00+Fd8w57TZzh0w7rTsXFcHsqGMo
WTkOUHg/nONuM3fMuJO6c1ERzI7ay2ZlP1Z4t5vjbjN3zLiTunNREcyOWlRk5YJx4b1sjrvN3DHj
TurORUUsu2veeRG4Ynz1vQKrqSs+YbEd+lQ57fTskGknZVfqxxaw+7zD7vWrFwvRVTdS98Of//gx
uhoUdR+Qmz7WlfNr6fUpJ96dMn2rp8RNpK5btPuygi6EHCXmtiJ33XqdQ04qDtTFfijuRCO2lrh8
3VKdQ05OjhhySnLXrdI55KTiQA3sh+JO9GCribtugc4hJydHDDkluevW5hxyUnGg7f8fijuxCXs1
cdcNEDvk5OSIIackd93wsENOKg40XPKhuBMV/2rirpsbdsjJyRFDTknuupFhh5xW3MAMuUEkLqW+
FHL7t6A45OTkkCEnJFcKuQXkHHLniQM9z+RDcSeeKrHaadXtajg5YsgpybldjRXXMEOukYkb3K6G
k0OGnJCc29VYcT0z5HqdOLer4eSQISck53Y1VBxom9eH4k5stllNnNvVcHLEkFOSc7saKy4xQy7p
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
qpuxrr3GCcBJDU41zqG0AL8Ep4NzTZvgnUOjenNG15c2ZwzD6HEkAE5qcMpxloaMl+B0cK5pE7xz
aNRuzhjffoKZk3rbVbXXOAE4qcEpx1lo1RfhdHCuaRO8c2gUb85ox352GWn/5K4++4oTgJManHKc
pSfQLMHp4FzTJnjn0Ch/rUvth3zwcVKDU42z8UM+yDbBO4dG8eaMVKX5uyE/Vo6Ckxqccpyze9X9
WDmATfAA/CieMU5NLmwHbtrGe9UJOKnBKcdZWEdahNPBuaLN4xIzNDmnL3ad9nbIj0f6DHQyo3MD
nX4+EhoneCJp+qKR6sylgqiu6jR4lpPAE5udcp6FUeNFPB2eq+oEl+vTF0mqc2wKDzTe727rfctO
4IkNTznP8s7g83k6PFfVCS7Ypy869X2RHzH3GfDEhqecpx8yh9YJLtmnL3rtqT21pSvPvhv9Kg0C
T2x4ynmWrjyX8HR4rqoTXLRPXwxinUN5//rhdQ4Oz2ie2PBU8yw+QnYJT4fnmjoPdSY2PGv1bZEf
0/kZ6KRmp1ynn9OJxonu2mtpmTlOB6DwMMS261p37QSe2OyU8yyMgizi6fBcVSe6a6+lZebY5cK7
C6aL0rHziieBJzY85TzndxYt4+nwXFUnumuv5WWmH3X8GfDEhqecpx92jNaJ7tprZZmZqjTMLyq1
7V6v6yICT2x4ynnOryot4+nwXFUnumuvlWVmqrq+nx2jm3SO023T6PCM54kNTznP+Tm6ZTwdnmvq
PCw5Y8NTu/mtHYfSwzv73o+LR+ikZqdcZ+npnUt0OjpXxYnu2hulzsOJvXTT7utOCE9sdsp5lm7a
fd0ZrhNdFzXa9fjUFHRWTTN0HlQi8MSGp5xn6WF0S3g6PNfU2aJv2lspzmEovvG6Th7yROikZqdc
Z2HGc5FOR+eqONHXna32xD604+wjQabPmPcvjHF2xvPEZqec53yXuYynw3NNnQl93Sl+2NdY3L2R
ar8iE6GTmp1ynYVHLizS6ehcFSf6ujNJT+xjVbfzmzema55x9IQngSc2O+U8C7dFi3g6PNfU2aGv
O+U3RYUn0fmenaKTmp1ynYUH0fmWPRxnj45O6VMSx2rsCpedXd0M3tJO0EmNTrnOwlXnIp2OzjVx
DujolD4jcaJZuCVq6rEbBl91AnRSo1Ouc74oWqbT0bkizsOMAzU6G+37CPc452/YHZ0Ynczo3EDn
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
lNmAQ7NRn849p0mnSQ1NOU3PaYJltuDQbNUyPadJp0kNTTlNz2mCZXLnNFvpMNxBpkeO6DSpoSmn
6ZEjsEzunGYrH4Yb3J7TaVJDU01zdHsOlsmd02ylw3AHmW7P6TSpoSmn6fYcLDODQzOrZboIotOk
hqacposgsEzucHsrnyAeXQTRaVJDU07TRRBY5ggOzVEt00UQnSY1NOU0XQRxZe73sEJDM8m3XRSe
cuTQZNBkhqacZukpRw7NcJncHUFJuu1ikjkUX2c1dskP7AinSQ1NOc1SEbSEpkNzRZncHUFJve2i
qdye02lSQ1NO0+05WCZ3R1CSbrtIVcrNvMzpf4aucmhG06SGppzm/GDHMpoOzRVlcncEJfW2i6by
yBGdJjU05TQ9cgSWyd0RlKTbLlLVN33hfZRdXbcOzXCa1NCU0yy8jHIRTYfmijK5O4KSettFU3lO
k06TGppymp7TBMvkDrcn9QRxU3lOk06TGppymp7T5MrcryhDQ7PTD8N5TpNOkxmaepq15zTBMrkj
R510riNVXW7nZe6fSzY6NMNpUkNTTnN+Gm4ZTYfmijK5RVCnfv5WU3tOk06TGppymp7T5Mrsubfn
vf4eyCNHdJrM0NyApkeOwDK5V5q9eK6jy0359nzwNspwmtTQlNMs356fT9OhuZ7MgXulOUhP56lK
feEdQW3bVOP+4WQOzVCazNDcgOb8yNEymg7N9WTWFTc1py92SUuzMN3u1GTYZMbmBjYL4+2OzWia
4KmjeroNEtOcnzpybEJsUmNTbbPwniDH5mmaPz/+7e97m09FOL/7+q9/uJi+nQfviTZtV0zPelZo
d0roi+cvd48v1/C5/2D7rz/6WXYFnd1Vmvtv94TNuhqGeZupS+N+xjomN2d17o/aLM8Hp3y+/fWr
QDnwCtF4V+HNr1sug7dSKH457q558EacuxPPNliHXTX0TWFRchyrFFZ/f1nukHkndVdYcVzkznF3
Ljvq9V2SnWb37grLic67zeAh804Lr7BW6MDbwt01AzuB59mrMxHrsSusAzrvNnOHzDulu9IGLsfd
JuwaaNxNH0y2jDIWHtOXur7d71xz3unhIfNOC29+IWUZPAfeue4SNfCS7L5ibPr5hZSJ5fTbDrwt
4DEDTwpvfiVlGTwH3rnuqCt4nXIhpbT/3ne0m8FjBp4UXuGNHr6l3cRdTw28XuduLDwPNFVNTr6l
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
r9/8/PO4JXB8Y8PT/ba+uSXl3/8fS0hArCy1HQA=
headers:
Access-Control-Allow-Headers:
- Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
Access-Control-Allow-Methods:
- GET, POST, OPTIONS
Access-Control-Allow-Origin:
- '*'
Cache-Control:
- no-store
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Length:
- '43292'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 00:34:15 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
Vary:
- Origin,Authorization,Partner
- accept-encoding
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/get_tradingview_chart_data?end_timestamp=1733184000000&instrument_name=BTC-PERPETUAL&resolution=720&start_timestamp=1733011200000
response:
body:
string: '{"usOut":1736123656142468,"usIn":1736123656140693,"usDiff":1775,"testnet":false,"result":{"volume":[1765.50937228,1795.26276348,3824.28604442,7511.65710613,3391.8982902],"ticks":[1732996800000,1733040000000,1733083200000,1733126400000,1733169600000],"status":"ok","open":[97116.5,96529.5,97288.0,96077.0,95872.5],"low":[95555.0,96487.5,95843.5,94377.5,95153.5],"high":[97116.5,97627.0,98275.0,97469.0,96375.0],"cost":[170140340.0,174409490.0,371629810.0,720033750.0,324979260.0],"close":[96530.0,97288.0,96077.5,95872.5,95602.0]},"jsonrpc":"2.0"}'
headers:
Connection:
- keep-alive
Content-Length:
- '546'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 00:34:16 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
version: 1

View File

@@ -0,0 +1,132 @@
interactions:
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/get_instruments?currency=any&kind=future
response:
body:
string: !!binary |
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
ZLpk+cd/1CYNgAZuAAA=
headers:
Access-Control-Allow-Headers:
- Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
Access-Control-Allow-Methods:
- GET, POST, OPTIONS
Access-Control-Allow-Origin:
- '*'
Cache-Control:
- no-store
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Length:
- '1781'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 19:35:30 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
Vary:
- Origin,Authorization,Partner
- accept-encoding
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/ticker?instrument_name=BTC-PERPETUAL
response:
body:
string: !!binary |
H4sIAAAAAAAAA21Sy27bMBD8lz0rAl/iQ7e0zaFAgQRFehYYi7bZUJQhkk6LIP/epeKkzuPInZ2d
2Vk+wu80x+WwgR5YS6CBxaUSMvSPkP3kUrbTAXqquKSGUU6UNg1gNTtkzAcX4fmZKmPvd3tsJkxS
3XYNhPkBeqOMUC1p4LD4jRs2ext3SOatoZQ3cJxDmdzKoqyVWgulmXqpDyWNKya04JqTOueExDn7
OdrwFn5qwMfR/RlWtYpRzXirRa2nvCAz5iHaKglfbr9e3Fz9vLm6/XX5AxcJNuVzYrdukVzOwa28
E2YMxtEKdDn5+J9AODWVMNkzec5VV4s1q8HH7DBgjJcyFGCqE6T2L/fnshiXYNXvc/NwtKEghNup
rhNKSU6JQXZd6q422HT/0faK3PnxHYJ6CPgJLzgOowv+6Ja/n6T1OthOc4noWFAqu/UAr5NfINST
Djmbsiw1pm2Jo4+71XIDp9eg699opeDcXQi8U0nf45uvZaiUptavS34HGKIr8M1vt9Azjl0ZTUSH
fVsbknv6B2sLSIvJAgAA
headers:
Access-Control-Allow-Headers:
- Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
Access-Control-Allow-Methods:
- GET, POST, OPTIONS
Access-Control-Allow-Origin:
- '*'
Cache-Control:
- no-store
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Length:
- '414'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 19:35:30 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
Vary:
- Origin,Authorization,Partner
- accept-encoding
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
version: 1

View File

@@ -0,0 +1,132 @@
interactions:
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/get_instruments?currency=any&kind=future
response:
body:
string: !!binary |
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
lKqrHcl0ifKP/wA0kD8VBW4AAA==
headers:
Access-Control-Allow-Headers:
- Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
Access-Control-Allow-Methods:
- GET, POST, OPTIONS
Access-Control-Allow-Origin:
- '*'
Cache-Control:
- no-store
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Length:
- '1786'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 19:35:48 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
Vary:
- Origin,Authorization,Partner
- accept-encoding
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/ticker?instrument_name=BTC-PERPETUAL
response:
body:
string: !!binary |
H4sIAAAAAAAAA2WST2/cIBDFv8ucHQswf/fWJjlEitSoSs8WWbO7JDZeGdi2ivLdO5BNu26OzG/e
zOPBKzzHOSzHLWyAtQQaWFzMY4LNKyQ/uZjsdIQNVZ2khlFuKJMNYDU5VMxHF+D9GIvi4PcHbCZM
Ut2KBsb5J2yMMly1pIHj4reu3x5s2KO4aw0RtIHTPObJVRXlrZBMU2b0R73PcahMkI4rTsqcMwlz
8nOw4xq/NeDD4H71dVthVHPdmlKOaUFhSH2wZSN8fby+erj9/nD7+OPLPd5jtDFd6gQrl4gupdFV
3ZkZg2m0XDUw+fBPgBZk8TfZi+0dJ3VKiar3ITnMF9OlDPs55lT7l5fLtYq3VBa/7839yY4ZEV5O
CcGVkh0lhlCmeQNPpcHGlV7XtCt58sOKyGIFgZ/wAYd+cKM/ueX357D+zrXTnAMa1oIospr7QfBT
dKyibV6WEtMuh8GHfbXcwPnU6/I1Wsm7zl1xfKYc78L6ZykpulL/ltN/QJeccrzxux0SgckntBEc
9u3sGN3bH+ZnaX7IAgAA
headers:
Access-Control-Allow-Headers:
- Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
Access-Control-Allow-Methods:
- GET, POST, OPTIONS
Access-Control-Allow-Origin:
- '*'
Cache-Control:
- no-store
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Length:
- '414'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 19:35:49 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
Vary:
- Origin,Authorization,Partner
- accept-encoding
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
version: 1

View File

@@ -0,0 +1,79 @@
interactions:
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/get_instruments?currency=any&kind=future
response:
body:
string: !!binary |
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
VF3uSKZLln/8BwWVErMGbgAA
headers:
Access-Control-Allow-Headers:
- Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
Access-Control-Allow-Methods:
- GET, POST, OPTIONS
Access-Control-Allow-Origin:
- '*'
Cache-Control:
- no-store
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Length:
- '1785'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 16:43:09 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
Vary:
- Origin,Authorization,Partner
- accept-encoding
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
version: 1

View File

@@ -0,0 +1,79 @@
interactions:
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/get_instruments?currency=any&kind=future
response:
body:
string: !!binary |
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
rTzqckcyXbL84z9ZbTVhBm4AAA==
headers:
Access-Control-Allow-Headers:
- Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
Access-Control-Allow-Methods:
- GET, POST, OPTIONS
Access-Control-Allow-Origin:
- '*'
Cache-Control:
- no-store
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Length:
- '1786'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 16:43:31 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
Vary:
- Origin,Authorization,Partner
- accept-encoding
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
version: 1

View File

@@ -1,10 +1,15 @@
"""Deribit Fetcher Tests."""
from datetime import date
from unittest.mock import MagicMock, patch
import pytest
from openbb_core.app.service.user_service import UserService
from openbb_core.provider.utils.helpers import run_async
from openbb_deribit.models.futures_curve import DeribitFuturesCurveFetcher
from openbb_deribit.models.futures_historical import DeribitFuturesHistoricalFetcher
from openbb_deribit.models.futures_info import DeribitFuturesInfoFetcher
from openbb_deribit.models.futures_instruments import DeribitFuturesInstrumentsFetcher
from openbb_deribit.models.options_chains import (
DeribitOptionsChainsData,
DeribitOptionsChainsFetcher,
@@ -63,7 +68,7 @@ def vcr_config():
return {
"filter_headers": [("User-Agent", None)],
"filter_query_parameters": [
None,
("expired", None),
],
}
@@ -97,3 +102,48 @@ async def test_deribit_options_chains_fetcher(credentials=test_credentials):
):
result = await fetcher.fetch_data(params, {})
assert isinstance(result, DeribitOptionsChainsData)
@pytest.mark.record_http
def test_deribit_futures_curve_fetcher(credentials=test_credentials):
"""Test Deribit Futures Curve Fetcher."""
params = {"symbol": "BTC"}
fetcher = DeribitFuturesCurveFetcher()
result = fetcher.test(params, credentials)
assert result is None
@pytest.mark.record_http
def test_deribit_futures_historical_fetcher(credentials=test_credentials):
"""Test Deribit Futures Historical Fetcher."""
params = {
"symbol": "BTC-PERPETUAL",
"start_date": date(2024, 12, 1),
"end_date": date(2024, 12, 3),
"interval": "12h",
}
fetcher = DeribitFuturesHistoricalFetcher()
result = fetcher.test(params, credentials)
assert result is None
@pytest.mark.record_http
def test_deribit_futures_instruments_fetcher(credentials=test_credentials):
"""Test Deribit Futures Instruments Fetcher."""
params = {}
fetcher = DeribitFuturesInstrumentsFetcher()
result = fetcher.test(params, credentials)
assert result is None
@pytest.mark.record_http
def test_deribit_futures_info_fetcher(credentials=test_credentials):
"""Test Deribit Futures Info Fetcher."""
params = {"symbol": "BTC-PERPETUAL"}
fetcher = DeribitFuturesInfoFetcher()
result = fetcher.test(params, credentials)
assert result is None