Music and audio streaming platform
developers.soundcloud.com/docs/api ↗Query structured spec data via REST or MCP. Get exactly what your agent needs.
https://api.soundcloud.com
/me
Success
Unauthorized
GET /me
/me/activities
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| access | query | optional | array | Filters content by level of access the user (logged in or anonymous) has to the track. The result list will include only tracks with the specified access. Include all options if you’d like to see all possible tracks. See |
| limit | query | optional | integer | Number of results to return in the collection. |
Success
Unauthorized
GET /me/activities
/me/activities/all/own
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| access | query | optional | array | Filters content by level of access the user (logged in or anonymous) has to the track. The result list will include only tracks with the specified access. Include all options if you’d like to see all possible tracks. See |
| limit | query | optional | integer | Number of results to return in the collection. |
Success
Unauthorized
GET /me/activities/all/own
/me/activities/tracks
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| access | query | optional | array | Filters content by level of access the user (logged in or anonymous) has to the track. The result list will include only tracks with the specified access. Include all options if you’d like to see all possible tracks. See |
| limit | query | optional | integer | Number of results to return in the collection. |
Success
Unauthorized
GET /me/activities/tracks
/me/followers
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| limit | query | optional | integer | Number of results to return in the collection. |
Success
Unauthorized
GET /me/followers
/me/followings
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| limit | query | optional | integer | Number of results to return in the collection. |
| offset | query | optional | integer | Offset of first result. Deprecated, use |
Success
Unauthorized
GET /me/followings
/me/followings/tracks
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| access | query | optional | array | Filters content by level of access the user (logged in or anonymous) has to the track. The result list will include only tracks with the specified access. Include all options if you’d like to see all possible tracks. See |
| limit | query | optional | integer | Number of results to return in the collection. |
| offset | query | optional | integer | Offset of first result. Deprecated, use |
Success
Unauthorized
GET /me/followings/tracks
/me/likes/playlists
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| limit | query | optional | integer | Number of results to return in the collection. |
| linked_partitioning | query | optional | boolean | Returns paginated collection of items (recommended, returning a list without pagination is deprecated and should not be used) |
Success
Unauthorized
GET /me/likes/playlists
/me/likes/tracks
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| limit | query | optional | integer | Number of results to return in the collection. |
| access | query | optional | array | Filters content by level of access the user (logged in or anonymous) has to the track. The result list will include only tracks with the specified access. Include all options if you’d like to see all possible tracks. See |
| linked_partitioning | query | optional | boolean | Returns paginated collection of items (recommended, returning a list without pagination is deprecated and should not be used) |
Success
Unauthorized
GET /me/likes/tracks
/me/playlists
Returns playlist info, playlist tracks and tracks owner info.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| show_tracks | query | optional | boolean | A boolean flag to request a playlist with or without tracks. Default is |
| linked_partitioning | query | optional | boolean | Returns paginated collection of items (recommended, returning a list without pagination is deprecated and should not be used) |
| limit | query | optional | integer | Number of results to return in the collection. |
Success
Unauthorized
Not Found
GET /me/playlists
/me/tracks
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| limit | query | optional | integer | Number of results to return in the collection. |
| linked_partitioning | query | optional | boolean | Returns paginated collection of items (recommended, returning a list without pagination is deprecated and should not be used) |
Success
Unauthorized
GET /me/tracks
/resolve
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| url | query | optional | string | SoundCloud URL |
OK
Found
Not Found
GET /resolve
/connect
response_type=code) is the only allowed method of authorization.state parameter for CSRF protection. Pass a sufficient random nonce here and verify this nonce again after retrieving the token.| Name | In | Required | Type | Description |
|---|---|---|---|---|
| client_id | query | optional | string | The client id belonging to your application |
| redirect_uri | query | optional | string | The redirect uri you have configured for your application |
| response_type | query | optional | string | Support only the Authorization Code Flow |
| state | query | optional | string | Any value included here will be appended to the redirect URI. Use this for CSRF protection. |
OK
Redirect to connect portal
Unauthorized
GET /connect
/playlists/{playlist_id}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| playlist_id | path | optional | integer | SoundCloud playlist id |
| secret_token | query | optional | string | A secret token to fetch private playlists/tracks |
| access | query | optional | array | Filters content by level of access the user (logged in or anonymous) has to the track. The result list will include only tracks with the specified access. Include all options if you’d like to see all possible tracks. See |
| show_tracks | query | optional | boolean | A boolean flag to request a playlist with or without tracks. Default is |
Success
Bad Request
Unauthorized
GET /playlists/{playlist_id}
/playlists/{playlist_id}/reposters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| playlist_id | path | optional | integer | SoundCloud playlist id |
| limit | query | optional | integer | Number of results to return in the collection. |
Success
Unauthorized
Not Found
GET /playlists/{playlist_id}/reposters
/playlists/{playlist_id}/tracks
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| playlist_id | path | optional | integer | SoundCloud playlist id |
| secret_token | query | optional | string | A secret token to fetch private playlists/tracks |
| access | query | optional | array | Filters content by level of access the user (logged in or anonymous) has to the track. The result list will include only tracks with the specified access. Include all options if you’d like to see all possible tracks. See |
| linked_partitioning | query | optional | boolean | Returns paginated collection of items (recommended, returning a list without pagination is deprecated and should not be used) |
Success
Bad Request
Unauthorized
GET /playlists/{playlist_id}/tracks
/playlists
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| q | query | optional | string | search |
| access | query | optional | array | Filters content by level of access the user (logged in or anonymous) has to the track. The result list will include only tracks with the specified access. Include all options if you’d like to see all possible tracks. See |
| show_tracks | query | optional | boolean | A boolean flag to request a playlist with or without tracks. Default is |
| limit | query | optional | integer | Number of results to return in the collection. |
| offset | query | optional | integer | Offset of first result. Deprecated, use |
| linked_partitioning | query | optional | boolean | Returns paginated collection of items (recommended, returning a list without pagination is deprecated and should not be used) |
Success
Bad Request
Unauthorized
GET /playlists
/tracks
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| q | query | optional | string | search |
| ids | query | optional | string | A comma separated list of track ids to filter on |
| genres | query | optional | string | A comma separated list of genres |
| tags | query | optional | string | A comma separated list of tags |
| bpm | query | optional | object | Return tracks with a specified bpm[from], bpm[to] |
| duration | query | optional | object | Return tracks within a specified duration range |
| created_at | query | optional | object | (yyyy-mm-dd hh:mm:ss) return tracks created within the specified dates |
| access | query | optional | array | Filters content by level of access the user (logged in or anonymous) has to the track. The result list will include only tracks with the specified access. Include all options if you’d like to see all possible tracks. See |
| limit | query | optional | integer | Number of results to return in the collection. |
| offset | query | optional | integer | Offset of first result. Deprecated, use |
| linked_partitioning | query | optional | boolean | Returns paginated collection of items (recommended, returning a list without pagination is deprecated and should not be used) |
Success
Bad Request
Unauthorized
Internal Server Error
GET /tracks
/users
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| q | query | optional | string | search |
| ids | query | optional | string | A comma separated list of track ids to filter on |
| limit | query | optional | integer | Number of results to return in the collection. |
| offset | query | optional | integer | Offset of first result. Deprecated, use |
| linked_partitioning | query | optional | boolean | Returns paginated collection of items (recommended, returning a list without pagination is deprecated and should not be used) |
Success
Bad Request
Unauthorized
GET /users
/tracks/{track_id}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| track_id | path | optional | integer | SoundCloud Track id |
| secret_token | query | optional | string | A secret token to fetch private playlists/tracks |
Success
Unauthorized
Not Found
GET /tracks/{track_id}
/tracks/{track_id}/comments
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| track_id | path | optional | integer | SoundCloud Track id |
| limit | query | optional | integer | Number of results to return in the collection. |
| offset | query | optional | integer | Offset of first result. Deprecated, use |
| linked_partitioning | query | optional | boolean | Returns paginated collection of items (recommended, returning a list without pagination is deprecated and should not be used) |
Success
Unauthorized
Not Found
GET /tracks/{track_id}/comments
/tracks/{track_id}/favoriters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| track_id | path | optional | integer | SoundCloud Track id |
| limit | query | optional | integer | Number of results to return in the collection. |
| linked_partitioning | query | optional | boolean | Returns paginated collection of items (recommended, returning a list without pagination is deprecated and should not be used) |
Success
Unauthorized
Not Found
GET /tracks/{track_id}/favoriters
/tracks/{track_id}/related
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| track_id | path | optional | integer | SoundCloud Track id |
| access | query | optional | array | Filters content by level of access the user (logged in or anonymous) has to the track. The result list will include only tracks with the specified access. Include all options if you’d like to see all possible tracks. See |
| limit | query | optional | integer | Number of results to return in the collection. |
| offset | query | optional | integer | Offset of first result. Deprecated, use |
| linked_partitioning | query | optional | boolean | Returns paginated collection of items (recommended, returning a list without pagination is deprecated and should not be used) |
Success
Unauthorized
Not Found
GET /tracks/{track_id}/related
/tracks/{track_id}/reposters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| track_id | path | optional | integer | SoundCloud Track id |
| limit | query | optional | integer | Number of results to return in the collection. |
Success
Unauthorized
Not Found
GET /tracks/{track_id}/reposters
/tracks/{track_id}/streams
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| track_id | path | optional | integer | SoundCloud Track id |
| secret_token | query | optional | string | A secret token to fetch private playlists/tracks |
Success
Unauthorized
Not Found
GET /tracks/{track_id}/streams
/users/{user_id}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| user_id | path | optional | integer | SoundCloud User id |
Success
Unauthorized
Not Found
GET /users/{user_id}
/users/{user_id}/followers
Returns a list of users that follows (user_id).
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| user_id | path | optional | integer | SoundCloud User id |
| limit | query | optional | integer | Number of results to return in the collection. |
Success
Unauthorized
GET /users/{user_id}/followers
/users/{user_id}/followings
Returns list of users that (user_id) follows.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| user_id | path | optional | integer | SoundCloud User id |
| limit | query | optional | integer | Number of results to return in the collection. |
Success
Unauthorized
GET /users/{user_id}/followings
/users/{user_id}/likes/playlists
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| user_id | path | optional | integer | SoundCloud User id |
| limit | query | optional | integer | Number of results to return in the collection. |
| linked_partitioning | query | optional | boolean | Returns paginated collection of items (recommended, returning a list without pagination is deprecated and should not be used) |
Success
Bad Request
Unauthorized
Not Found
GET /users/{user_id}/likes/playlists
/users/{user_id}/likes/tracks
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| user_id | path | optional | integer | SoundCloud User id |
| access | query | optional | array | Filters content by level of access the user (logged in or anonymous) has to the track. The result list will include only tracks with the specified access. Include all options if you’d like to see all possible tracks. See |
| limit | query | optional | integer | Number of results to return in the collection. |
| linked_partitioning | query | optional | boolean | Returns paginated collection of items (recommended, returning a list without pagination is deprecated and should not be used) |
Success
Bad Request
Unauthorized
Not Found
GET /users/{user_id}/likes/tracks
/users/{user_id}/playlists
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| user_id | path | optional | integer | SoundCloud User id |
| access | query | optional | array | Filters content by level of access the user (logged in or anonymous) has to the track. The result list will include only tracks with the specified access. Include all options if you’d like to see all possible tracks. See |
| show_tracks | query | optional | boolean | A boolean flag to request a playlist with or without tracks. Default is |
| limit | query | optional | integer | Number of results to return in the collection. |
| linked_partitioning | query | optional | boolean | Returns paginated collection of items (recommended, returning a list without pagination is deprecated and should not be used) |
Success
Unauthorized
GET /users/{user_id}/playlists
/users/{user_id}/tracks
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| user_id | path | optional | integer | SoundCloud User id |
| access | query | optional | array | Filters content by level of access the user (logged in or anonymous) has to the track. The result list will include only tracks with the specified access. Include all options if you’d like to see all possible tracks. See |
| limit | query | optional | integer | Number of results to return in the collection. |
| linked_partitioning | query | optional | boolean | Returns paginated collection of items (recommended, returning a list without pagination is deprecated and should not be used) |
Success
Unauthorized
GET /users/{user_id}/tracks
/users/{user_id}/web-profiles
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| user_id | path | optional | integer | SoundCloud User id |
| limit | query | optional | integer | Number of results to return in the collection. |
Success
Unauthorized
GET /users/{user_id}/web-profiles
Activities
{
"type": "object",
"properties": {
"next_href": {
"type": "string"
},
"collection": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Type of activity (track)."
},
"origin": {
"type": "object",
"anyOf": [
{
"$ref": "#/components/schemas/Track"
},
{
"$ref": "#/components/schemas/Playlist"
}
],
"description": "Origin."
},
"created_at": {
"type": "string",
"description": "Created timestamp."
}
}
}
},
"future_href": {
"type": "string"
}
},
"description": "User's activities."
}
Comment
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"description": "Identifier."
},
"uri": {
"type": "string",
"description": "Comment's URL."
},
"body": {
"type": "string",
"description": "Comment body."
},
"kind": {
"type": "string",
"description": "Kind (comment)."
},
"user": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"description": "unique identifier"
},
"uri": {
"type": "string",
"description": "API resource URL."
},
"kind": {
"type": "string",
"description": "kind of resource."
},
"username": {
"type": "string",
"description": "username"
},
"permalink": {
"type": "string",
"description": "permalink of the resource."
},
"avatar_url": {
"type": "string",
"description": "URL to a JPEG image."
},
"last_modified": {
"type": "string",
"description": "last modified timestamp."
},
"permalink_url": {
"type": "string",
"description": "URL to the SoundCloud.com page."
},
"reposts_count": {
"type": "integer",
"description": "number of reposts from user"
},
"followers_count": {
"type": "integer",
"description": "number of followers."
},
"followings_count": {
"type": "integer",
"description": "number of followed users."
}
},
"description": "SoundCloud User object"
},
"user_id": {
"type": "integer",
"description": "User's identifier."
},
"track_id": {
"type": "integer",
"description": "Track's identifier."
},
"timestamp": {
"type": "string",
"description": "Timestamp."
},
"created_at": {
"type": "string",
"description": "Created timestamp."
}
},
"description": "User's Comment"
}
Comments
{
"type": "object",
"properties": {
"next_href": {
"type": "string",
"nullable": true
},
"collection": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Comment"
}
}
}
}
CreateUpdatePlaylistFormRequest
{
"type": "object",
"properties": {
"playlist[ean]": {
"type": "string"
},
"playlist[genre]": {
"type": "string"
},
"playlist[title]": {
"type": "string"
},
"playlist[license]": {
"type": "string"
},
"playlist[release]": {
"type": "string"
},
"playlist[sharing]": {
"enum": [
"public",
"private"
],
"type": "string",
"default": "public"
},
"playlist[set_type]": {
"enum": [
"album",
"playlist"
],
"type": "string"
},
"playlist[tag_list]": {
"type": "string"
},
"playlist[permalink]": {
"type": "string"
},
"playlist[label_name]": {
"type": "string"
},
"playlist[description]": {
"type": "string"
},
"playlist[artwork_data]": {
"type": "string",
"title": "The playlist artwork in binary format. Supported formats are gif, jpeg and png",
"format": "binary"
},
"playlist[purchase_url]": {
"type": "string"
},
"playlist[release_date]": {
"type": "string"
},
"playlist[tracks][][id]": {
"type": "string",
"description": "To pass multiple tracks, pass multiple comma-separated values, e.g. -F \"playlist[tracks][][id]=111,222\""
},
"playlist[permalink_url]": {
"type": "string"
},
"playlist[purchase_title]": {
"type": "string"
}
}
}
CreateUpdatePlaylistRequest
{
"type": "object",
"properties": {
"playlist": {
"type": "object",
"properties": {
"ean": {
"type": "string",
"description": "The European Article Number"
},
"genre": {
"type": "string",
"description": "Playlist's genre"
},
"title": {
"type": "string",
"description": "Title of the playlist"
},
"tracks": {
"type": "array",
"items": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "SoundCloud track id"
}
}
},
"description": "List of tracks to add to playlist"
},
"license": {
"type": "string",
"description": "License number"
},
"release": {
"type": "string",
"description": "Playlist's release"
},
"sharing": {
"enum": [
"public",
"private"
],
"type": "string",
"description": "public or private"
},
"set_type": {
"enum": [
"album",
"playlist"
],
"type": "string",
"description": "Playlist or album type"
},
"tag_list": {
"type": "string",
"description": "A comma-separated list of tags"
},
"permalink": {
"type": "string",
"description": "Playlist's permalink"
},
"label_name": {
"type": "string",
"description": "Label name"
},
"description": {
"type": "string",
"description": "Description of the playlist"
},
"artwork_data": {
"type": "string",
"title": "Only for POST",
"format": "binary"
},
"purchase_url": {
"type": "string",
"description": "Purchase URL"
},
"release_date": {
"type": "string",
"description": "Release date"
},
"permalink_url": {
"type": "string",
"description": "Full permalink URL"
},
"purchase_title": {
"type": "string",
"description": "Purchase title"
}
}
}
}
}
Error
{
"type": "object",
"properties": {
"code": {
"type": "integer"
},
"link": {
"type": "string"
},
"error": {
"type": "string",
"nullable": true,
"deprecated": true
},
"errors": {
"type": "array",
"items": {
"type": "string"
},
"deprecated": true
},
"status": {
"type": "string",
"deprecated": true
},
"message": {
"type": "string"
}
}
}
Found
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status code."
},
"location": {
"type": "string",
"description": "Location URL of the resource."
}
}
}
Me
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"description": "unique identifier"
},
"uri": {
"type": "string",
"description": "API resource URL."
},
"city": {
"type": "string",
"description": "city."
},
"kind": {
"type": "string",
"description": "kind of resource."
},
"plan": {
"type": "string",
"description": "subscription plan of the user."
},
"quota": {
"type": "object",
"properties": {
"upload_seconds_left": {
"type": "integer",
"nullable": true,
"description": "upload seconds left."
},
"upload_seconds_used": {
"type": "integer",
"description": "upload seconds used."
},
"unlimited_upload_quota": {
"type": "boolean",
"description": "unlimited upload quota."
}
},
"description": "user's upload quota"
},
"locale": {
"type": "string",
"nullable": true,
"description": "locale."
},
"online": {
"type": "boolean",
"description": "online."
},
"country": {
"type": "string",
"description": "country."
},
"website": {
"type": "string",
"description": "a URL to the website."
},
"username": {
"type": "string",
"description": "username"
},
"full_name": {
"type": "string",
"description": "first and last name."
},
"last_name": {
"type": "string",
"description": "last name."
},
"permalink": {
"type": "string",
"description": "permalink of the resource."
},
"avatar_url": {
"type": "string",
"description": "URL to a JPEG image."
},
"created_at": {
"type": "string",
"description": "created at date"
},
"first_name": {
"type": "string",
"description": "first name."
},
"description": {
"type": "string",
"description": "description."
},
"likes_count": {
"type": "integer",
"description": "likes count."
},
"track_count": {
"type": "integer",
"description": "number of public tracks."
},
"discogs_name": {
"type": "string",
"description": "discogs name."
},
"myspace_name": {
"type": "string",
"deprecated": true,
"description": "myspace name"
},
"last_modified": {
"type": "string",
"description": "last modified timestamp."
},
"permalink_url": {
"type": "string",
"description": "URL to the SoundCloud.com page."
},
"reposts_count": {
"type": "integer",
"description": "number of reposts from user"
},
"subscriptions": {
"items": {
"type": "array",
"anyOf": [
{
"type": "object",
"properties": {
"product": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "subscription id instance."
},
"name": {
"type": "string",
"description": "subscription name instance."
}
},
"description": "product"
},
"recurring": {
"type": "boolean",
"description": "if the subscription is recurring or not"
}
},
"description": "subscription"
}
],
"items": {
"description": "WARNING: Missing items property in array schema. Missing items property has been filled with this AnyType schema."
}
},
"description": "a list subscriptions associated with the user"
},
"website_title": {
"type": "string",
"description": "a custom title for the website."
},
"comments_count": {
"type": "integer",
"deprecated": true,
"description": "comments count. From now on, the field always has a `0` value."
},
"playlist_count": {
"type": "integer",
"description": "number of public playlists."
},
"followers_count": {
"type": "integer",
"description": "number of followers."
},
"followings_count": {
"type": "integer",
"description": "number of followed users."
},
"upload_seconds_left": {
"type": "integer",
"nullable": true,
"description": "upload seconds left."
},
"private_tracks_count": {
"type": "integer",
"description": "number of private tracks."
},
"public_favorites_count": {
"type": "integer",
"description": "number of favorited public tracks"
},
"primary_email_confirmed": {
"type": "boolean",
"description": "boolean if email is confirmed."
},
"private_playlists_count": {
"type": "integer",
"description": "number of private playlists."
}
},
"description": "SoundCloud Me object"
}
MeGetLikedPlaylistsResponse
{
"oneOf": [
{
"$ref": "#/components/schemas/Playlists"
},
{
"$ref": "#/components/schemas/PlaylistsArray"
}
]
}
MeListLikedTracksResponse
{
"oneOf": [
{
"$ref": "#/components/schemas/Tracks"
},
{
"$ref": "#/components/schemas/TracksList"
}
]
}
OAuthToken
{
"type": "object",
"required": [
"grant_type",
"client_id",
"client_secret"
],
"properties": {
"code": {
"type": "string",
"example": "1-123456-12345678-FAbcfbe9ir2wdj0",
"description": "Authorization code. Required on `grant_type = authorization_code`."
},
"client_id": {
"type": "string",
"example": "CLIENT_ID",
"description": "Client ID"
},
"grant_type": {
"enum": [
"authorization_code",
"refresh_token",
"client_credentials"
],
"type": "string",
"example": "authorization_code",
"description": "One of `authorization_code`, `client_credentials`, `refresh_token`"
},
"redirect_uri": {
"type": "string",
"example": "https://mywebsite/auth/soundcloud",
"description": "Redirect URI. Required on `grant_type = (authorization_code|refresh_token)`."
},
"client_secret": {
"type": "string",
"example": "CLIENT_SECRET",
"description": "Client secret"
},
"refresh_token": {
"type": "string",
"example": "1234c331329477150e7b6056ff212345",
"description": "Refresh token. Required on `grant_type = refresh_token`."
}
}
}
OauthProvisionAccessToken401Response
{
"oneOf": [
{
"$ref": "#/components/schemas/Error"
}
]
}
OauthProvisionAccessTokenResponse
{
"oneOf": [
{
"$ref": "#/components/schemas/Error"
}
]
}
Playlist
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"description": "Playlist identifier."
},
"ean": {
"type": "string",
"description": "European Article Number."
},
"uri": {
"type": "string",
"description": "Playlist URI."
},
"kind": {
"type": "string",
"description": "Type of Soundcloud object (playlist)."
},
"tags": {
"type": "string",
"nullable": true,
"description": "Tags."
},
"type": {
"type": "string",
"description": "Playlist type."
},
"user": {
"$ref": "#/components/schemas/User"
},
"genre": {
"type": "string",
"description": "Playlist genre."
},
"label": {
"allOf": [
{
"type": "object",
"nullable": true
},
{
"$ref": "#/components/schemas/User"
}
]
},
"title": {
"type": "string",
"description": "Playlist title."
},
"tracks": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Track"
},
"description": "List of tracks."
},
"license": {
"type": "string",
"description": "License."
},
"release": {
"type": "string",
"description": "Release."
},
"sharing": {
"type": "string",
"description": "Type of sharing (private/public)."
},
"user_id": {
"type": "integer",
"description": "User identifier."
},
"duration": {
"type": "integer",
"description": "Playlist duration."
},
"label_id": {
"type": "integer",
"description": "Label user identifier."
},
"tag_list": {
"type": "string",
"description": "Tags."
},
"permalink": {
"type": "string",
"description": "Playlist permalink."
},
"created_at": {
"type": "string",
"description": "Created timestamp."
},
"label_name": {
"type": "string",
"description": "Label name."
},
"streamable": {
"type": "boolean",
"description": "Is streamable."
},
"tracks_uri": {
"type": "string",
"nullable": true,
"description": "tracks URI."
},
"artwork_url": {
"type": "string",
"description": "URL to a JPEG image."
},
"description": {
"type": "string",
"description": "Playlist description."
},
"likes_count": {
"type": "integer",
"description": "Count of playlist likes."
},
"release_day": {
"type": "integer",
"description": "Day of release."
},
"track_count": {
"type": "integer",
"description": "Count of tracks."
},
"downloadable": {
"type": "boolean",
"description": "is downloadable."
},
"purchase_url": {
"type": "string",
"description": "Purchase URL."
},
"release_year": {
"type": "integer",
"description": "Year of release."
},
"embeddable_by": {
"type": "string",
"description": "Embeddable by."
},
"last_modified": {
"type": "string",
"description": "Last modified timestamp."
},
"permalink_url": {
"type": "string",
"description": "Playlist permalink URL."
},
"playlist_type": {
"type": "string",
"description": "Type of playlist."
},
"release_month": {
"type": "integer",
"description": "Month of release."
},
"purchase_title": {
"type": "string",
"description": "Purchase title."
}
},
"description": "Soundcloud Playlist Object"
}
Playlists
{
"type": "object",
"properties": {
"next_href": {
"type": "string"
},
"collection": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Playlist"
}
}
}
}
PlaylistsArray
{
"type": "array",
"items": {
"$ref": "#/components/schemas/Playlist"
},
"deprecated": true
}
PlaylistsCreateNewPlaylistRequest
{
"allOf": [
{
"$ref": "#/components/schemas/CreateUpdatePlaylistFormRequest"
},
{
"required": [
"playlist[title]"
]
}
]
}
Streams
{
"type": "object",
"properties": {
"hls_mp3_128_url": {
"type": "string"
},
"hls_opus_64_url": {
"type": "string"
},
"http_mp3_128_url": {
"type": "string"
},
"preview_mp3_128_url": {
"type": "string"
}
}
}
TooManyRequests
{
"allOf": [
{
"$ref": "#/components/schemas/Error"
},
{
"type": "object",
"properties": {
"spam_warning_urn": {
"type": "string"
}
}
}
]
}
Track
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"description": "Track identifier."
},
"bpm": {
"type": "integer",
"description": "Tempo."
},
"uri": {
"type": "string",
"description": "Track URI."
},
"isrc": {
"type": "string",
"description": "ISRC code."
},
"kind": {
"type": "string",
"description": "Type of object (track)."
},
"user": {
"allOf": [
{
"$ref": "#/components/schemas/User"
},
{
"description": "User who uploaded a track"
}
]
},
"genre": {
"type": "string",
"description": "Genre"
},
"title": {
"type": "string",
"description": "Track title."
},
"access": {
"enum": [
"playable",
"preview",
"blocked"
],
"type": "string",
"nullable": true,
"description": "Level of access the user (logged in or anonymous) has to the track.\n * `playable` - user is allowed to listen to a full track.\n * `preview` - user is allowed to preview a track, meaning a snippet is available\n * `blocked` - user can only see the metadata of a track, no streaming is possible\n"
},
"license": {
"type": "string",
"description": "License"
},
"release": {
"type": "string",
"description": "Release."
},
"sharing": {
"type": "string",
"description": "Type of sharing (public/private)."
},
"duration": {
"type": "integer",
"description": "Track duration."
},
"tag_list": {
"type": "string",
"description": "Tags."
},
"created_at": {
"type": "string",
"description": "Created timestamp."
},
"label_name": {
"type": "string",
"description": "Label user name."
},
"secret_uri": {
"type": "string",
"description": "Secret URL."
},
"stream_url": {
"type": "string",
"description": "URL to stream."
},
"streamable": {
"type": "boolean",
"description": "Is streamable."
},
"artwork_url": {
"type": "string",
"description": "URL to a JPEG image."
},
"commentable": {
"type": "boolean",
"description": "Is commentable."
},
"description": {
"type": "string",
"description": "Track description."
},
"release_day": {
"type": "integer",
"description": "Day of release."
},
"download_url": {
"type": "string",
"description": "URL to download a track."
},
"downloadable": {
"type": "string",
"description": "Is downloadable."
},
"purchase_url": {
"type": "string",
"description": "Purchase URL."
},
"release_year": {
"type": "integer",
"description": "Year of release."
},
"waveform_url": {
"type": "string",
"description": "Waveform URL."
},
"comment_count": {
"type": "integer",
"description": "Number of comments."
},
"embeddable_by": {
"type": "string",
"deprecated": true,
"description": "Embeddable by."
},
"key_signature": {
"type": "string",
"description": "Key signature."
},
"permalink_url": {
"type": "string",
"description": "Permalink URL."
},
"release_month": {
"type": "integer",
"description": "Month of release."
},
"reposts_count": {
"type": "integer",
"description": "Number of reposts."
},
"user_favorite": {
"type": "boolean",
"description": "Is user's favourite."
},
"download_count": {
"type": "integer",
"description": "NUmber of downloads."
},
"playback_count": {
"type": "integer",
"description": "Number of plays."
},
"purchase_title": {
"type": "string",
"description": "Purchase title."
},
"favoritings_count": {
"type": "integer",
"description": "Number of favoritings."
},
"user_playback_count": {
"type": "integer",
"description": "Number of plays by a user."
},
"available_country_codes": {
"type": "string",
"description": "List of countries where track is available."
}
},
"description": "Soundcloud Track object."
}
TrackDataRequest
{
"type": "object",
"properties": {
"track[isrc]": {
"type": "string"
},
"track[genre]": {
"type": "string"
},
"track[title]": {
"type": "string"
},
"track[license]": {
"enum": [
"no-rights-reserved",
"all-rights-reserved",
"cc-by",
"cc-by-nc",
"cc-by-nd",
"cc-by-sa",
"cc-by-nc-nd",
"cc-by-nc-sa"
],
"type": "string",
"description": "Possible values: no-rights-reserved, all-rights-reserved, cc-by, cc-by-nc, cc-by-nd, cc-by-sa, cc-by-nc-nd, cc-by-nc-sa"
},
"track[release]": {
"type": "string"
},
"track[sharing]": {
"enum": [
"public",
"private"
],
"type": "string",
"default": "public"
},
"track[tag_list]": {
"type": "string",
"description": "The tag_list property contains a list of tags separated by spaces. Multiword tags are quoted in double quotes. We also support machine tags that follow the pattern NAMESPACE:KEY=VALUE. For example: geo:lat=43.555 camel:size=medium “machine:tag=with space” Machine tags are not revealed to the user on the track pages."
},
"track[permalink]": {
"type": "string"
},
"track[asset_data]": {
"type": "string",
"title": "Only for uploading",
"format": "binary"
},
"track[label_name]": {
"type": "string"
},
"track[streamable]": {
"type": "boolean",
"default": true
},
"track[commentable]": {
"type": "boolean",
"default": true
},
"track[description]": {
"type": "string"
},
"track[artwork_data]": {
"type": "string",
"title": "Only for uploading, for PRO users",
"format": "binary"
},
"track[downloadable]": {
"type": "boolean",
"default": true
},
"track[purchase_url]": {
"type": "string"
},
"track[release_date]": {
"type": "string",
"title": "write only!",
"description": "string, formatted as yyyy-mm-dd, representing release date"
},
"track[embeddable_by]": {
"enum": [
"all",
"me",
"none"
],
"type": "string",
"description": "who can embed this track \"all\", \"me\", or \"none\""
}
}
}
TrackMetadataRequest
{
"type": "object",
"properties": {
"track": {
"type": "object",
"properties": {
"isrc": {
"type": "string"
},
"genre": {
"type": "string"
},
"title": {
"type": "string"
},
"license": {
"enum": [
"no-rights-reserved",
"all-rights-reserved",
"cc-by",
"cc-by-nc",
"cc-by-nd",
"cc-by-sa",
"cc-by-nc-nd",
"cc-by-nc-sa"
],
"type": "string",
"description": "Possible values: no-rights-reserved, all-rights-reserved, cc-by, cc-by-nc, cc-by-nd, cc-by-sa, cc-by-nc-nd, cc-by-nc-sa"
},
"release": {
"type": "string"
},
"sharing": {
"enum": [
"public",
"private"
],
"type": "string",
"default": "public"
},
"tag_list": {
"type": "string",
"description": "The tag_list property contains a list of tags separated by spaces. Multiword tags are quoted in double quotes. We also support machine tags that follow the pattern NAMESPACE:KEY=VALUE. For example: geo:lat=43.555 camel:size=medium “machine:tag=with space” Machine tags are not revealed to the user on the track pages."
},
"permalink": {
"type": "string"
},
"label_name": {
"type": "string"
},
"streamable": {
"type": "boolean",
"default": true
},
"commentable": {
"type": "boolean",
"default": true
},
"description": {
"type": "string"
},
"downloadable": {
"type": "boolean",
"default": true
},
"purchase_url": {
"type": "string"
},
"release_date": {
"type": "string",
"title": "write only!",
"description": "string, formatted as yyyy-mm-dd, representing release date"
},
"embeddable_by": {
"enum": [
"all",
"me",
"none"
],
"type": "string",
"description": "who can embed this track \"all\", \"me\", or \"none\""
}
}
}
}
}
Tracks
{
"type": "object",
"properties": {
"next_href": {
"type": "string"
},
"collection": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Track"
}
}
}
}
TracksCreateCommentRequest
{
"type": "object",
"properties": {
"comment": {
"type": "object",
"required": [
"body"
],
"properties": {
"body": {
"type": "string",
"example": "test comment",
"description": "Comment's content"
},
"timestamp": {
"oneOf": [
{
"type": "string"
},
{
"type": "number"
}
],
"description": "Timestamp of a comment. String or float representation is supported"
}
}
}
}
}
TracksList
{
"type": "array",
"items": {
"$ref": "#/components/schemas/Track"
},
"deprecated": true
}
TracksUploadNewTrackRequest
{
"allOf": [
{
"$ref": "#/components/schemas/TrackDataRequest"
},
{
"required": [
"track[title]",
"track[asset_data]"
]
}
]
}
TracksUploadNewTrackRequest1
{
"allOf": [
{
"$ref": "#/components/schemas/TrackDataRequest"
},
{
"required": [
"track[title]",
"track[asset_data]"
]
}
]
}
User
{
"type": "object",
"nullable": true,
"properties": {
"id": {
"type": "integer",
"description": "unique identifier"
},
"uri": {
"type": "string",
"description": "API resource URL"
},
"city": {
"type": "string",
"description": "city"
},
"kind": {
"type": "string",
"description": "kind of resource"
},
"plan": {
"type": "string",
"description": "subscription plan of the user"
},
"country": {
"type": "string",
"description": "country"
},
"website": {
"type": "string",
"description": "a URL to the website"
},
"username": {
"type": "string",
"description": "username"
},
"full_name": {
"type": "string",
"description": "first and last name"
},
"last_name": {
"type": "string",
"description": "last name"
},
"permalink": {
"type": "string",
"description": "permalink of the resource"
},
"avatar_url": {
"type": "string",
"description": "URL to a JPEG image"
},
"created_at": {
"type": "string",
"format": "date-time",
"description": "profile creation datetime"
},
"first_name": {
"type": "string",
"description": "first name"
},
"description": {
"type": "string",
"description": "description"
},
"track_count": {
"type": "integer",
"description": "number of public tracks"
},
"discogs_name": {
"type": "string",
"description": "discogs name"
},
"myspace_name": {
"type": "string",
"deprecated": true,
"description": "myspace name"
},
"last_modified": {
"type": "string",
"format": "date-time",
"description": "last modified datetime"
},
"permalink_url": {
"type": "string",
"description": "URL to the SoundCloud.com page"
},
"reposts_count": {
"type": "integer",
"description": "number of reposts from user"
},
"subscriptions": {
"items": {
"type": "array",
"anyOf": [
{
"type": "object",
"properties": {
"product": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "subscription id instance."
},
"name": {
"type": "string",
"description": "subscription name instance."
}
},
"description": "product"
},
"recurring": {
"type": "boolean",
"description": "if the subscription is recurring or not"
}
},
"description": "subscription"
}
],
"items": {
"description": "WARNING: Missing items property in array schema. Missing items property has been filled with this AnyType schema."
}
},
"deprecated": true,
"description": "a list subscriptions associated with the user"
},
"website_title": {
"type": "string",
"description": "a custom title for the website"
},
"playlist_count": {
"type": "integer",
"description": "number of public playlists"
},
"followers_count": {
"type": "integer",
"description": "number of followers"
},
"followings_count": {
"type": "integer",
"description": "number of followed users"
},
"public_favorites_count": {
"type": "integer",
"description": "number of favorited public tracks"
}
},
"description": "SoundCloud User object"
}
Users
{
"type": "object",
"properties": {
"next_href": {
"type": "string"
},
"collection": {
"type": "array",
"items": {
"$ref": "#/components/schemas/User"
}
}
}
}
WebProfiles
{
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"description": "Id"
},
"url": {
"type": "string",
"description": "URL of the external link"
},
"kind": {
"type": "string",
"description": "Kind"
},
"title": {
"type": "string",
"description": "Link's title"
},
"service": {
"type": "string",
"description": "Service or platform"
},
"username": {
"type": "string",
"description": "Username extracted from the external link"
},
"created_at": {
"type": "string",
"description": "Timestamp of when the link was added to the profile."
}
}
},
"description": "User's links added to their profile"
}
| Version | Endpoints | Schemas | Ingested | Status |
|---|---|---|---|---|
| 1.0.0 | 55 | 30 | 2026-05-11 | current |
| 1.0.0 | 55 | 30 | 2026-04-16 |