"Limit price increment must be > 1" Did the create order API change very recently?

I am using the paper trading API and have successfully placed many thousands of limit orders. I was using 2DP for limit prices, even though that level of precision was not really required for BTC.

Now, quite suddenly the limit orders are failing with
{ code: 42210000, message: 'limit price increment must be > 1' }

This is for BTCUSD. My previously working code just broke. It’s not a problem to change my code. The concern is the breaking change. Is there somewhere that breaking API changes are documented so I can catch them before my app breaks? I googled for the specific error, but did not find any recent mentions.

body: {
    symbol: 'BTCUSD',
    qty: 0.0031,
    side: 'sell',
    type: 'limit',
    time_in_force: 'gtc',
    limit_price: 32748.16,
  }
}
{ code: 42210000, message: 'limit price increment must be > 1' }

According to Alpaca feedback, they prefer that limit orders are updated if (and only of) there has been a change to the price and/or qty. Some algos were repeatedly sending a limit order update with the exact same price as the previous limit order, which created unnecessary traffic.

I would not be surprised if this was an API change on Alpacas end. I think the only solution is to update the code, or chat to Alpaca re: their API config.

Alpaca is more than happy to break API compatibility without announcement or even acknowledgement. And it has happened repeatedly. When you contact customer support they have no clue, don’t follow up, or just show you the finger.

(they also have no problem messing with year old historic data – repeatedly – but it’s typically less of a concern)

2 Likes

The API is not broken. The price is just not valid.

32748.16 → 32748

See here:

Hi! Following this example: Buying Crypto using Alpaca Snapshot and Crypto APIs I am getting the following error: alpaca_trade_api.rest.APIError: limit price increment must be > 1 when submitting a limit order. I’ve reset my paper account several times and formatted the limit_price.

{
  "symbol": "BTCUSD",
  "side": "buy",
  "type": "limit",
  "time_in_force": "day",
  "qty": 2.2009,
  "limit_price": 22717.47
}