SoundCloud

Music and audio streaming platform

developers.soundcloud.com/docs/api ↗
Version
1.0.0
OpenAPI
3.0.3
Endpoints
55
Schemas
30
Updated
3 days ago
Music music streaming audio
Use this API in your AI agent

Query structured spec data via REST or MCP. Get exactly what your agent needs.

Get API Key

Server URLs

https://api.soundcloud.com

Authentication

apiKey

Endpoints

Likes 4 endpoints

DELETE /likes/playlists/{playlist_id}
operationId: Likes_unlikePlaylist

Parameters

Name In Required Type Description
optional

Responses

200
400
404
DELETE /likes/playlists/{playlist_id}
POST /likes/playlists/{playlist_id}
operationId: Likes_playlist

Parameters

Name In Required Type Description
optional

Responses

200
400
401
404
429
POST /likes/playlists/{playlist_id}
DELETE /likes/tracks/{track_id}
operationId: Likes_unlikeTrack

Parameters

Name In Required Type Description
optional

Responses

200
400
404
DELETE /likes/tracks/{track_id}
POST /likes/tracks/{track_id}
operationId: Likes_trackAction

Parameters

Name In Required Type Description
optional

Responses

200
400
401
404
429
POST /likes/tracks/{track_id}

Me 13 endpoints

GET /me
operationId: Me_getUserInformation

Responses

200
401
GET /me
GET /me/activities
operationId: Me_getActivities

Parameters

Name In Required Type Description
optional
optional

Responses

200
401
GET /me/activities
GET /me/activities/all/own
operationId: Me_getRecentActivities

Parameters

Name In Required Type Description
optional
optional

Responses

200
401
GET /me/activities/all/own
GET /me/activities/tracks
operationId: Me_getRecentTracks

Parameters

Name In Required Type Description
optional
optional

Responses

200
401
GET /me/activities/tracks
GET /me/followers
operationId: Me_getFollowersList

Parameters

Name In Required Type Description
optional

Responses

200
401
GET /me/followers
GET /me/followings
operationId: Me_getFollowedUsers

Parameters

Name In Required Type Description
optional
optional

Responses

200
401
GET /me/followings
GET /me/followings/tracks
operationId: Me_listFollowedTracks

Parameters

Name In Required Type Description
optional
optional
optional

Responses

200
401
GET /me/followings/tracks
DELETE /me/followings/{user_id}
operationId: Me_deleteFollowedUser

Parameters

Name In Required Type Description
optional

Responses

200 Success
401
404
422
DELETE /me/followings/{user_id}
PUT /me/followings/{user_id}
operationId: Me_followUser

Parameters

Name In Required Type Description
optional

Responses

200
201
401
404
PUT /me/followings/{user_id}
GET /me/likes/playlists
operationId: Me_getLikedPlaylists

Parameters

Name In Required Type Description
optional
optional

Responses

200
401
GET /me/likes/playlists
GET /me/likes/tracks
operationId: Me_listLikedTracks

Parameters

Name In Required Type Description
optional
optional
optional

Responses

200
401
GET /me/likes/tracks
GET /me/playlists

Returns playlist info, playlist tracks and tracks owner info.

operationId: Me_listPlaylistsInfoTracksOwner

Parameters

Name In Required Type Description
optional
optional
optional

Responses

200
401
404
GET /me/playlists
GET /me/tracks
operationId: Me_listUserTracks

Parameters

Name In Required Type Description
optional
optional

Responses

200
401
GET /me/tracks

Miscellaneous 1 endpoints

GET /resolve
operationId: Miscellaneous_resolveSoundcloudUrls

Parameters

Name In Required Type Description
optional

Responses

200 OK
302
404
GET /resolve

Oauth 2 endpoints

GET /connect

