Rate Limits
All rate limits on the SoundCloud API are currently calculated against a client application's client id.
Global Rate Limit
We currently do not enforce any limit on the total number of calls made by a client application in aggregate.
Rate Limit on Play Requests
Effective July 1, all requests that result in access to a playable stream are subject to a limit of 15,000 requests per any 24-hour time window. Currently, this is inclusive of all requests that are made to /tracks/:id/stream
.
After a previous time window has expired, a new time window starts from the first request made.
The majority of SoundCloud API rate limits are in the form of 24-hour time windows.
Reaching Rate Limits
If your app exceeds an API rate limit, the service will return an HTTP 429 response code Too Many Requests
. The body of the response is a JSON object that contains additional information about the rate limit reached and when the limit will be reset.
The following example is an error response for the rate limit on play requests:
{
"errors": [
{
"meta": {
"rate_limit": {
"group": "plays",
"max_nr_of_requests": 15000,
"time_window": "PT24H"
},
"remaining_requests": 0,
"reset_time": "2015/06/01 09:49:40 +0000"
}
}
]
}
If your client has exceeded multiple rate limits, the service will return a JSON API error response that contains additional information.
Field | Meaning |
---|---|
rate_limit
|
An object that contains data about the specific rate limit exceeded in this error. |
group
|
The name of the rate limit endpoint group. Currently we only limit the plays group. |
max_nr_of_requests
|
The number of requests allowed for the endpoint group. |
time_window
|
The time window duration as ISO 8601 for group. |
remaining_requests
|
The number of remaining requests for group. |
reset_time
|
The time of the limit reset in the format yyyy/MM/dd HH:mm:ss Z. |