• C#
  • Java
  • VB
  • C++
  • Python
Contact us
Historical Data Limitations

The maximum number of simultaneous open historical data requests from the API is 50. In practice, it will probably be more efficient to have a much smaller number of requests pending at a time.

Pacing Violations for historical bar sizes of 30 seconds or less

Although Interactive Brokers offers our clients high quality market data, IB is not a specialised market data provider and as such it is forced to put in place restrictions to limit traffic which is not directly associated to trading. A Pacing Violation1 occurs whenever one or more of the following restrictions is not observed:

  • Making identical historical data requests within 15 seconds.
  • Making six or more historical data requests for the same Contract, Exchange and Tick Type within two seconds.
  • Making more than 60 requests within any ten minute period.

Note that when BID_ASK historical data is requested, each request is counted twice. In a nutshell, the information above can simply be put as "do not request too much data too quick".

Important: the above limitations apply to all our clients and it is not possible to overcome them. If your trading strategy's market data requirements are not met by our market data services please consider contacting a specialised provider.

Step Sizes

A step size is defined as the ratio between the historical data request's duration period and its granularity (i.e. bar size). Historical Data requests need to be assembled in such a way that only a few thousand bars are returned at a time. The following table exemplifies this concept:

DurationAllowed Bar Sizes
60 S1 sec - 1 mins
120 S1 sec - 2 mins
1800 S (30 mins)1 sec - 30 mins
3600 S (1 hr)5 secs - 1 hr
14400 S (4hr)10 secs - 3 hrs
28800 S (8 hrs)30 secs - 8 hrs
1 D1 min - 1 day
2 D2 mins - 1 day
1 W3 mins - 1 week
1 M30 mins - 1 month
1 Y1 day - 1 month

Data Availability for Stocks

The minimum expected historical data availability for stocks is one year, and depends on the user's maximum Market Data Lines :

Years of Historical DataLines requiredRequired monthly commissionsRequired monthly equityBooster packs
One year 0 - 499 Less than USD 4000 Less Then USD 5,000,000 0
Two years 500 - 749 USD 4,000 USD 5,000,000 4
Three years 750 - 999 USD 6,000 USD 7,500,000 7
Four years 1000 - 1249 USD 8,000 USD 10,000,000 9
Five years 1250 - 1499 USD 10,000 USD 12,500,000 N/A (1)

(1) The maximum number of Quote Booster packs per user name is 10.

Unavailable Historical Data

  • Tick-by-tick historical data. The smallest bar size is 1 second.
  • Studies and indicators such as Weighted Moving Averages or Bollinger Bands.
  • Bars which size is 30 seconds or less older than six months
  • Expired futures data older than two years counting from the future's expiration date.
  • Data for continuous futures contracts
  • Expired options, FOPs, warrants and structured products.
  • End of Day (EOD) data for options, FOPs, warrants and structured products.
  • Data for expired future spreads
  • Data for securities which are no longer trading.

Note:

1. At this time Historical Data Limitations for barSize = "1 mins" and greater have been lifted. However, please use caution when requesting large amounts of historical data or sending historical data requests too frequently. Though IB has lifted the "hard" limit, we still implement a "soft" slow to load-balance client requests vs. server response. Requesting too much historical data can lead to throttling and eventual disconnect of the API client. If a request requires more than several minutes to return data, it would be best to cancel the request using the IBApi.EClient.cancelHistoricalData function.