alpaca-trade-api-python
alpaca-trade-api-python copied to clipboard
APIError: internal server error occurred
Seems like if you get relatively huge amount of data Alpaca API will freakout. Example for pulling 1 month data with 1min interval: start=datetime(2021, 2, 1, 9, 30), end=datetime(2021, 2, 28, 9, 30) Yes I already transformed them to string
def get_df_alpaca(symbol: str, interval: str, start: datetime, end: datetime):
assert interval in TimeFrame._value2member_map_
df = api.get_bars(symbol, TimeFrame._value2member_map_[
interval], start.isoformat(), end.isoformat(), limit=10000, adjustment='raw').df
return df
Error msg:
~/miniconda3/lib/python3.8/site-packages/alpaca_trade_api/rest.py in get_bars(self, symbol, timeframe, start, end, adjustment, limit)
623 limit: int = None,
624 ) -> BarsV2:
--> 625 bars = list(self.get_bars_iter(symbol,
626 timeframe,
627 start,
~/miniconda3/lib/python3.8/site-packages/alpaca_trade_api/rest.py in get_bars_iter(self, symbol, timeframe, start, end, adjustment, limit, raw)
609 adjustment=adjustment,
610 start=start, end=end, limit=limit)
--> 611 for bar in bars:
612 if raw:
613 yield bar
~/miniconda3/lib/python3.8/site-packages/alpaca_trade_api/rest.py in _data_get_v2(self, endpoint, symbol, **kwargs)
533 data['limit'] = actual_limit
534 data['page_token'] = page_token
--> 535 resp = self.data_get('/stocks/{}/{}'.format(symbol, endpoint),
536 data=data, api_version='v2')
537 items = resp.get(endpoint, [])
~/miniconda3/lib/python3.8/site-packages/alpaca_trade_api/rest.py in data_get(self, path, data, api_version)
190 def data_get(self, path, data=None, api_version='v1'):
191 base_url: URL = get_data_url()
--> 192 return self._request(
193 'GET', path, data, base_url=base_url, api_version=api_version,
194 )
~/miniconda3/lib/python3.8/site-packages/alpaca_trade_api/rest.py in _request(self, method, path, data, base_url, api_version)
137 while retry >= 0:
138 try:
--> 139 return self._one_request(method, url, opts, retry)
140 except RetryException:
141 retry_wait = self._retry_wait
~/miniconda3/lib/python3.8/site-packages/alpaca_trade_api/rest.py in _one_request(self, method, url, opts, retry)
166 error = resp.json()
167 if 'code' in error:
--> 168 raise APIError(error, http_error)
169 else:
170 raise
APIError: internal server error occurred
Hi,
see the difference in date formatting with timezone
yeah sorry forgot to mention, the DateTime passed in already have tz=NY
so the best practice when handling a large amount of data is using get_bars_iter
?