Package: vinterunofficial
Unofficial Wrapper for the Vinter APIThis is an unofficial wrapper for the Vinter API. It is not affiliated with Vinter in any way.InstallationpipinstallvinterunofficialDocumentationVinterAPIDocumentationUsageValid AssetType APIsingle_assetsmulti_assetsstaking_yieldsnavValid AssetType Websocketsingle_assetsmulti_assetsnavImportant Notes About the LibraryThe 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.Version of the Libraryimportvinterunofficialprint(vinterunofficial.__version__)Importing the libraryfromvinterunofficialimportVinterAPI,VinterAPIAsyncGet Latest DatafromvinterunofficialimportVinterAPIvinter=VinterAPI(api_key="<APIKey>",asset_type="single_assets")selected_symbol="btc-usd-p-d"# Get the latest value of the assetdata=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 oldestcurrent_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 RangesfromvinterunofficialimportVinterAPIvinter=VinterAPI(api_key="<APIKey>",asset_type="single_assets")selected_symbol="btc-usd-p-d"# Get the latest value of the assetdata=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 valuefromvinterunofficialimportVinterAPIvinter=VinterAPI(api_key="<APIKey>",asset_type="single_assets")selected_symbol="btc-usd-p-d"# Get the latest value of the assetcurrent_price=vinter.get_latest_value(selected_symbol)print("The current price of{}is{}".format(selected_symbol,current_price))Get All Active SymbolsfromvinterunofficialimportVinterAPIsingle_assets=VinterAPI(api_key="<APIKey>",asset_type="single_assets")multi_assets=VinterAPI(api_key="<APIKey>",asset_type="multi_assets")all_active_symbol_multi=[asset["symbol"]forassetinmulti_assets.get_all_active_symbols()]all_active_symbol_single=[asset["symbol"]forassetinsingle_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 AssetfromvinterunofficialimportVinterAPIsingle_assets=VinterAPI(api_key="<APIKey>",asset_type="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 AssetfromvinterunofficialimportVinterAPImulti_assets=VinterAPI(api_key="<APIKey>",asset_type="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 AssetfromvinterunofficialimportVinterAPImulti_assets=VinterAPI(api_key="<APIKey>",asset_type="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 AssetfromvinterunofficialimportVinterAPImulti_assets=VinterAPI(api_key="<APIKey>",asset_type="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 AssetfromvinterunofficialimportVinterAPImulti_assets=VinterAPI(api_key="<APIKey>",asset_type="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 AssetfromvinterunofficialimportVinterAPImulti_assets=VinterAPI(api_key="<APIKey>",asset_type="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 AssetfromvinterunofficialimportVinterAPImulti_assets=VinterAPI(api_key="<APIKey>",asset_type="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))WebsocketfromvinterunofficialimportVinterAPIWSdefon_message(ws,message):print(message)#ws.close() # Uncomment this line to close the websocket after receiving a messagedefon_error(ws,error):print(error)defon_close(ws,close_status_code,close_msg):print("### closed ###")print(f"close_status_code:{close_status_code}close_msg:{close_msg}")defon_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()