<h3>Security Advice</h3> * [OAuth Authorization Code flow](https://datatracker.ietf.org/doc/html/draft-ietf-oauth-security-topics-16#section-2.1.1) (`response_type=code`) is the only allowed method of authorization. * Use the `state` parameter for [CSRF protection](https://tools.ietf.org/html/draft-ietf-oauth-security-topics-16#section-4.7). Pass a sufficient random nonce here and verify this nonce again after retrieving the token.

operationId: Oauth_authorizeUser

Parameters

Name In Required Type Description
optional
optional
optional
optional

Responses

200 OK
302 Redirect to connect portal
401
GET /connect
POST /oauth2/token
operationId: Oauth_provisionAccessToken

Request Body

{
  "content": {
    "multipart/form-data": {
      "schema": {
        "$ref": "#/components/schemas/OAuthToken"
      }
    },
    "application/x-www-form-urlencoded": {
      "schema": {
        "$ref": "#/components/schemas/OAuthToken"
      }
    }
  },
  "required": true
}

Responses

200 Success
400 Bad Request
401 Unauthorized
POST /oauth2/token

Playlists 6 endpoints

POST /playlists
operationId: Playlists_createNewPlaylist

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/CreateUpdatePlaylistRequest"
      },
      "examples": {
        "default": {
          "$ref": "#/components/examples/CreateUpdatePlaylistRequest"
        }
      }
    },
    "multipart/form-data": {
      "schema": {
        "$ref": "#/components/schemas/PlaylistsCreateNewPlaylistRequest"
      },
      "examples": {
        "default": {
          "$ref": "#/components/examples/CreateUpdatePlaylistFormRequest"
        }
      }
    }
  },
  "description": "Create Playlist request"
}

Responses

201
401
404
POST /playlists
DELETE /playlists/{playlist_id}
operationId: Playlists_deletePlaylist

Parameters

Name In Required Type Description
optional

Responses

200 Success
404
DELETE /playlists/{playlist_id}
GET /playlists/{playlist_id}
operationId: Playlists_getPlaylistById

Parameters

Name In Required Type Description
optional
optional
optional
optional

Responses

200
400
401
GET /playlists/{playlist_id}
PUT /playlists/{playlist_id}
operationId: Playlists_updatePlaylistById

Parameters

Name In Required Type Description
optional

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/CreateUpdatePlaylistRequest"
      },
      "examples": {
        "default": {
          "$ref": "#/components/examples/CreateUpdatePlaylistRequest"
        }
      }
    }
  },
  "description": "Playlist payload"
}

Responses

200
401
404
PUT /playlists/{playlist_id}
GET /playlists/{playlist_id}/reposters
operationId: Playlists_listReposters

Parameters

Name In Required Type Description
optional
optional

Responses

200
401
404
GET /playlists/{playlist_id}/reposters
GET /playlists/{playlist_id}/tracks
operationId: Playlists_getTracks

Parameters

Name In Required Type Description
optional
optional
optional
optional

Responses

200
400
401
GET /playlists/{playlist_id}/tracks

Reposts 4 endpoints

DELETE /reposts/playlists/{playlist_id}
operationId: Reposts_removeRepostOnPlaylist

Parameters

Name In Required Type Description
optional

Responses

200 Success
401
404
DELETE /reposts/playlists/{playlist_id}
POST /reposts/playlists/{playlist_id}
operationId: Reposts_playlistAsAuthenticatedUser

Parameters

Name In Required Type Description
optional

Responses

201 Created
401
404
POST /reposts/playlists/{playlist_id}
DELETE /reposts/tracks/{track_id}
operationId: Reposts_removeRepost

Parameters

Name In Required Type Description
optional

Responses

200 Success
401
404
DELETE /reposts/tracks/{track_id}
POST /reposts/tracks/{track_id}
operationId: Reposts_trackAsAuthenticatedUser

Parameters

Name In Required Type Description
optional

Responses

201 Created
401
404
POST /reposts/tracks/{track_id}

Tracks 10 endpoints

