Skip to main content

No project description provided

Project description

Unofficial Wrapper for the Vinter API

Code Coverage

This is an unofficial wrapper for the Vinter API. It is not affiliated with Vinter in any way.

Installation

pip install vinterunofficial

Documentation

VinterAPIDocumentation

Usage

Valid AssetType API

  • single_assets
  • multi_assets
  • staking_yields
  • nav

Valid AssetType Websocket

  • single_assets
  • multi_assets
  • nav

Important Notes About the Library

  • The library supports both synchronous and asynchronous requests.
  • The library is still in development and may have bugs.
  • All the methods are documented in the source code.
  • All the methods are callable from both the synchronous and asynchronous classes.
  • The asynchronous class is called VinterAPIAsync.
  • The synchronous class is called VinterAPI.
  • The asynchronous class repeats the same methods as the synchronous class, but can be called with the await keyword.

Importing the library

from vinterunofficial import VinterAPI, VinterAPIAsync

Get Latest Data

from vinterunofficial import VinterAPI

# vinter = VinterAPI(<APIKEY>, <AssetType>)
vinter = VinterAPI("<APIKey>", "single_assets")

selected_symbol = "btc-usd-p-d"

# Get the latest value of the asset
data = vinter.get_latest_data(selected_symbol, limit=1)
# The returned data is a list of dictionaries as shown in the sample response in the documentation
# You can also increase the limit to get more than one value which will return a list ordered by the latest to the oldest

current_price = data[0]["value"]
created_at = data[0]["created_at"]

print("The current price of {} is {} at {}".format(selected_symbol, current_price, created_at))

Get Historical Data Between Time Ranges

from vinterunofficial import VinterAPI

# vinter = VinterAPI(<APIKEY>, <AssetType>)
vinter = VinterAPI("<APIKey>", "single_assets")

selected_symbol = "btc-usd-p-d"

# Get the latest value of the asset
data = vinter.get_data_by_time(symbol=selected_symbol, start="2023-01-01T00:00:00Z", end="2023-01-05T23:59:59Z")
# The returned data is a list of dictionaries as shown in the sample response in the documentation
# You can also increase the limit default is 1000, Max is 2000.
# The returned order will be from oldest to latest so that its easier to loop through start time to get historical data in a paginated api responses.

print(f"The Response : {data}")

If you just want the latest value

from vinterunofficial import VinterAPI

vinter = VinterAPI("<APIKey>", "single_assets")

selected_symbol = "btc-usd-p-d"

# Get the latest value of the asset

current_price = vinter.get_latest_value(selected_symbol)

print("The current price of {} is {}".format(selected_symbol, current_price))

Get All Active Symbols

from vinterunofficial import VinterAPI

single_assets = VinterAPI("<APIKey>", "single_assets")
multi_assets = VinterAPI("<APIKey>", "multi_assets")

all_active_symbol_multi = [asset["symbol"] for asset in multi_assets.get_all_active_symbols()]
all_active_symbol_single = [asset["symbol"] for asset in single_assets.get_all_active_symbols()]

print("All active symbols for multi assets: {}".format(all_active_symbol_multi))
print("All active symbols for single assets: {}".format(all_active_symbol_single))

Get Contribution of Single Asset

from vinterunofficial import VinterAPI

single_assets = VinterAPI("<APIKey>", "single_assets")

selected_symbol = "btc-usd-p-r"

single_asset_contribution = single_assets.get_contributions(selected_symbol)

print("The contribution of {} is {}".format(selected_symbol, single_asset_contribution))

Get Weight of Multi Asset

from vinterunofficial import VinterAPI

multi_assets = VinterAPI("<APIKey>", "multi_assets")

selected_symbol = "vnby-bold1-2-d"

multi_asset_weight = multi_assets.get_current_rebalance_weight(selected_symbol)

print("The weight of {} is {}".format(selected_symbol, multi_asset_weight))

