SoundCloud for Developers

Discover, connect and build

Rate Limits

Rate limits are per client_id. Exceeding a limit returns HTTP 429 Too Many Requests.

  • Play stream requests: 15,000 per 24-hour window
  • Applies to: /tracks/:id/stream
  • Global aggregate limit: not currently enforced
  • Client Credentials tokens: 50 per 12 hours per app, 30 per hour per IP (see Authentication in the API Guide)

All rate limits on the SoundCloud API are calculated against a client application's client ID.

Global Rate Limit

No limit is currently enforced on the total number of calls a client application makes in aggregate.

Rate Limit on Play Requests

Requests that result in access to a playable stream are limited to 15,000 per 24-hour window. This applies to all requests made to /tracks/:id/stream.

A new time window starts from the first request after the previous window expires.

Most SoundCloud API rate limits use 24-hour time windows.

Reaching Rate Limits

Exceeding an API rate limit returns an HTTP 429 Too Many Requests response. The response body is a JSON object containing details about the rate limit reached and when it resets.

Example error response for the play-request rate limit:

{
  "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"
      }
    }
  ]
}

When multiple rate limits have been exceeded, the JSON API error response includes the following fields:

Field Meaning
rate_limit Object containing data about the specific rate limit exceeded.
group Name of the rate limit endpoint group. Currently only the plays group is limited.
max_nr_of_requests Number of requests allowed for the endpoint group.
time_window Duration of the time window as ISO 8601 for the group.
remaining_requests Number of remaining requests for the group.
reset_time Time of the limit reset in the format yyyy/MM/dd HH:mm:ss Z.