POST /tracks
operationId: Tracks_uploadNewTrack

Request Body

{
  "content": {
    "multipart/form-data": {
      "schema": {
        "$ref": "#/components/schemas/TracksUploadNewTrackRequest"
      },
      "examples": {
        "default": {
          "$ref": "#/components/examples/TrackDataRequest"
        }
      }
    },
    "multipart/x-www-form-urlencoded": {
      "schema": {
        "$ref": "#/components/schemas/TracksUploadNewTrackRequest1"
      }
    }
  }
}

Responses

201
400
401
422
POST /tracks
DELETE /tracks/{track_id}
operationId: Tracks_deleteTrack

Parameters

Name In Required Type Description
optional

Responses

200 Success
404
DELETE /tracks/{track_id}
GET /tracks/{track_id}
operationId: Tracks_getById

Parameters

Name In Required Type Description
optional
optional

Responses

200
401
404
GET /tracks/{track_id}
PUT /tracks/{track_id}
operationId: Tracks_updateTrackInformation

Parameters

Name In Required Type Description
optional

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/TrackMetadataRequest"
      }
    },
    "multipart/form-data": {
      "schema": {
        "$ref": "#/components/schemas/TrackDataRequest"
      }
    },
    "multipart/x-www-form-urlencoded": {
      "schema": {
        "$ref": "#/components/schemas/TrackDataRequest"
      }
    }
  },
  "description": "Track payload"
}

Responses

200
400
401
PUT /tracks/{track_id}
GET /tracks/{track_id}/comments
operationId: Tracks_getComments

Parameters

Name In Required Type Description
optional
optional
optional
optional

Responses

200
401
404
GET /tracks/{track_id}/comments
POST /tracks/{track_id}/comments
operationId: Tracks_createComment

Parameters

Name In Required Type Description
optional

Request Body

{
  "content": {
    "application/json; charset=utf-8": {
      "schema": {
        "$ref": "#/components/schemas/TracksCreateCommentRequest"
      }
    }
  },
  "required": true,
  "description": "Body of a comment\n"
}

Responses

201
422
429
POST /tracks/{track_id}/comments
GET /tracks/{track_id}/favoriters
operationId: Tracks_getFavoriters

Parameters

Name In Required Type Description
optional
optional
optional

Responses

200
401
404
GET /tracks/{track_id}/favoriters
GET /tracks/{track_id}/related
operationId: Tracks_getRelatedTracks

Parameters

Name In Required Type Description
optional
optional
optional
optional
optional

Responses

200
401
404
GET /tracks/{track_id}/related
GET /tracks/{track_id}/reposters
operationId: Tracks_listReposters

Parameters

Name In Required Type Description
optional
optional

Responses

200
401
404
GET /tracks/{track_id}/reposters
GET /tracks/{track_id}/streams
operationId: Tracks_getStreamableUrls

Parameters

Name In Required Type Description
optional
optional

Responses

200
401
404
GET /tracks/{track_id}/streams

Users 8 endpoints

GET /users/{user_id}
operationId: Users_getUser

Parameters

Name In Required Type Description
optional

Responses

200
401
404
GET /users/{user_id}
GET /users/{user_id}/followers

Returns a list of users that follows (user_id).

operationId: Users_getFollowers

Parameters

Name In Required Type Description
optional
optional

Responses

200
401
GET /users/{user_id}/followers
GET /users/{user_id}/followings

Returns list of users that (user_id) follows.

operationId: Users_getUserFollowings

Parameters

Name In Required Type Description
optional
optional

Responses

200
401
GET /users/{user_id}/followings
GET /users/{user_id}/likes/playlists
operationId: Users_listLikedPlaylists

Parameters

Name In Required Type Description
optional
optional
optional

Responses

200
400
401
404
GET /users/{user_id}/likes/playlists
GET /users/{user_id}/likes/tracks
operationId: Users_listLikedTracks

Parameters

