I've had experience with IB in a quant fund setting. I was impressed with it. Significantly further ahead of the curve in regards to their API offering compared to other brokerages.
At my last check it was mostly geared towards C++/Java with less than ideal documentation. However there are some good open source wrappers available (Python): https://github.com/blampe/IbPy
As stated in the parent comment, the minimum account balance is $10k.