All rate limits on the Instagram Platform are controlled separately for each access token, and on a sliding 1-hour window. Live apps have higher rate limits than apps in Sandbox Mode.
Global Rate Limits
Global rate limits are applied inclusive of all API calls made by an app per access token over the 1-hour sliding window, regardless of the particular endpoint. Rate limits also apply to invalid or malformed requests.
|Client Status||Rate Limit|
|Sandbox||500 / hour|
|Live||5000 / hour|
Endpoint-Specific Rate Limits
Endpoints used to publish (POST or DELETE) have rate limits that are applied on an per-endpoint basis. Any calls made to these endpoints by your OAuth Client are also counted towards the global rate limits noted above.
|Client Status||Endpoint||Rate Limit|
|Sandbox||/media/media-id/likes||30 / hour|
|Sandbox||/media/media-id/comments||30 / hour|
|Sandbox||/users/user-id/relationships||30 / hour|
|Live||/media/media-id/likes||60 / hour|
|Live||/media/media-id/comments||60 / hour|
|Live||/users/user-id/relationships||60 / hour|
If your app exceeds any of these rate limits, you will receive a response with an HTTP response code of 429 (Too Many Requests). The body of the response will consist of the following fields:
|error_message||The maximum number of requests per hour has been exceeded.|
You may also receive responses with an HTTP response code of 400 (Bad Request) if we detect spammy behavior by a person using your app. These errors are unrelated to rate limiting.