* Aggressive rate limiting that makes it hard to use the API in real world situations. Especially if there is no documentation about what the limits are.
* Throwing errors with no explanation about what went wrong or how to correct it. Especially effective if given two very similar requests, one succeeds and the other one fails.
* Throwing errors randomly / when under load / when not under load / based on the phase of the moon.
* Having absolutely no example code anywhere in the documentation.
* Requiring hundreds of lines of code to even establish a connection to the API.
* Requiring a specific client library to access the API. Extra points if it's Windows only or requires a specific out of support version of Python 2.
* Aggressive rate limiting that makes it hard to use the API in real world situations. Especially if there is no documentation about what the limits are.
* Throwing errors with no explanation about what went wrong or how to correct it. Especially effective if given two very similar requests, one succeeds and the other one fails.
* Throwing errors randomly / when under load / when not under load / based on the phase of the moon.
* Having absolutely no example code anywhere in the documentation.
* Requiring hundreds of lines of code to even establish a connection to the API.
* Requiring a specific client library to access the API. Extra points if it's Windows only or requires a specific out of support version of Python 2.