Why Alpaca API does not provide "useRTH=True/False" to either get Regular Market hours data?

I have been trying to work with Regular Trading Hours (RTH) market data using the Alpaca API but never succeeded in getting data similar to what I get from other brokers. Interactive Brokers API provides something like a “useRTH =False” parameter to either work with Regular Trading Hours or not!
Why can’t Alpaca Markets API have a similar thing to make our lives easier?

You can easily filter the data returned for market hours. See the commented line below:

def get_bars(self, symbols:pd.Series, start_datetime:datetime, end_datetime:datetime, timeframe):
        stockbar_request = StockBarsRequest(symbol_or_symbols=symbols.tolist(), start=start_datetime, end=end_datetime, \
            timeframe=timeframe, adjustment=Adjustment.DIVIDEND, feed=DataFeed.SIP)
        try:
            df = self.historicaldata_client.get_stock_bars(stockbar_request).df
            #print(df)
            
            df = df.reset_index()
            #print(df)
            df.set_index('timestamp', inplace=True)
            df = df.tz_convert('America/New_York')

            ##################################
            # filter the data returned for market hours
            df= df.between_time("9:30", "16:00")
            ##################################

            #print(df)
        except BaseException as error:
            print('An exception occurred: {}'.format(error))
            
            df = pd.DataFrame()
        
        return df
1 Like

Thank you for the code,
I will give it a try.
Thank you

Filtering on client side is not good. Fetching unneeded bars consumes bandwidth.
Besides hours need to filter trading days too.

Is there a way to filter data on server side?
Can you provide code example to return filtered data?