@@ -558,6 +558,7 @@ def _data_get(self,
558558 page_limit : int = DATA_V2_MAX_LIMIT ,
559559 feed : Optional [str ] = None ,
560560 asof : Optional [str ] = None ,
561+ loc : Optional [str ] = None ,
561562 ** kwargs ):
562563 page_token = None
563564 total_items = 0
@@ -575,7 +576,9 @@ def _data_get(self,
575576 data ['limit' ] = actual_limit
576577 data ['page_token' ] = page_token
577578 path = f'/{ endpoint_base } '
578- if api_version == 'v1beta2' or is_multi_symbol :
579+ if loc :
580+ path += f'/{ loc } '
581+ if api_version == 'v1beta3' or is_multi_symbol :
579582 data ['symbols' ] = _join_with_commas (symbol_or_symbols )
580583 elif symbol_or_symbols :
581584 path += f'/{ symbol_or_symbols } '
@@ -790,10 +793,11 @@ def get_crypto_trades_iter(self,
790793 start : Optional [str ] = None ,
791794 end : Optional [str ] = None ,
792795 limit : int = None ,
796+ loc : str = "us" ,
793797 raw = False ) -> TradeIterator :
794798 trades = self ._data_get ('trades' , symbol ,
795- api_version = 'v1beta2 ' , endpoint_base = 'crypto' ,
796- start = start , end = end , limit = limit )
799+ api_version = 'v1beta3 ' , endpoint_base = 'crypto' ,
800+ start = start , end = end , limit = limit , loc = loc )
797801 for trade in trades :
798802 if raw :
799803 yield trade
@@ -804,44 +808,23 @@ def get_crypto_trades(self,
804808 symbol : str ,
805809 start : Optional [str ] = None ,
806810 end : Optional [str ] = None ,
807- limit : int = None ) -> TradesV2 :
811+ limit : int = None ,
812+ loc : str = "us" ) -> TradesV2 :
808813 return TradesV2 (list (self .get_crypto_trades_iter (
809- symbol , start , end , limit , raw = True )))
810-
811- def get_crypto_quotes_iter (self ,
812- symbol : str ,
813- start : Optional [str ] = None ,
814- end : Optional [str ] = None ,
815- limit : int = None ,
816- raw = False ) -> QuoteIterator :
817- quotes = self ._data_get ('quotes' , symbol ,
818- api_version = 'v1beta2' , endpoint_base = 'crypto' ,
819- start = start , end = end , limit = limit )
820- for quote in quotes :
821- if raw :
822- yield quote
823- else :
824- yield self .response_wrapper (quote , Quote )
825-
826- def get_crypto_quotes (self ,
827- symbol : str ,
828- start : Optional [str ] = None ,
829- end : Optional [str ] = None ,
830- limit : int = None ) -> QuotesV2 :
831- return QuotesV2 (list (self .get_crypto_quotes_iter (
832- symbol , start , end , limit , raw = True )))
814+ symbol , start , end , limit , loc , raw = True )))
833815
834816 def get_crypto_bars_iter (self ,
835817 symbol : Union [str , List [str ]],
836818 timeframe : TimeFrame ,
837819 start : Optional [str ] = None ,
838820 end : Optional [str ] = None ,
839821 limit : int = None ,
822+ loc : str = "us" ,
840823 raw = False ) -> BarIterator :
841824 bars = self ._data_get ('bars' , symbol ,
842- api_version = 'v1beta2 ' , endpoint_base = 'crypto' ,
825+ api_version = 'v1beta3 ' , endpoint_base = 'crypto' ,
843826 timeframe = timeframe ,
844- start = start , end = end , limit = limit )
827+ start = start , end = end , limit = limit , loc = loc )
845828 for bar in bars :
846829 if raw :
847830 yield bar
@@ -853,57 +836,65 @@ def get_crypto_bars(self,
853836 timeframe : TimeFrame ,
854837 start : Optional [str ] = None ,
855838 end : Optional [str ] = None ,
856- limit : int = None ) -> BarsV2 :
839+ limit : int = None ,
840+ loc : str = "us" ) -> BarsV2 :
857841 return BarsV2 (list (self .get_crypto_bars_iter (
858- symbol , timeframe , start , end , limit , raw = True )))
842+ symbol , timeframe , start , end , limit , loc , raw = True )))
859843
860- def get_latest_crypto_bars (self , symbols : List [str ]) -> LatestBarsV2 :
844+ def get_latest_crypto_bars (self , symbols : List [str ],
845+ loc : str = "us" ) -> LatestBarsV2 :
861846 resp = self .data_get (
862- '/crypto/latest/bars' ,
847+ f '/crypto/ { loc } /latest/bars' ,
863848 data = {'symbols' : _join_with_commas (symbols )},
864- api_version = 'v1beta2 ' )
849+ api_version = 'v1beta3 ' )
865850 return self .response_wrapper (resp ['bars' ], LatestBarsV2 )
866851
867- def get_latest_crypto_trades (self , symbols : List [str ]) -> LatestTradesV2 :
852+ def get_latest_crypto_trades (self , symbols : List [str ],
853+ loc : str = "us" ) -> LatestTradesV2 :
868854 resp = self .data_get (
869- '/crypto/latest/trades' ,
855+ f '/crypto/ { loc } /latest/trades' ,
870856 data = {'symbols' : _join_with_commas (symbols )},
871- api_version = 'v1beta2 ' )
857+ api_version = 'v1beta3 ' )
872858 return self .response_wrapper (resp ['trades' ], LatestTradesV2 )
873859
874- def get_latest_crypto_quotes (self , symbols : List [str ]) -> LatestQuotesV2 :
860+ def get_latest_crypto_quotes (self , symbols : List [str ],
861+ loc : str = "us" ) -> LatestQuotesV2 :
875862 resp = self .data_get (
876- '/crypto/latest/quotes' ,
863+ f '/crypto/ { loc } /latest/quotes' ,
877864 data = {'symbols' : _join_with_commas (symbols )},
878- api_version = 'v1beta2 ' )
865+ api_version = 'v1beta3 ' )
879866 return self .response_wrapper (resp ['quotes' ], LatestQuotesV2 )
880867
881- def get_crypto_snapshot (self , symbols : str ) -> SnapshotsV2 :
868+ def get_crypto_snapshot (self , symbols : str ,
869+ loc : str = "us" ) -> SnapshotsV2 :
882870 resp = self .data_get (
883- '/crypto/snapshots' ,
871+ f '/crypto/ { loc } /snapshots' ,
884872 data = {'symbols' : symbols },
885- api_version = 'v1beta2 ' )
873+ api_version = 'v1beta3 ' )
886874 return self .response_wrapper (resp ['snapshots' ], SnapshotsV2 )
887875
888- def get_crypto_snapshots (self , symbols : List [str ]) -> SnapshotsV2 :
876+ def get_crypto_snapshots (self , symbols : List [str ],
877+ loc : str = "us" ) -> SnapshotsV2 :
889878 resp = self .data_get (
890- '/crypto/snapshots' ,
879+ f '/crypto/ { loc } /snapshots' ,
891880 data = {'symbols' : _join_with_commas (symbols )},
892- api_version = 'v1beta2 ' )
881+ api_version = 'v1beta3 ' )
893882 return self .response_wrapper (resp ['snapshots' ], SnapshotsV2 )
894883
895- def get_latest_crypto_orderbook (self , symbol : str ) -> OrderbookV2 :
884+ def get_latest_crypto_orderbook (self , symbol : str ,
885+ loc : str = "us" ) -> OrderbookV2 :
896886 resp = self .data_get (
897- '/crypto/latest/orderbooks' ,
887+ f '/crypto/ { loc } /latest/orderbooks' ,
898888 data = {'symbols' : symbol },
899- api_version = 'v1beta2 ' )
889+ api_version = 'v1beta3 ' )
900890 return self .response_wrapper (resp ['orderbooks' ], OrderbooksV2 )
901891
902- def get_latest_crypto_orderbooks (self , symbols : List [str ]) -> OrderbookV2 :
892+ def get_latest_crypto_orderbooks (self , symbols : List [str ],
893+ loc : str = "us" ) -> OrderbookV2 :
903894 resp = self .data_get (
904- '/crypto/latest/orderbooks' ,
895+ f '/crypto/ { loc } /latest/orderbooks' ,
905896 data = {'symbols' : _join_with_commas (symbols )},
906- api_version = 'v1beta2 ' )
897+ api_version = 'v1beta3 ' )
907898 return self .response_wrapper (resp ['orderbooks' ], OrderbooksV2 )
908899
909900 def get_news_iter (self ,
0 commit comments