When maintaining an army of bots becomes more expensive than the amount of money they are making from it, they will stop doing it.
There's an upper bound to "bot complexity"; that being the complexity you want to impose on a normal user. For many sites (e.g. instagram) it's often easier to just "pretend to be a normal user" and hit it from a headless browser. You lose some functionality, but at least for my needs, that's always been a sufficient fallback.
As such, I've always been of the opinion that the primary function of API limitations is to punish/limit/extract more money from the good participants.
Most bot farms have a LOT of dev accounts, multiple apps, ways to automatically create an app, etc.
This is not a solution against bots.