Throttles

Discussion

A dynamic throttle is in place on a per-method level. If an application receives a response with the backoff field set, it must wait that many seconds before hitting the same method again. For the purposes of throttling, all /me routes are considered to be identical to their /users/{ids} equivalent. Note that backoff is set based on a combination of factors, and may not be consistently returned for the same arguments to the same method. Additionally, all methods (even seemingly trivial ones) may return backoff.

Below is an example error response from the API due to rate limiting:

{ "error_id": 407, "backoff": 10, "error_message": "You cannot perform this action for another 10 seconds", "error_name": "write_failed" }

While not strictly a throttle, the API employs heavy caching and as such no application should make semantically identical requests more than once a minute. This is generally a waste of bandwidth as, more often than not, the exact same result will be returned.