I'm thinking to go on with IB, but i'm a bit confused with their documentation. This may be combination of lack of java skills and non-perfect english. But please, bear with me. At first, one can request simultaneously 100 lines of market data (with reqMktData)? How about level 2 data? Does single reqMktDepth count as single "line" regardless of number of rows requested? Second, API has message limit of 50 per second. So, does IB's servers limit datastream to that? Or do I have to update data (from IB's servers) with updateMktDepthL2 (in case of level 2 data) and make sure that I don't cross 50pcs/sec mark. Again, does that function count as single message regardless of levels requested? My trading system will require absolutely huge amounts of realtime data, so I'm likely to hit those barriers quite fast.