Get Next Rebalance Date of Multi Asset

from vinterunofficial import VinterAPI

multi_assets = VinterAPI("<APIKey>", "multi_assets")

selected_symbol = "vnby-bold1-2-d"

next_rebalance_date = multi_assets.get_next_rebalance_date(selected_symbol)

print("The next rebalance date of {} is {}".format(selected_symbol, next_rebalance_date))

Get Previous Rebalance Date of Multi Asset

from vinterunofficial import VinterAPI

multi_assets = VinterAPI("<APIKey>", "multi_assets")

selected_symbol = "vnby-bold1-2-d"

previous_rebalance_date = multi_assets.get_previous_rebalance_date(selected_symbol)

print("The previous rebalance date of {} is {}".format(selected_symbol, previous_rebalance_date))

Get Next Review Date of Multi Asset

from vinterunofficial import VinterAPI

multi_assets = VinterAPI("<APIKey>", "multi_assets")

selected_symbol = "vnby-bold1-2-d"

next_review_date = multi_assets.get_next_review_date(selected_symbol)

print("The next review date of {} is {}".format(selected_symbol, next_review_date))

Get Previous Review Date of Multi Asset

from vinterunofficial import VinterAPI

multi_assets = VinterAPI("<APIKey>", "multi_assets")

selected_symbol = "vnby-bold1-2-d"

previous_review_date = multi_assets.get_previous_review_date(selected_symbol)

print("The previous review date of {} is {}".format(selected_symbol, previous_review_date))

Get Next Rebalance Weight of Multi Asset

from vinterunofficial import VinterAPI

multi_assets = VinterAPI("<APIKey>", "multi_assets")

selected_symbol = "vnby-bold1-2-d"

next_rebalance_weight = multi_assets.get_next_rebalance_weight(selected_symbol)

print("The next rebalance weight of {} is {}".format(selected_symbol, next_rebalance_weight))

Websocket

from vinterunofficial import VinterAPIWS

def on_message(ws, message):
    print(message)
    
    #ws.close() # Uncomment this line to close the websocket after receiving a message

def on_error(ws, error):
    print(error)

def on_close(ws, close_status_code, close_msg):
    print("### closed ###")
    print(f"close_status_code: {close_status_code} close_msg: {close_msg}")

def on_open(ws):
    print("### open ###")

vinter_ws = VinterAPIWS(
    symbol="btc-usd-p-r",
    token="<APIKey>",
    asset_type="single_assets",
    on_message=on_message,
    on_error=on_error,
    on_close=on_close,
    on_open=on_open,
)
vinter_ws.open()

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vinterunofficial-0.1.8.tar.gz (13.1 kB view details)

Uploaded Source

Built Distribution

vinterunofficial-0.1.8-py3-none-any.whl (13.0 kB view details)

Uploaded Python 3

File details

Details for the file vinterunofficial-0.1.8.tar.gz.

File metadata

  • Download URL: vinterunofficial-0.1.8.tar.gz
  • Upload date:
  • Size: 13.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for vinterunofficial-0.1.8.tar.gz
Algorithm Hash digest
SHA256 18d71ee4b52e9a91b83e1fa23bd1fe8dd98044465b07649988c440ff39dd6ae9
MD5 dc439e3bd8698fc8e67893fc5ab50edf
BLAKE2b-256 40f9b949ab3f443ccdf8b6c898982693e934730b2edc61561c303bd2ace8ca26

See more details on using hashes here.

File details

Details for the file vinterunofficial-0.1.8-py3-none-any.whl.

File metadata

File hashes

Hashes for vinterunofficial-0.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 8a18e1e0c60b612229fd0547a1516ede94028d103c69d6675c9a5179e3984163
MD5 d44c9f77d1c8c6e7197705ee714199f1
BLAKE2b-256 da605c623d35213893f30f78922ea84f4e4b6bca60fd8ada0031814ac119dddb

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page