Name In Required Type Description
optional
optional
optional
optional

Responses

200
400
401
404
GET /users/{user_id}/likes/tracks
GET /users/{user_id}/playlists
operationId: Users_getUserPlaylists

Parameters

Name In Required Type Description
optional
optional
optional
optional
optional

Responses

200
401
GET /users/{user_id}/playlists
GET /users/{user_id}/tracks
operationId: Users_getUserTracks

Parameters

Name In Required Type Description
optional
optional
optional
optional

Responses

200
401
GET /users/{user_id}/tracks
GET /users/{user_id}/web-profiles
operationId: Users_getUserWebProfiles

Parameters

Name In Required Type Description
optional
optional

Responses

200
401
GET /users/{user_id}/web-profiles

Schemas

object 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."
}
object 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"
}
object Comments
{
  "type": "object",
  "properties": {
    "next_href": {
      "type": "string",
      "nullable": true
    },
    "collection": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Comment"
      }
    }
  }
}
object 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"
    }
  }
}
object 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"
        }
      }
    }
  }
}
object 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"
    }
  }
}
object Found
{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "description": "Status code."
    },
    "location": {
      "type": "string",
      "description": "Location URL of the resource."
    }
  }
}
object 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"
}
object MeGetLikedPlaylistsResponse
{
  "oneOf": [
    {
      "$ref": "#/components/schemas/Playlists"
    },
    {
      "$ref": "#/components/schemas/PlaylistsArray"
    }
  ]
}
object MeListLikedTracksResponse
{
  "oneOf": [
    {
      "$ref": "#/components/schemas/Tracks"
    },
    {
      "$ref": "#/components/schemas/TracksList"
    }
  ]
}
object 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`."
    }
  }
}
object OauthProvisionAccessToken401Response
{
  "oneOf": [
    {
      "$ref": "#/components/schemas/Error"
    }
  ]
}
object OauthProvisionAccessTokenResponse
{
  "oneOf": [
    {
      "$ref": "#/components/schemas/Error"
    }
  ]
}
object 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"
}
object Playlists
{
  "type": "object",
  "properties": {
    "next_href": {
      "type": "string"
    },
    "collection": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Playlist"
      }
    }
  }
}
array PlaylistsArray
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/Playlist"
  },
  "deprecated": true
}
object PlaylistsCreateNewPlaylistRequest
{
  "allOf": [
    {
      "$ref": "#/components/schemas/CreateUpdatePlaylistFormRequest"
    },
    {
      "required": [
        "playlist[title]"
      ]
    }
  ]
}
object 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"
    }
  }
}
object TooManyRequests
{
  "allOf": [
    {
      "$ref": "#/components/schemas/Error"
    },
    {
      "type": "object",
      "properties": {
        "spam_warning_urn": {
          "type": "string"
        }
      }
    }
  ]
}
object 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."
}
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\""
    }
  }
}
object 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\""
        }
      }
    }
  }
}
object Tracks
{
  "type": "object",
  "properties": {
    "next_href": {
      "type": "string"
    },
    "collection": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Track"
      }
    }
  }
}
object 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"
        }
      }
    }
  }
}
array TracksList
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/Track"
  },
  "deprecated": true
}
object TracksUploadNewTrackRequest
{
  "allOf": [
    {
      "$ref": "#/components/schemas/TrackDataRequest"
    },
    {
      "required": [
        "track[title]",
        "track[asset_data]"
      ]
    }
  ]
}
object TracksUploadNewTrackRequest1
{
  "allOf": [
    {
      "$ref": "#/components/schemas/TrackDataRequest"
    },
    {
      "required": [
        "track[title]",
        "track[asset_data]"
      ]
    }
  ]
}
object 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"
}
object Users
{
  "type": "object",
  "properties": {
    "next_href": {
      "type": "string"
    },
    "collection": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/User"
      }
    }
  }
}
array 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"
}