Alpaca is a great place to start, but its poorly suited for my needs. When I tried it before they sold all their orders to Wolverine. Of every execution venue I've ever sent orders to, Wolverine was the worst. When taking liquidity I have hundreds of trades where the price was filled outside the NBBO even when the market didn't change for 10 seconds after the trade. I also only received fills on my limit orders when the price moved against me, on literally thousands of trades. However, alpaca has since started sending orders to Citadel. Not exactly a prime execution venue but quite better than Wolverine. I was told by a sales rep that they would allow you to route your own orders, but after creating an account with them I found out this is still in the works and cannot be done at this time.
So alpaca does meet all of my other criteria, but the order routing and execution quality are not workable for me.