Music — entry 027 of 32

SoundCloud

Verified Jul 2026

SoundCloud's API covers upload, streaming, search, and the social graph (follows, likes, comments, reposts) across its independent-artist catalog, authenticated with OAuth 2.1 and mandatory PKCE. As of this check, registering a new application requires the developer's own SoundCloud account to already hold a paid Artist Pro subscription — a real access-cost change from the historically free, open registration this entry inherited. Endpoints return JSON, with legacy JSONP support for cross-domain callback use.

musicaudiooauthcreator-platform
AuthenticationOAuthRequires an OAuth flow; expect app registration.
HTTPSSupportedTraffic is encrypted in transit.
CORSEnabledCallable directly from browser JavaScript.
PricingPaidSubscription required — no meaningful free tier.
FormatsJSONResponses can be requested as JSON.

GreatAPIs Score

Score66out of 100
Authentication8/25OAuth flow required
Pricing9/20Paid API
Docs20/20Machine-readable spec file bundled
Formats9/15Single response format
Freshness20/20Verified within 6 months

Embed this badge

Scored 66 on greatapis.com
<a href="https://greatapis.com/api/soundcloud/"><img src="https://greatapis.com/badge/soundcloud.svg" alt="Scored 66 on greatapis.com"></a>

Auth quickstart

  1. Register an app / run the OAuth flow to obtain a bearer token.
  2. Send it as an Authorization headerAuthorization: Bearer <token>
Stored keyNo key stored

Your key is stored only in this browser (localStorage) and sent directly to the API — never to greatapis.

Endpoints

Servers
https://api.soundcloud.com
Auth
AuthHeaderClientId
oauth2

Authentication and Authorization Endpoints.

GET/connectThe OAuth2 authorization endpoint. Your app redirects a user to this endpoint, allowing them to delegate access to their account.
Responses
StatusDescriptionSchema
302
401
POST/oauth2/tokenThis endpoint accepts POST requests and is used to provision access tokens once a user has authorized your application.
Request body

application/x-www-form-urlencoded

Responses
StatusDescriptionSchema
200Success
400Bad Request
401
me19

Own User Endpoints.

GET/meReturns the authenticated user’s information.
Responses
StatusDescriptionSchema
200
401
GET/me/activitiesReturns the authenticated user's activities.
Responses
StatusDescriptionSchema
200
401
GET/me/activities/all/ownRecent the authenticated user's activities.
Responses
StatusDescriptionSchema
200
401
GET/me/activities/tracksReturns the authenticated user's recent track related activities.
Responses
StatusDescriptionSchema
200
401
GET/me/connectionsReturns a list of the authenticated user's connected social accounts.
Responses
StatusDescriptionSchema
200
401
GET/me/connections/{connection_id}Returns the authenticated user's connected social account.
Responses
StatusDescriptionSchema
200
401
404
GET/me/favorites/idsReturns user’s favorites ids. (use /me/likes/tracks instead to fetch the authenticated user's likes)
Responses
StatusDescriptionSchema
200Success
404The user could not be found
GET/me/followersReturns a list of users who are following the authenticated user.
Responses
StatusDescriptionSchema
200
401
GET/me/followers/{follower_id}Returns a user who is following the authenticated user. (use /users/{user_id} instead, to fetch the user details)
Responses
StatusDescriptionSchema
200
401
GET/me/followingsReturns a list of users who are followed by the authenticated user.
Responses
StatusDescriptionSchema
200
401
GET/me/followings/tracksReturns a list of recent tracks from users followed by the authenticated user.
Responses
StatusDescriptionSchema
200
401
GET/me/followings/{user_id}Returns a user who is followed by the authenticated user. (use /users/{user_id} instead, to fetch the user details)
Responses
StatusDescriptionSchema
200
401
404
PUT/me/followings/{user_id}Follows a user.
Responses
StatusDescriptionSchema
200
201
401
404
DELETE/me/followings/{user_id}Deletes a user who is followed by the authenticated user.
Responses
StatusDescriptionSchema
200Success
401
404
422
GET/me/likes/tracksReturns a list of favorited or liked tracks of the authenticated user.
Responses
StatusDescriptionSchema
200
401
GET/me/playlistsReturns user’s playlists (sets).
Responses
StatusDescriptionSchema
200
401
404
GET/me/playlists/{playlist_id}Returns playlist. (use /playlists/{playlist_id} instead, to fetch the playlist details)
Responses
StatusDescriptionSchema
200
GET/me/tracksReturns a list of user's tracks.
Responses
StatusDescriptionSchema
200
401
GET/me/tracks/{track_id}Returns a specified track. (use /tracks/{track_id} instead, to fetch the track details)
Responses
StatusDescriptionSchema
200
search3

Search Endpoints.

GET/playlistsPerforms a playlist search based on a query
Responses
StatusDescriptionSchema
200
400
401
GET/tracksPerforms a track search based on a query
Responses
StatusDescriptionSchema
200
400
401
500Internal Server Error
GET/usersPerforms a user search based on a query
Responses
StatusDescriptionSchema
200
400
401
playlists6

Playlists Endpoints.

POST/playlistsCreates a playlist.
Request body

application/jsonCreateUpdatePlaylistRequest

Responses
StatusDescriptionSchema
201
401
404
GET/playlists/{playlist_id}Returns a playlist.
Responses
StatusDescriptionSchema
200
400
401
PUT/playlists/{playlist_id}Updates a playlist.
Request body

application/jsonCreateUpdatePlaylistRequest

Responses
StatusDescriptionSchema
200
401
404
DELETE/playlists/{playlist_id}Deletes a playlist.
Responses
StatusDescriptionSchema
200Success
404
GET/playlists/{playlist_id}/repostersReturns a collection of playlist's reposters.
Responses
StatusDescriptionSchema
200
401
404
GET/playlists/{playlist_id}/tracksReturns tracks under a playlist.
Responses
StatusDescriptionSchema
200
400
401
tracks10

Tracks Endpoints.

POST/tracksUploads a new track.
Request body

multipart/form-dataTrackDataRequest

Responses
StatusDescriptionSchema
201
400
401
GET/tracks/{track_id}Returns a track.
Responses
StatusDescriptionSchema
200
401
404
PUT/tracks/{track_id}Updates a track's information.
Request body

application/jsonTrackMetadataRequest

Responses
StatusDescriptionSchema
200
400
401
DELETE/tracks/{track_id}Deletes a track.
Responses
StatusDescriptionSchema
200Success
404
GET/tracks/{track_id}/commentsReturns the comments posted on the track(track_id).
Responses
StatusDescriptionSchema
200
401
404
POST/tracks/{track_id}/commentsReturns the newly created comment on success
Request body

application/json; charset=utf-8 (required)

Responses
StatusDescriptionSchema
201
422
429
GET/tracks/{track_id}/favoritersReturns a list of users who have favorited or liked the track.
Responses
StatusDescriptionSchema
200
401
404
GET/tracks/{track_id}/relatedReturns all related tracks of track on SoundCloud.
Responses
StatusDescriptionSchema
200
401
404
GET/tracks/{track_id}/repostersReturns a collection of track's reposters.
Responses
StatusDescriptionSchema
200
401
404
GET/tracks/{track_id}/streamsReturns a track's streamable URLs
Responses
StatusDescriptionSchema
200
401
404
users10

SoundCloud Users Endpoints.

GET/users/{user_id}Returns a user.
Responses
StatusDescriptionSchema
200
401
404
GET/users/{user_id}/commentsReturns a list of user's comments.
Responses
StatusDescriptionSchema
200
401
404
GET/users/{user_id}/favoritesReturns a list of user's favorited or liked tracks. (use /users/:userId/likes/tracks instead, to fetch a user's likes)
Responses
StatusDescriptionSchema
200
401
GET/users/{user_id}/followersReturns a list of user’s followers.
Responses
StatusDescriptionSchema
200
401
GET/users/{user_id}/followingsReturns a list of user’s followings.
Responses
StatusDescriptionSchema
200
401
GET/users/{user_id}/followings/{following_id}Returns a user's following. (use /users/{user_id} instead, to fetch the user details)
Responses
StatusDescriptionSchema
200
401
404
GET/users/{user_id}/likes/tracksReturns a list of user's liked tracks.
Responses
StatusDescriptionSchema
200
400
401
404
GET/users/{user_id}/playlistsReturns a list of user's playlists.
Responses
StatusDescriptionSchema
200
401
GET/users/{user_id}/tracksReturns a list of user's tracks.
Responses
StatusDescriptionSchema
200
401
GET/users/{user_id}/web-profilesReturns list of user's links added to their profile (website, facebook, instagram).
Responses
StatusDescriptionSchema
200
401
404
likes4

Liking Tracks & Playlists.

POST/likes/playlists/{playlist_id}Likes a playlist.
Responses
StatusDescriptionSchema
200
201
400
401
404
429
DELETE/likes/playlists/{playlist_id}Unlikes a playlist.
Responses
StatusDescriptionSchema
200
400
404
POST/likes/tracks/{track_id}Likes a track.
Responses
StatusDescriptionSchema
200
400
401
404
429
DELETE/likes/tracks/{track_id}Unlikes a track.
Responses
StatusDescriptionSchema
200
400
404
reposts4

Reposting Tracks & Playlists.

POST/reposts/playlists/{playlist_id}Reposts a playlist as the authenticated user
Responses
StatusDescriptionSchema
201Created
401
404
DELETE/reposts/playlists/{playlist_id}Removes a repost on a playlist as the authenticated user
Responses
StatusDescriptionSchema
200Success
401
404
POST/reposts/tracks/{track_id}Reposts a track as the authenticated user
Responses
StatusDescriptionSchema
201Created
401
404
DELETE/reposts/tracks/{track_id}Removes a repost on a track as the authenticated user
Responses
StatusDescriptionSchema
200Success
401
404
miscellaneous1

Miscellaneous Endpoints.

GET/resolveResolves soundcloud.com URLs to Resource URLs to use with the API.
Responses
StatusDescriptionSchema
302

Try it

Developer reference

Base URLhttps://api.soundcloud.com
Rate limit

No blanket per-app request cap: SoundCloud enforces limits only on two specific flows, both keyed to client_id. Play-stream requests to /tracks/:id/stream are capped at 15,000 per 24-hour window; client_credentials token issuance is capped at 50 per 12 hours per app and 30 per hour per IP, so apps should reuse and refresh access tokens rather than repeating the credentials exchange. No limit is currently enforced on total calls in aggregate. Exceeding a tracked limit returns HTTP 429 with the limit, remaining count, and reset time in the response body.

Key endpoints
  • GET/tracks
  • GET/tracks/{track_id}
  • POST/tracks
  • GET/users/{user_id}
  • GET/playlists/{playlist_id}