Skip to content

Instantly share code, notes, and snippets.

@MikeRalphson
Last active March 4, 2024 01:47
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save MikeRalphson/a9eb3040cb611121b568844958564849 to your computer and use it in GitHub Desktop.
Save MikeRalphson/a9eb3040cb611121b568844958564849 to your computer and use it in GitHub Desktop.
Soundcloud OpenAPI
{
"openapi": "3.0.1",
"info": {
"title": "SoundCloud Public API Specification",
"contact": {
"name": "API issue tracker",
"url": "https://github.com/soundcloud/api"
},
"version": "1.0.0",
"termsOfService": "https://developers.soundcloud.com/docs/api/terms-of-use"
},
"servers": [
{
"url": "https://api.soundcloud.com"
}
],
"tags": [
{
"name": "oauth",
"description": "Authentication and Authorization Endpoints."
},
{
"name": "me",
"description": "Own User Endpoints."
},
{
"name": "search",
"description": "Search Endpoints."
},
{
"name": "playlists",
"description": "Playlists Endpoints."
},
{
"name": "tracks",
"description": "Tracks Endpoints."
},
{
"name": "users",
"description": "SoundCloud Users Endpoints."
},
{
"name": "likes",
"description": "Liking Tracks & Playlists."
},
{
"name": "reposts",
"description": "Reposting Tracks & Playlists."
},
{
"name": "miscellaneous",
"description": "Miscellaneous Endpoints."
}
],
"paths": {
"/connect": {
"get": {
"summary": "The OAuth2 authorization endpoint. Your app redirects a user to this endpoint, allowing them to delegate access to their account.",
"description": "<h3>Security Advice</h3>\n* Using the [implicit OAuth authorization flow](https://tools.ietf.org/html/draft-ietf-oauth-security-topics-16#section-2.1.2) (`response_type=token`) is **not recommended**. It can suffer from access token leakage and access token replay attacks. Use `response_type=code` instead.\n* 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.\n",
"tags": [
"oauth"
],
"security": [
{
"ClientId": [],
"AuthHeader": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/client_id"
},
{
"$ref": "#/components/parameters/redirect_uri"
},
{
"$ref": "#/components/parameters/response_type"
},
{
"$ref": "#/components/parameters/scope"
},
{
"$ref": "#/components/parameters/state"
}
],
"responses": {
"302": {
"$ref": "#/components/responses/FoundHtml"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
}
}
}
},
"/oauth2/token": {
"post": {
"summary": "This endpoint accepts POST requests and is used to provision access tokens once a user has authorized your application.",
"tags": [
"oauth"
],
"security": [
{
"ClientId": []
}
],
"requestBody": {
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"oneOf": [
{
"$ref": "#/components/schemas/AuthorizationCode"
},
{
"$ref": "#/components/schemas/RefreshToken"
},
{
"$ref": "#/components/schemas/Password"
}
]
},
"examples": {
"AuthorizationCode": {
"$ref": "#/components/examples/AuthorizationCode"
},
"ClientCredentials": {
"$ref": "#/components/examples/ClientCredentials"
},
"Password": {
"$ref": "#/components/examples/Password"
},
"RefreshToken": {
"$ref": "#/components/examples/RefreshToken"
}
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"application/json; charset=utf-8": {
"examples": {
"ExpiringToken": {
"$ref": "#/components/examples/ExpiringToken"
},
"NonExpiringToken": {
"$ref": "#/components/examples/NonExpiringToken"
}
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"oneOf": [
{
"$ref": "#/components/schemas/Error"
}
]
},
"examples": {
"ErrorInvalidGrant": {
"$ref": "#/components/examples/ErrorInvalidGrant"
},
"ErrorUnsupportedGrant": {
"$ref": "#/components/examples/ErrorUnsupportedGrant"
},
"BadRequest": {
"$ref": "#/components/examples/BadRequest"
}
}
}
}
},
"401": {
"$ref": "#/components/responses/Unauthorized"
}
}
}
},
"/me": {
"get": {
"summary": "Returns the authenticated user’s information.",
"tags": [
"me"
],
"security": [
{
"AuthHeader": []
}
],
"responses": {
"200": {
"$ref": "#/components/responses/CompleteUser"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
}
}
}
},
"/me/activities": {
"get": {
"summary": "Returns the authenticated user's activities.",
"tags": [
"me"
],
"security": [
{
"AuthHeader": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/access"
},
{
"$ref": "#/components/parameters/limit"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Activities"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
}
}
}
},
"/me/activities/all/own": {
"get": {
"summary": "Recent the authenticated user's activities.",
"tags": [
"me"
],
"security": [
{
"AuthHeader": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/access"
},
{
"$ref": "#/components/parameters/limit"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Activities"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
}
}
}
},
"/me/activities/tracks": {
"get": {
"summary": "Returns the authenticated user's recent track related activities.",
"tags": [
"me"
],
"security": [
{
"AuthHeader": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/access"
},
{
"$ref": "#/components/parameters/limit"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Activities"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
}
}
}
},
"/me/connections": {
"get": {
"summary": "Returns a list of the authenticated user's connected social accounts.",
"tags": [
"me"
],
"security": [
{
"AuthHeader": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/limit"
},
{
"$ref": "#/components/parameters/offset"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Connections"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
}
}
}
},
"/me/connections/{connection_id}": {
"get": {
"summary": "Returns the authenticated user's connected social account.",
"tags": [
"me"
],
"security": [
{
"AuthHeader": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/connection_id"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Connection"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
}
}
},
"/me/likes/tracks": {
"get": {
"summary": "Returns a list of favorited or liked tracks of the authenticated user.",
"tags": [
"me"
],
"security": [
{
"AuthHeader": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/limit"
},
{
"$ref": "#/components/parameters/linked_partitioning"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Tracks"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
}
}
}
},
"/me/favorites/ids": {
"get": {
"summary": "Returns user’s favorites ids. (use /me/likes/tracks instead to fetch the authenticated user's likes)",
"deprecated": true,
"tags": [
"me"
],
"security": [
{
"AuthHeader": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/limit"
}
],
"responses": {
"200": {
"description": "Success"
},
"404": {
"description": "The user could not be found"
}
}
}
},
"/me/followings": {
"get": {
"summary": "Returns a list of users who are followed by the authenticated user.",
"tags": [
"me"
],
"security": [
{
"AuthHeader": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/limit"
},
{
"$ref": "#/components/parameters/offset"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Users"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
}
}
}
},
"/me/followings/tracks": {
"get": {
"summary": "Returns a list of recent tracks from users followed by the authenticated user.",
"tags": [
"me"
],
"security": [
{
"AuthHeader": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/access"
},
{
"$ref": "#/components/parameters/limit"
},
{
"$ref": "#/components/parameters/offset"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/TracksList"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
}
}
}
},
"/me/followings/{user_id}": {
"get": {
"summary": "Returns a user who is followed by the authenticated user. (use /users/{user_id} instead, to fetch the user details)",
"deprecated": true,
"tags": [
"me"
],
"security": [
{
"AuthHeader": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/user_id"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/User"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
}
},
"put": {
"summary": "Follows a user.",
"tags": [
"me"
],
"security": [
{
"AuthHeader": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/user_id_to_follow"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Successful"
},
"201": {
"$ref": "#/components/responses/User"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
}
},
"delete": {
"summary": "Deletes a user who is followed by the authenticated user.",
"tags": [
"me"
],
"security": [
{
"AuthHeader": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/user_id_to_follow"
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json; charset=utf-8": {
"examples": {
"200": {
"$ref": "#/components/examples/OK"
}
}
}
}
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
},
"422": {
"$ref": "#/components/responses/UnprocessableEntity"
}
}
}
},
"/me/followers": {
"get": {
"summary": "Returns a list of users who are following the authenticated user.",
"tags": [
"me"
],
"security": [
{
"AuthHeader": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/limit"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Users"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
}
}
}
},
"/me/followers/{follower_id}": {
"get": {
"summary": "Returns a user who is following the authenticated user. (use /users/{user_id} instead, to fetch the user details)",
"deprecated": true,
"tags": [
"me"
],
"security": [
{
"AuthHeader": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/follower_id"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/User"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
}
}
}
},
"/me/playlists": {
"get": {
"summary": "Returns user’s playlists (sets).",
"description": "Returns playlist info, playlist tracks and tracks owner info.",
"tags": [
"me"
],
"security": [
{
"AuthHeader": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/limit"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/PlaylistsArray"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
}
}
},
"/me/playlists/{playlist_id}": {
"get": {
"summary": "Returns playlist. (use /playlists/{playlist_id} instead, to fetch the playlist details)",
"deprecated": true,
"tags": [
"me"
],
"security": [
{
"AuthHeader": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/playlist_id"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Playlist"
}
}
}
},
"/me/tracks": {
"get": {
"summary": "Returns a list of user's tracks.",
"tags": [
"me"
],
"security": [
{
"AuthHeader": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/limit"
},
{
"$ref": "#/components/parameters/linked_partitioning"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Tracks"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
}
}
}
},
"/me/tracks/{track_id}": {
"get": {
"summary": "Returns a specified track. (use /tracks/{track_id} instead, to fetch the track details)",
"deprecated": true,
"tags": [
"me"
],
"security": [
{
"AuthHeader": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/track_id"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Track"
}
}
}
},
"/tracks": {
"get": {
"summary": "Performs a track search based on a query",
"tags": [
"search"
],
"security": [
{
"ClientId": [],
"AuthHeader": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/q"
},
{
"$ref": "#/components/parameters/ids"
},
{
"$ref": "#/components/parameters/genres"
},
{
"$ref": "#/components/parameters/tags"
},
{
"$ref": "#/components/parameters/bpm"
},
{
"$ref": "#/components/parameters/duration"
},
{
"$ref": "#/components/parameters/created_at"
},
{
"$ref": "#/components/parameters/access"
},
{
"$ref": "#/components/parameters/limit"
},
{
"$ref": "#/components/parameters/offset"
},
{
"$ref": "#/components/parameters/linked_partitioning"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Tracks"
},
"400": {
"$ref": "#/components/responses/BadRequest"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"500": {
"description": "Internal Server Error"
}
}
},
"post": {
"summary": "Uploads a new track.",
"tags": [
"tracks"
],
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"$ref": "#/components/schemas/TrackDataRequest",
"required": [
"track[title]",
"track[asset_data]"
]
},
"examples": {
"default": {
"$ref": "#/components/examples/TrackDataRequest"
}
}
},
"multipart/x-www-form-urlencoded": {
"schema": {
"$ref": "#/components/schemas/TrackDataRequest",
"required": [
"track[title]",
"track[asset_data]"
]
}
}
}
},
"security": [
{
"ClientId": [],
"AuthHeader": []
}
],
"responses": {
"201": {
"$ref": "#/components/responses/Track"
},
"400": {
"$ref": "#/components/responses/BadRequest"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
}
}
}
},
"/playlists": {
"get": {
"summary": "Performs a playlist search based on a query",
"tags": [
"search"
],
"security": [
{
"ClientId": [],
"AuthHeader": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/q"
},
{
"$ref": "#/components/parameters/access"
},
{
"$ref": "#/components/parameters/limit"
},
{
"$ref": "#/components/parameters/offset"
},
{
"$ref": "#/components/parameters/linked_partitioning"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Playlists"
},
"400": {
"$ref": "#/components/responses/BadRequest"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
}
}
},
"post": {
"summary": "Creates a playlist.",
"tags": [
"playlists"
],
"security": [
{
"AuthHeader": []
}
],
"requestBody": {
"description": "Create Playlist request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateUpdatePlaylistRequest"
},
"examples": {
"default": {
"$ref": "#/components/examples/CreateUpdatePlaylistRequest"
}
}
}
}
},
"responses": {
"201": {
"$ref": "#/components/responses/LegacyPlaylist"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
}
}
},
"/users": {
"get": {
"summary": "Performs a user search based on a query",
"tags": [
"search"
],
"security": [
{
"ClientId": [],
"AuthHeader": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/q"
},
{
"$ref": "#/components/parameters/ids"
},
{
"$ref": "#/components/parameters/limit"
},
{
"$ref": "#/components/parameters/offset"
},
{
"$ref": "#/components/parameters/linked_partitioning"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Users"
},
"400": {
"$ref": "#/components/responses/BadRequest"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
}
}
}
},
"/playlists/{playlist_id}": {
"get": {
"summary": "Returns a playlist.",
"tags": [
"playlists"
],
"security": [
{
"ClientId": [],
"AuthHeader": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/playlist_id"
},
{
"$ref": "#/components/parameters/secret_token"
},
{
"$ref": "#/components/parameters/access"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Playlist"
},
"400": {
"$ref": "#/components/responses/BadRequest"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
}
}
},
"put": {
"summary": "Updates a playlist.",
"tags": [
"playlists"
],
"security": [
{
"AuthHeader": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/fake_playlist_id"
}
],
"requestBody": {
"description": "Playlist payload",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateUpdatePlaylistRequest"
},
"examples": {
"default": {
"$ref": "#/components/examples/CreateUpdatePlaylistRequest"
}
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/LegacyPlaylist"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
}
},
"delete": {
"summary": "Deletes a playlist.",
"tags": [
"playlists"
],
"security": [
{
"ClientId": [],
"AuthHeader": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/fake_playlist_id"
}
],
"responses": {
"200": {
"description": "Success"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
}
}
},
"/playlists/{playlist_id}/tracks": {
"get": {
"summary": "Returns tracks under a playlist.",
"tags": [
"playlists"
],
"security": [
{
"ClientId": [],
"AuthHeader": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/playlist_id"
},
{
"$ref": "#/components/parameters/secret_token"
},
{
"$ref": "#/components/parameters/access"
},
{
"$ref": "#/components/parameters/linked_partitioning"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Tracks"
},
"400": {
"$ref": "#/components/responses/BadRequest"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
}
}
}
},
"/playlists/{playlist_id}/reposters": {
"get": {
"summary": "Returns a collection of playlist's reposters.",
"tags": [
"playlists"
],
"security": [
{
"ClientId": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/playlist_id"
},
{
"$ref": "#/components/parameters/limit"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/MetaUsers"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
}
}
},
"/tracks/{track_id}": {
"get": {
"summary": "Returns a track.",
"tags": [
"tracks"
],
"security": [
{
"ClientId": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/track_id"
},
{
"$ref": "#/components/parameters/secret_token"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Track"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
}
},
"put": {
"summary": "Updates a track's information.",
"tags": [
"tracks"
],
"security": [
{
"AuthHeader": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/track_id"
}
],
"requestBody": {
"description": "Track payload",
"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"
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/Track"
},
"400": {
"$ref": "#/components/responses/BadRequest"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
}
}
},
"delete": {
"summary": "Deletes a track.",
"tags": [
"tracks"
],
"security": [
{
"AuthHeader": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/track_id"
}
],
"responses": {
"200": {
"description": "Success"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
}
}
},
"/tracks/{track_id}/streams": {
"get": {
"summary": "Returns a track's streamable URLs",
"tags": [
"tracks"
],
"security": [
{
"ClientId": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/track_id"
},
{
"$ref": "#/components/parameters/secret_token"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Streams"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
}
}
},
"/tracks/{track_id}/comments": {
"get": {
"summary": "Returns the comments posted on the track(track_id).",
"tags": [
"tracks"
],
"security": [
{
"ClientId": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/track_id"
},
{
"$ref": "#/components/parameters/limit"
},
{
"$ref": "#/components/parameters/offset"
},
{
"$ref": "#/components/parameters/linked_partitioning"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Comments"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
}
},
"post": {
"summary": "Returns the newly created comment on success",
"tags": [
"tracks"
],
"security": [
{
"ClientId": [],
"AuthHeader": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/track_id"
}
],
"requestBody": {
"description": "Body of a comment\n",
"required": true,
"content": {
"application/json; charset=utf-8": {
"schema": {
"type": "object",
"properties": {
"comment": {
"type": "object",
"properties": {
"body": {
"type": "string",
"description": "Comment's content",
"example": "test comment"
},
"timestamp": {
"description": "Timestamp of a comment. String or float representation is supported",
"oneOf": [
{
"type": "string"
},
{
"type": "number"
}
]
}
},
"required": [
"body"
]
}
}
}
}
}
},
"responses": {
"201": {
"$ref": "#/components/responses/Comment"
},
"422": {
"$ref": "#/components/responses/UnprocessableEntity"
},
"429": {
"$ref": "#/components/responses/TooManyRequests"
}
}
}
},
"/tracks/{track_id}/favoriters": {
"get": {
"summary": "Returns a list of users who have favorited or liked the track.",
"tags": [
"tracks"
],
"security": [
{
"ClientId": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/track_id"
},
{
"$ref": "#/components/parameters/limit"
},
{
"$ref": "#/components/parameters/offset"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/UsersList"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
}
}
},
"/tracks/{track_id}/reposters": {
"get": {
"summary": "Returns a collection of track's reposters.",
"tags": [
"tracks"
],
"security": [
{
"ClientId": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/track_id"
},
{
"$ref": "#/components/parameters/limit"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/MetaUsers"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
}
}
},
"/tracks/{track_id}/related": {
"get": {
"summary": "Returns all related tracks of track on SoundCloud.",
"tags": [
"tracks"
],
"security": [
{
"ClientId": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/track_id"
},
{
"$ref": "#/components/parameters/access"
},
{
"$ref": "#/components/parameters/limit"
},
{
"$ref": "#/components/parameters/offset"
},
{
"$ref": "#/components/parameters/linked_partitioning"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Tracks"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
}
}
},
"/resolve": {
"get": {
"summary": "Resolves soundcloud.com URLs to Resource URLs to use with the API.",
"tags": [
"miscellaneous"
],
"security": [
{
"ClientId": [],
"AuthHeader": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/url"
}
],
"responses": {
"302": {
"$ref": "#/components/responses/Found"
}
}
}
},
"/users/{user_id}": {
"get": {
"summary": "Returns a user.",
"tags": [
"users"
],
"security": [
{
"ClientId": [],
"AuthHeader": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/user_id"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/CompleteUser"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
}
}
},
"/users/{user_id}/comments": {
"get": {
"summary": "Returns a list of user's comments.",
"tags": [
"users"
],
"security": [
{
"ClientId": [],
"AuthHeader": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/user_id"
},
{
"$ref": "#/components/parameters/limit"
},
{
"$ref": "#/components/parameters/offset"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/CommentsList"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
}
}
},
"/users/{user_id}/favorites": {
"get": {
"summary": "Returns a list of user's favorited or liked tracks. (use /users/:userId/likes/tracks instead, to fetch a user's likes)",
"deprecated": true,
"tags": [
"users"
],
"security": [
{
"ClientId": [],
"AuthHeader": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/user_id"
},
{
"$ref": "#/components/parameters/limit"
},
{
"$ref": "#/components/parameters/linked_partitioning"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Tracks"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
}
}
}
},
"/users/{user_id}/followers": {
"get": {
"summary": "Returns a list of user’s followers.",
"description": "Returns a list of users that follows (user_id).",
"tags": [
"users"
],
"security": [
{
"ClientId": [],
"AuthHeader": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/user_id"
},
{
"$ref": "#/components/parameters/limit"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Users"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
}
}
}
},
"/users/{user_id}/followings": {
"get": {
"summary": "Returns a list of user’s followings.",
"description": "Returns list of users that (user_id) follows.",
"tags": [
"users"
],
"security": [
{
"ClientId": [],
"AuthHeader": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/user_id"
},
{
"$ref": "#/components/parameters/limit"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Users"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
}
}
}
},
"/users/{user_id}/followings/{following_id}": {
"get": {
"summary": "Returns a user's following. (use /users/{user_id} instead, to fetch the user details)",
"description": "Returns (following_id) that is followed by (user_id).",
"deprecated": true,
"tags": [
"users"
],
"security": [
{
"ClientId": [],
"AuthHeader": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/user_id"
},
{
"$ref": "#/components/parameters/following_id"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/CompleteUser"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
}
}
},
"/users/{user_id}/playlists": {
"get": {
"summary": "Returns a list of user's playlists.",
"tags": [
"users"
],
"security": [
{
"ClientId": [],
"AuthHeader": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/user_id"
},
{
"$ref": "#/components/parameters/access"
},
{
"$ref": "#/components/parameters/limit"
},
{
"$ref": "#/components/parameters/linked_partitioning"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Playlists"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
}
}
}
},
"/users/{user_id}/tracks": {
"get": {
"summary": "Returns a list of user's tracks.",
"tags": [
"users"
],
"security": [
{
"ClientId": [],
"AuthHeader": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/user_id"
},
{
"$ref": "#/components/parameters/access"
},
{
"$ref": "#/components/parameters/limit"
},
{
"$ref": "#/components/parameters/linked_partitioning"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Tracks"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
}
}
}
},
"/users/{user_id}/web-profiles": {
"get": {
"summary": "Returns list of user's links added to their profile (website, facebook, instagram).",
"tags": [
"users"
],
"security": [
{
"ClientId": [],
"AuthHeader": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/user_id"
},
{
"$ref": "#/components/parameters/limit"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/WebProfiles"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
}
}
},
"/users/{user_id}/likes/tracks": {
"get": {
"summary": "Returns a list of user's liked tracks.",
"tags": [
"users"
],
"security": [
{
"ClientId": [],
"AuthHeader": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/user_id"
},
{
"$ref": "#/components/parameters/access"
},
{
"$ref": "#/components/parameters/limit"
},
{
"$ref": "#/components/parameters/linked_partitioning"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Tracks"
},
"400": {
"$ref": "#/components/responses/BadRequest"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
}
}
},
"/likes/tracks/{track_id}": {
"post": {
"summary": "Likes a track.",
"tags": [
"likes"
],
"security": [
{
"AuthHeader": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/test_track_id"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Success"
},
"400": {
"$ref": "#/components/responses/BadRequest"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
},
"429": {
"$ref": "#/components/responses/TooManyRequests"
}
}
},
"delete": {
"summary": "Unlikes a track.",
"tags": [
"likes"
],
"security": [
{
"AuthHeader": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/test_track_id"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Success"
},
"400": {
"$ref": "#/components/responses/BadRequest"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
}
}
},
"/likes/playlists/{playlist_id}": {
"post": {
"summary": "Likes a playlist.",
"tags": [
"likes"
],
"security": [
{
"AuthHeader": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/playlist_id"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Success"
},
"201": {
"$ref": "#/components/responses/Created"
},
"400": {
"$ref": "#/components/responses/BadRequest"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
},
"429": {
"$ref": "#/components/responses/TooManyRequests"
}
}
},
"delete": {
"summary": "Unlikes a playlist.",
"tags": [
"likes"
],
"security": [
{
"AuthHeader": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/playlist_id"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/Success"
},
"400": {
"$ref": "#/components/responses/BadRequest"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
}
}
},
"/reposts/tracks/{track_id}": {
"post": {
"summary": "Reposts a track as the authenticated user",
"tags": [
"reposts"
],
"security": [
{
"AuthHeader": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/test_track_id"
}
],
"responses": {
"201": {
"description": "Created"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
}
},
"delete": {
"summary": "Removes a repost on a track as the authenticated user",
"tags": [
"reposts"
],
"security": [
{
"AuthHeader": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/test_track_id"
}
],
"responses": {
"200": {
"description": "Success"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
}
}
},
"/reposts/playlists/{playlist_id}": {
"post": {
"summary": "Reposts a playlist as the authenticated user",
"tags": [
"reposts"
],
"security": [
{
"AuthHeader": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/repost_playlist_id"
}
],
"responses": {
"201": {
"description": "Created"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
}
},
"delete": {
"summary": "Removes a repost on a playlist as the authenticated user",
"tags": [
"reposts"
],
"security": [
{
"AuthHeader": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/repost_playlist_id"
}
],
"responses": {
"200": {
"description": "Success"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
}
}
}
}
},
"components": {
"parameters": {
"bpm": {
"in": "query",
"name": "bpm",
"description": "Return tracks with a specified bpm[from], bpm[to]",
"required": false,
"style": "deepObject",
"schema": {
"type": "object",
"properties": {
"from": {
"type": "integer",
"description": "Return tracks with at least this bpm value",
"example": 123
},
"to": {
"type": "integer",
"description": "Return tracks with at most this bpm value",
"example": 456
}
}
}
},
"client_id": {
"in": "query",
"name": "client_id",
"required": true,
"schema": {
"type": "string"
},
"description": "The client id belonging to your application",
"example": "some client"
},
"created_at": {
"in": "query",
"name": "created_at",
"description": "(yyyy-mm-dd hh:mm:ss) return tracks created within the specified dates",
"required": false,
"style": "deepObject",
"schema": {
"type": "object",
"properties": {
"from": {
"type": "string",
"description": "(yyyy-mm-dd hh:mm:ss) return tracks created at this date or later",
"example": "2020-12-24T00:00:00.000Z"
},
"to": {
"type": "string",
"description": "(yyyy-mm-dd hh:mm:ss) return tracks created at this date or earlier",
"example": "2020-12-26T00:00:00.000Z"
}
}
}
},
"duration": {
"in": "query",
"name": "duration",
"description": "Return tracks within a specified duration range",
"required": false,
"style": "deepObject",
"schema": {
"type": "object",
"properties": {
"from": {
"type": "integer",
"description": "Return tracks with at least this duration value",
"example": 123456
},
"to": {
"type": "integer",
"description": "Return tracks with at most this duration value",
"example": 456789
}
}
}
},
"genres": {
"in": "query",
"name": "genres",
"required": false,
"schema": {
"type": "string"
},
"description": "A comma separated list of genres",
"example": "Pop,House"
},
"ids": {
"in": "query",
"name": "ids",
"required": false,
"schema": {
"type": "string"
},
"description": "A comma separated list of track ids to filter on",
"example": "1,2,3"
},
"limit": {
"in": "query",
"name": "limit",
"required": false,
"schema": {
"type": "integer",
"minimum": 1,
"maximum": 200,
"default": 50
},
"description": "Number of results to return in the collection.",
"example": 2
},
"offset": {
"deprecated": true,
"in": "query",
"name": "offset",
"required": false,
"schema": {
"type": "integer",
"default": 0
},
"description": "Offset of first result. Deprecated, use `linked_partitioning` instead.",
"example": 0
},
"q": {
"in": "query",
"name": "q",
"required": true,
"schema": {
"type": "string"
},
"description": "search",
"example": "hello"
},
"redirect_uri": {
"in": "query",
"name": "redirect_uri",
"required": true,
"schema": {
"type": "string"
},
"description": "The redirect uri you have configured for your application",
"example": "https://soundcloud.com"
},
"response_type": {
"in": "query",
"name": "response_type",
"required": true,
"schema": {
"type": "string",
"enum": [
"code",
"token",
"code_and_token"
]
},
"description": "It's recommended to use \"code\" here",
"example": "code"
},
"scope": {
"in": "query",
"name": "scope",
"required": true,
"schema": {
"type": "string"
},
"description": "Scope",
"example": "default"
},
"state": {
"in": "query",
"name": "state",
"required": false,
"schema": {
"type": "string"
},
"description": "Any value included here will be appended to the redirect URI. Use this for CSRF protection.",
"example": "encrypted_session_info"
},
"tags": {
"in": "query",
"name": "tags",
"required": false,
"schema": {
"type": "string"
},
"description": "A comma separated list of tags",
"example": "test"
},
"url": {
"in": "query",
"name": "url",
"required": true,
"schema": {
"type": "string"
},
"description": "SoundCloud URL",
"example": "https://soundcloud.com/user-434241656"
},
"linked_partitioning": {
"in": "query",
"name": "linked_partitioning",
"required": false,
"schema": {
"type": "boolean"
},
"description": "Returns paginated collection of items (recommended, returning a list without pagination is deprecated and should not be used)",
"example": true
},
"secret_token": {
"in": "query",
"name": "secret_token",
"required": false,
"schema": {
"type": "string"
},
"description": "A secret token to fetch private playlists/tracks"
},
"access": {
"in": "query",
"name": "access",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"playable",
"preview",
"blocked"
]
},
"default": "playable,preview"
},
"description": "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 `Track#access` schema for more details.\n",
"style": "form",
"explode": false
},
"comment_id": {
"in": "path",
"name": "comment_id",
"required": true,
"schema": {
"type": "integer"
},
"description": "SoundCloud comment id",
"example": 123456
},
"connection_id": {
"in": "path",
"name": "connection_id",
"required": true,
"schema": {
"type": "integer"
},
"description": "SoundCloud connection id",
"example": 123456
},
"follower_id": {
"in": "path",
"name": "follower_id",
"required": true,
"schema": {
"type": "integer"
},
"description": "SoundCloud User id to denote a Follower",
"example": 743372812
},
"following_id": {
"in": "path",
"name": "following_id",
"required": true,
"schema": {
"type": "integer"
},
"description": "SoundCloud User id to denote a Following of a user",
"example": 25219981
},
"playlist_id": {
"in": "path",
"name": "playlist_id",
"required": true,
"schema": {
"type": "integer"
},
"description": "SoundCloud playlist id",
"example": 1212781357
},
"fake_playlist_id": {
"in": "path",
"name": "playlist_id",
"required": true,
"schema": {
"type": "integer"
},
"description": "SoundCloud playlist id",
"example": 10
},
"repost_playlist_id": {
"in": "path",
"name": "playlist_id",
"required": true,
"schema": {
"type": "integer"
},
"description": "SoundCloud playlist id",
"example": 1205584273
},
"tag": {
"in": "path",
"name": "tag",
"required": true,
"schema": {
"type": "string"
},
"description": "tag",
"example": "some tag"
},
"track_id": {
"in": "path",
"name": "track_id",
"required": true,
"schema": {
"type": "integer"
},
"description": "SoundCloud Track id",
"example": 308946187
},
"test_track_id": {
"in": "path",
"name": "track_id",
"required": true,
"schema": {
"type": "integer"
},
"description": "SoundCloud Track id",
"example": 1015448728
},
"user_id": {
"in": "path",
"name": "user_id",
"required": true,
"schema": {
"type": "integer"
},
"description": "SoundCloud User id",
"example": 948745750
},
"user_id_to_follow": {
"in": "path",
"name": "user_id",
"required": true,
"schema": {
"type": "integer"
},
"description": "SoundCloud User id",
"example": 743372812
}
},
"securitySchemes": {
"ClientId": {
"in": "query",
"type": "apiKey",
"name": "client_id",
"description": "Your product key. This is not the same as the API key used for most requests"
},
"AuthHeader": {
"in": "header",
"type": "apiKey",
"name": "Authorization",
"description": "The string \"OAuth\" followed by the user’s token: OAuth ACCESS_TOKEN"
}
},
"schemas": {
"AuthorizationCode": {
"type": "object",
"properties": {
"grant_type": {
"type": "string",
"enum": [
"authorization_code",
"client_credentials"
]
},
"authorization_code": {
"type": "string",
"description": "Authorization code"
},
"client_id": {
"type": "string",
"description": "Client ID"
},
"redirect_uri": {
"type": "string",
"description": "Redirect URI"
},
"client_secret": {
"type": "string",
"description": "Client secret"
}
}
},
"RefreshToken": {
"type": "object",
"properties": {
"grant_type": {
"type": "string",
"enum": [
"refresh_token"
]
},
"refresh_token": {
"type": "string",
"description": "Refresh token"
},
"client_id": {
"type": "string",
"description": "Client ID"
},
"redirect_uri": {
"type": "string",
"description": "Redirect URI"
},
"client_secret": {
"type": "string",
"description": "Client secret"
}
}
},
"Password": {
"type": "object",
"deprecated": true,
"properties": {
"grant_type": {
"type": "string",
"enum": [
"password"
]
},
"user_name": {
"type": "string",
"description": "User name"
},
"password": {
"type": "string",
"description": "User password"
},
"client_id": {
"type": "string",
"description": "Client ID"
},
"redirect_uri": {
"type": "string",
"description": "Redirect URI"
},
"client_secret": {
"type": "string",
"description": "Client secret"
}
}
},
"Connection": {
"type": "object",
"properties": {
"created_at": {
"type": "string",
"description": "Created timestamp."
},
"display_name": {
"type": "string",
"description": "Full Name."
},
"id": {
"type": "integer",
"description": "Unique identifier"
},
"kind": {
"type": "string",
"description": "Kind of resource."
},
"post_favorite": {
"type": "boolean",
"deprecated": true
},
"post_publish": {
"type": "boolean",
"deprecated": true
},
"service": {
"type": "string",
"description": "Service."
},
"type": {
"type": "string",
"description": "Type."
},
"uri": {
"type": "string",
"description": "The external link URI."
}
}
},
"Connections": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Connection"
}
},
"TrackMetadataRequest": {
"type": "object",
"properties": {
"track": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"permalink": {
"type": "string"
},
"sharing": {
"type": "string",
"enum": [
"public",
"private"
],
"default": "public"
},
"embeddable_by": {
"type": "string",
"enum": [
"all",
"me",
"none"
],
"description": "who can embed this track \"all\", \"me\", or \"none\""
},
"purchase_url": {
"type": "string"
},
"description": {
"type": "string"
},
"genre": {
"type": "string"
},
"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."
},
"label_name": {
"type": "string"
},
"release": {
"type": "string"
},
"release_date": {
"title": "write only!",
"type": "string",
"description": "string, formatted as yyyy-mm-dd, representing release date"
},
"streamable": {
"type": "boolean",
"default": true
},
"downloadable": {
"type": "boolean",
"default": true
},
"license": {
"type": "string",
"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"
],
"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"
},
"commentable": {
"type": "boolean",
"default": true
},
"isrc": {
"type": "string"
}
}
}
}
},
"CreateUpdatePlaylistRequest": {
"type": "object",
"properties": {
"playlist": {
"type": "object",
"properties": {
"title": {
"description": "Title of the playlist",
"type": "string"
},
"description": {
"description": "Description of the playlist",
"type": "string"
},
"sharing": {
"description": "public or private",
"type": "string",
"enum": [
"public",
"private"
]
},
"tracks": {
"description": "List of tracks to add to playlist",
"type": "array",
"items": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"description": "SoundCloud track id",
"type": "string"
}
}
}
}
}
}
}
},
"TrackDataRequest": {
"type": "object",
"properties": {
"track[title]": {
"type": "string"
},
"track[asset_data]": {
"title": "Only for uploading",
"type": "string",
"format": "binary"
},
"track[permalink]": {
"type": "string"
},
"track[sharing]": {
"type": "string",
"enum": [
"public",
"private"
],
"default": "public"
},
"track[embeddable_by]": {
"type": "string",
"enum": [
"all",
"me",
"none"
],
"description": "who can embed this track \"all\", \"me\", or \"none\""
},
"track[purchase_url]": {
"type": "string"
},
"track[description]": {
"type": "string"
},
"track[genre]": {
"type": "string"
},
"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[label_name]": {
"type": "string"
},
"track[release]": {
"type": "string"
},
"track[release_date]": {
"title": "write only!",
"type": "string",
"description": "string, formatted as yyyy-mm-dd, representing release date"
},
"track[streamable]": {
"type": "boolean",
"default": true
},
"track[downloadable]": {
"type": "boolean",
"default": true
},
"track[license]": {
"type": "string",
"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"
],
"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[commentable]": {
"type": "boolean",
"default": true
},
"track[isrc]": {
"type": "string"
},
"track[artwork_data]": {
"title": "Only for uploading, for PRO users",
"type": "string",
"format": "binary"
}
}
},
"Found": {
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Status code."
},
"location": {
"type": "string",
"description": "Location URL of the resource."
}
}
},
"Error": {
"type": "object",
"properties": {
"code": {
"type": "integer"
},
"message": {
"type": "string"
},
"link": {
"type": "string"
},
"error": {
"type": "string",
"deprecated": true,
"nullable": true
},
"errors": {
"type": "array",
"deprecated": true,
"items": {}
},
"status": {
"type": "string",
"deprecated": true
}
}
},
"TooManyRequests": {
"allOf": [
{
"$ref": "#/components/schemas/Error"
},
{
"type": "object",
"properties": {
"spam_warning_urn": {
"type": "string"
}
}
}
]
},
"User": {
"type": "object",
"description": "SoundCloud User object",
"properties": {
"avatar_url": {
"description": "URL to a JPEG image",
"type": "string"
},
"city": {
"description": "city",
"type": "string"
},
"country": {
"description": "country",
"type": "string"
},
"description": {
"description": "description",
"type": "string"
},
"discogs_name": {
"description": "discogs name",
"type": "string"
},
"first_name": {
"description": "first name",
"type": "string"
},
"followers_count": {
"description": "number of followers",
"type": "integer"
},
"followings_count": {
"description": "number of followed users",
"type": "integer"
},
"full_name": {
"description": "first and last name",
"type": "string"
},
"id": {
"description": "unique identifier",
"type": "integer"
},
"kind": {
"description": "kind of resource",
"type": "string"
},
"created_at": {
"description": "profile creation datetime",
"format": "date-time",
"type": "string"
},
"last_modified": {
"description": "last modified datetime",
"format": "date-time",
"type": "string"
},
"last_name": {
"description": "last name",
"type": "string"
},
"myspace_name": {
"description": "myspace name",
"type": "string",
"deprecated": true
},
"permalink": {
"description": "permalink of the resource",
"type": "string"
},
"permalink_url": {
"description": "URL to the SoundCloud.com page",
"type": "string"
},
"plan": {
"description": "subscription plan of the user",
"type": "string"
},
"playlist_count": {
"description": "number of public playlists",
"type": "integer"
},
"public_favorites_count": {
"description": "number of favorited public tracks",
"type": "integer"
},
"reposts_count": {
"description": "number of reposts from user",
"type": "integer"
},
"track_count": {
"description": "number of public tracks",
"type": "integer"
},
"uri": {
"description": "API resource URL",
"type": "string"
},
"username": {
"description": "username",
"type": "string"
},
"website": {
"description": "a URL to the website",
"type": "string"
},
"website_title": {
"description": "a custom title for the website",
"type": "string"
},
"subscriptions": {
"description": "a list subscriptions associated with the user",
"deprecated": true,
"items": {
"type": "array",
"anyOf": [
{
"description": "subscription",
"properties": {
"product": {
"description": "product",
"properties": {
"id": {
"description": "subscription id instance.",
"type": "string"
},
"name": {
"description": "subscription name instance.",
"type": "string"
}
},
"type": "object"
},
"recurring": {
"description": "if the subscription is recurring or not",
"type": "boolean"
}
},
"type": "object"
}
],
"items": {}
}
}
}
},
"MetaUser": {
"description": "SoundCloud User object.",
"type": "object",
"properties": {
"avatar_url": {
"description": "URL to a JPEG image",
"type": "string"
},
"id": {
"description": "unique identifier",
"type": "integer"
},
"kind": {
"description": "kind of resource",
"type": "string"
},
"created_at": {
"description": "profile creation datetime",
"format": "date-time",
"type": "string"
},
"last_modified": {
"description": "last modified datetime",
"format": "date-time",
"type": "string"
},
"permalink": {
"description": "permalink of the resource",
"type": "string"
},
"permalink_url": {
"description": "URL to the SoundCloud.com page",
"type": "string"
},
"uri": {
"description": "API resource URL",
"type": "string"
},
"username": {
"description": "username",
"type": "string"
}
},
"nullable": true
},
"CompleteUser": {
"type": "object",
"description": "SoundCloud Complete User object",
"properties": {
"avatar_url": {
"description": "URL to a JPEG image.",
"type": "string"
},
"city": {
"description": "city.",
"type": "string"
},
"country": {
"description": "country.",
"type": "string"
},
"description": {
"description": "description.",
"type": "string"
},
"discogs_name": {
"description": "discogs name.",
"type": "string"
},
"first_name": {
"description": "first name.",
"type": "string"
},
"followers_count": {
"description": "number of followers.",
"type": "integer"
},
"followings_count": {
"description": "number of followed users.",
"type": "integer"
},
"full_name": {
"description": "first and last name.",
"type": "string"
},
"id": {
"description": "unique identifier",
"type": "integer"
},
"kind": {
"description": "kind of resource.",
"type": "string"
},
"last_modified": {
"description": "last modified timestamp.",
"type": "string"
},
"last_name": {
"description": "last name.",
"type": "string"
},
"locale": {
"description": "locale.",
"type": "string"
},
"myspace_name": {
"description": "myspace name",
"type": "string",
"deprecated": true
},
"permalink": {
"description": "permalink of the resource.",
"type": "string"
},
"permalink_url": {
"description": "URL to the SoundCloud.com page.",
"type": "string"
},
"plan": {
"description": "subscription plan of the user.",
"type": "string"
},
"playlist_count": {
"description": "number of public playlists.",
"type": "integer"
},
"primary_email_confirmed": {
"description": "boolean if email is confirmed.",
"type": "boolean"
},
"private_playlists_count": {
"description": "number of private playlists.",
"type": "integer"
},
"private_tracks_count": {
"description": "number of private tracks.",
"type": "integer"
},
"public_favorites_count": {
"description": "number of favorited public tracks",
"type": "integer"
},
"quota": {
"description": "user's upload quota",
"properties": {
"unlimited_upload_quota": {
"description": "unlimited upload quota.",
"type": "boolean"
},
"upload_seconds_used": {
"description": "upload seconds used.",
"type": "integer"
}
},
"type": "object"
},
"reposts_count": {
"description": "number of reposts from user",
"type": "integer"
},
"subscriptions": {
"description": "a list subscriptions associated with the user",
"items": {
"type": "array",
"anyOf": [
{
"description": "subscription",
"properties": {
"product": {
"description": "product",
"properties": {
"id": {
"description": "subscription id instance.",
"type": "string"
},
"name": {
"description": "subscription name instance.",
"type": "string"
}
},
"type": "object"
},
"recurring": {
"description": "if the subscription is recurring or not",
"type": "boolean"
}
},
"type": "object"
}
],
"items": {}
}
},
"track_count": {
"description": "number of public tracks.",
"type": "integer"
},
"uri": {
"description": "API resource URL.",
"type": "string"
},
"username": {
"description": "username",
"type": "string"
},
"website": {
"description": "a URL to the website.",
"type": "string"
},
"website_title": {
"description": "a custom title for the website.",
"type": "string"
}
}
},
"Users": {
"type": "object",
"properties": {
"collection": {
"type": "array",
"items": {
"$ref": "#/components/schemas/User"
}
},
"next_href": {
"type": "string"
}
}
},
"MetaUsers": {
"type": "object",
"properties": {
"collection": {
"type": "array",
"items": {
"$ref": "#/components/schemas/MetaUser"
}
},
"next_href": {
"type": "string"
}
}
},
"UsersList": {
"deprecated": true,
"type": "array",
"items": {
"type": "object",
"description": "SoundCloud User object",
"properties": {
"avatar_url": {
"description": "URL to a JPEG image",
"type": "string"
},
"city": {
"description": "city",
"type": "string"
},
"country": {
"description": "country",
"type": "string"
},
"description": {
"description": "description",
"type": "string"
},
"discogs_name": {
"description": "discogs name",
"type": "string"
},
"first_name": {
"description": "first name",
"type": "string"
},
"followers_count": {
"description": "number of followers",
"type": "integer"
},
"followings_count": {
"description": "number of followed users",
"type": "integer"
},
"full_name": {
"description": "first and last name",
"type": "string"
},
"id": {
"description": "unique identifier",
"type": "integer"
},
"kind": {
"description": "kind of resource",
"type": "string"
},
"last_modified": {
"description": "last modified datetime",
"format": "date-time",
"type": "string"
},
"last_name": {
"description": "last name",
"type": "string"
},
"myspace_name": {
"description": "myspace name",
"type": "string",
"deprecated": true
},
"permalink": {
"description": "permalink of the resource",
"type": "string"
},
"permalink_url": {
"description": "URL to the SoundCloud.com page",
"type": "string"
},
"plan": {
"description": "subscription plan of the user",
"type": "string"
},
"playlist_count": {
"description": "number of public playlists",
"type": "integer"
},
"public_favorites_count": {
"description": "number of favorited public tracks",
"type": "integer"
},
"reposts_count": {
"description": "number of reposts from user",
"type": "integer"
},
"track_count": {
"description": "number of public tracks",
"type": "integer"
},
"uri": {
"description": "API resource URL",
"type": "string"
},
"username": {
"description": "username",
"type": "string"
},
"website": {
"description": "a URL to the website",
"type": "string"
},
"website_title": {
"description": "a custom title for the website",
"type": "string"
},
"subscriptions": {
"description": "a list subscriptions associated with the user",
"deprecated": true,
"items": {
"type": "array",
"anyOf": [
{
"description": "subscription",
"properties": {
"product": {
"description": "product",
"properties": {
"id": {
"description": "subscription id instance.",
"type": "string"
},
"name": {
"description": "subscription name instance.",
"type": "string"
}
},
"type": "object"
},
"recurring": {
"description": "if the subscription is recurring or not",
"type": "boolean"
}
},
"type": "object"
}
],
"items": {}
}
}
}
}
},
"Track": {
"type": "object",
"description": "Soundcloud Track object.",
"properties": {
"title": {
"description": "Track title.",
"type": "string"
},
"artwork_url": {
"description": "URL to a JPEG image.",
"type": "string"
},
"bpm": {
"description": "Tempo.",
"type": "integer"
},
"comment_count": {
"description": "Number of comments.",
"type": "integer"
},
"commentable": {
"description": "Is commentable.",
"type": "boolean"
},
"created_at": {
"description": "Created timestamp.",
"type": "string"
},
"description": {
"description": "Track description.",
"type": "string"
},
"download_count": {
"description": "NUmber of downloads.",
"type": "integer"
},
"downloadable": {
"description": "Is downloadable.",
"type": "string"
},
"duration": {
"description": "Track duration.",
"type": "integer"
},
"embeddable_by": {
"deprecated": true,
"description": "Embeddable by.",
"type": "string"
},
"favoritings_count": {
"description": "Number of favoritings.",
"type": "integer"
},
"genre": {
"description": "Genre",
"type": "string"
},
"id": {
"description": "Track identifier.",
"type": "integer"
},
"isrc": {
"description": "ISRC code.",
"type": "string"
},
"key_signature": {
"description": "Key signature.",
"type": "string"
},
"kind": {
"description": "Type of object (track).",
"type": "string"
},
"label_name": {
"description": "Label user name.",
"type": "string"
},
"license": {
"description": "License",
"type": "string"
},
"permalink_url": {
"description": "Permalink URL.",
"type": "string"
},
"playback_count": {
"description": "Number of plays.",
"type": "integer"
},
"purchase_title": {
"description": "Purchase title.",
"type": "string"
},
"purchase_url": {
"description": "Purchase URL.",
"type": "string"
},
"release": {
"description": "Release.",
"type": "string"
},
"release_day": {
"description": "Day of release.",
"type": "integer"
},
"release_month": {
"description": "Month of release.",
"type": "integer"
},
"release_year": {
"description": "Year of release.",
"type": "integer"
},
"sharing": {
"description": "Type of sharing (public/private).",
"type": "string"
},
"stream_url": {
"description": "URL to stream.",
"type": "string"
},
"streamable": {
"description": "Is streamable.",
"type": "boolean"
},
"tag_list": {
"description": "Tags.",
"type": "string"
},
"uri": {
"description": "Track URI.",
"type": "string"
},
"user": {
"description": "User who uploaded a track",
"$ref": "#/components/schemas/MetaUser"
},
"user_favorite": {
"description": "Is user's favourite.",
"type": "boolean"
},
"user_playback_count": {
"description": "Number of plays by a user.",
"type": "integer"
},
"waveform_url": {
"description": "Waveform URL.",
"type": "string"
},
"available_country_codes": {
"description": "List of countries where track is available.",
"type": "string"
},
"access": {
"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",
"enum": [
"playable",
"preview",
"blocked",
null
]
},
"download_url": {
"description": "URL to download a track.",
"type": "string"
},
"reposts_count": {
"description": "Number of reposts.",
"type": "integer"
},
"secret_uri": {
"description": "Secret URL.",
"type": "string"
}
}
},
"Tracks": {
"type": "object",
"properties": {
"collection": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Track"
}
},
"next_href": {
"type": "string"
}
}
},
"TracksList": {
"deprecated": true,
"type": "array",
"items": {
"$ref": "#/components/schemas/Track"
}
},
"Playlist": {
"type": "object",
"description": "Soundcloud Playlist Object",
"properties": {
"title": {
"description": "Playlist title.",
"type": "string"
},
"id": {
"description": "Playlist identifier.",
"type": "integer"
},
"kind": {
"description": "Type of Soundcloud object (playlist).",
"type": "string"
},
"artwork_url": {
"description": "URL to a JPEG image.",
"type": "string"
},
"created_at": {
"description": "Created timestamp.",
"type": "string"
},
"description": {
"description": "Playlist description.",
"type": "string"
},
"downloadable": {
"description": "is downloadable.",
"type": "boolean"
},
"duration": {
"description": "Playlist duration.",
"type": "integer"
},
"ean": {
"description": "European Article Number.",
"type": "string"
},
"embeddable_by": {
"description": "Embeddable by.",
"type": "string"
},
"genre": {
"description": "Playlist genre.",
"type": "string"
},
"label_id": {
"description": "Label user identifier.",
"type": "integer"
},
"label_name": {
"description": "Label name.",
"type": "string"
},
"last_modified": {
"description": "Last modified timestamp.",
"type": "string"
},
"license": {
"description": "License.",
"type": "string"
},
"permalink": {
"description": "Playlist permalink.",
"type": "string"
},
"permalink_url": {
"description": "Playlist permalink URL.",
"type": "string"
},
"playlist_type": {
"description": "Type of playlist.",
"type": "string"
},
"purchase_title": {
"description": "Purchase title.",
"type": "string"
},
"purchase_url": {
"description": "Purchase URL.",
"type": "string"
},
"release": {
"description": "Release.",
"type": "string"
},
"release_day": {
"description": "Day of release.",
"type": "integer"
},
"release_month": {
"description": "Month of release.",
"type": "integer"
},
"release_year": {
"description": "Year of release.",
"type": "integer"
},
"sharing": {
"description": "Type of sharing (private/public).",
"type": "string"
},
"streamable": {
"description": "Is streamable.",
"type": "boolean"
},
"tag_list": {
"description": "Tags.",
"type": "string"
},
"track_count": {
"description": "Count of tracks.",
"type": "integer"
},
"tracks": {
"description": "List of tracks.",
"type": "array",
"items": {
"$ref": "#/components/schemas/Track"
}
},
"type": {
"description": "Playlist type.",
"type": "string"
},
"uri": {
"description": "Playlist URI.",
"type": "string"
},
"user": {
"$ref": "#/components/schemas/MetaUser"
},
"user_id": {
"description": "User identifier.",
"type": "integer"
},
"likes_count": {
"description": "Count of playlist likes.",
"type": "integer"
},
"label": {
"$ref": "#/components/schemas/MetaUser"
},
"tracks_uri": {
"description": "tracks URI.",
"type": "string",
"nullable": true
},
"tags": {
"description": "Tags.",
"type": "string",
"nullable": true
}
}
},
"Playlists": {
"type": "object",
"properties": {
"collection": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Playlist"
}
},
"next_href": {
"type": "string"
}
}
},
"PlaylistsArray": {
"deprecated": true,
"type": "array",
"items": {
"$ref": "#/components/schemas/Playlist"
}
},
"Activities": {
"type": "object",
"description": "User's activities.",
"properties": {
"collection": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"description": "Type of activity (track).",
"type": "string"
},
"created_at": {
"description": "Created timestamp.",
"type": "string"
},
"origin": {
"description": "Origin.",
"type": "object",
"anyOf": [
{
"$ref": "#/components/schemas/Track"
},
{
"$ref": "#/components/schemas/Playlist"
}
]
}
}
}
},
"next_href": {
"type": "string"
},
"future_href": {
"type": "string"
}
}
},
"WebProfiles": {
"type": "array",
"description": "User's links added to their profile",
"items": {
"type": "object",
"properties": {
"created_at": {
"description": "Timestamp of when the link was added to the profile.",
"type": "string"
},
"id": {
"description": "Id",
"type": "integer"
},
"kind": {
"description": "Kind",
"type": "string"
},
"service": {
"description": "Service or platform",
"type": "string"
},
"title": {
"description": "Link's title",
"type": "string"
},
"url": {
"description": "URL of the external link",
"type": "string"
},
"username": {
"description": "Username extracted from the external link",
"type": "string"
}
}
}
},
"Comment": {
"type": "object",
"description": "User's Comment",
"properties": {
"body": {
"description": "Comment body.",
"type": "string"
},
"created_at": {
"description": "Created timestamp.",
"type": "string"
},
"id": {
"description": "Identifier.",
"type": "integer"
},
"kind": {
"description": "Kind (comment).",
"type": "string"
},
"user_id": {
"description": "User's identifier.",
"type": "integer"
},
"timestamp": {
"description": "Timestamp.",
"type": "string"
},
"track_id": {
"description": "Track's identifier.",
"type": "integer"
},
"uri": {
"description": "Comment's URL.",
"type": "string"
},
"user": {
"type": "object",
"description": "SoundCloud User object",
"properties": {
"id": {
"description": "unique identifier",
"type": "integer"
},
"kind": {
"description": "kind of resource.",
"type": "string"
},
"permalink": {
"description": "permalink of the resource.",
"type": "string"
},
"username": {
"description": "username",
"type": "string"
},
"last_modified": {
"description": "last modified timestamp.",
"type": "string"
},
"uri": {
"description": "API resource URL.",
"type": "string"
},
"permalink_url": {
"description": "URL to the SoundCloud.com page.",
"type": "string"
},
"avatar_url": {
"description": "URL to a JPEG image.",
"type": "string"
},
"followers_count": {
"description": "number of followers.",
"type": "integer"
},
"followings_count": {
"description": "number of followed users.",
"type": "integer"
},
"reposts_count": {
"description": "number of reposts from user",
"type": "integer"
}
}
}
}
},
"Comments": {
"type": "object",
"properties": {
"collection": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Comment"
}
},
"next_href": {
"type": "string",
"nullable": true
}
}
},
"CommentsList": {
"deprecated": true,
"type": "array",
"items": {
"$ref": "#/components/schemas/Comment"
}
},
"Streams": {
"type": "object",
"properties": {
"http_mp3_128_url": {
"type": "string"
},
"hls_mp3_128_url": {
"type": "string"
},
"hls_opus_64_url": {
"type": "string"
},
"preview_mp3_128_url": {
"type": "string"
}
}
}
},
"responses": {
"Success": {
"description": "Success",
"content": {
"application/json; charset=utf-8": {
"examples": {
"default": {
"$ref": "#/components/examples/Success"
}
}
}
}
},
"Successful": {
"description": "Success",
"content": {
"application/json; charset=utf-8": {
"examples": {
"default": {
"$ref": "#/components/examples/Successful"
}
}
}
}
},
"Accepted": {
"description": "Accepted",
"content": {
"application/json; charset=utf-8": {
"examples": {
"default": {
"$ref": "#/components/examples/Accepted"
}
}
}
}
},
"Found": {
"description": "Found",
"content": {
"application/json; charset=utf-8": {
"schema": {
"$ref": "#/components/schemas/Found"
}
}
}
},
"FoundHtml": {
"description": "Found",
"content": {
"application/json; charset=utf-8": {
"schema": {
"type": "string"
}
}
}
},
"Created": {
"description": "Created",
"content": {
"application/json; charset=utf-8": {
"examples": {
"default": {
"$ref": "#/components/examples/Created"
}
}
}
}
},
"BadRequest": {
"description": "Bad Request",
"content": {
"application/json; charset=utf-8": {
"examples": {
"default": {
"$ref": "#/components/examples/BadRequest"
}
},
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"Unauthorized": {
"description": "Unauthorized",
"content": {
"application/json; charset=utf-8": {
"examples": {
"default": {
"$ref": "#/components/examples/Unauthorized"
}
},
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"Forbidden": {
"description": "Forbidden",
"content": {
"application/json": {
"examples": {
"default": {
"$ref": "#/components/examples/Forbidden"
}
},
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"NotFound": {
"description": "Not Found",
"content": {
"application/json": {
"examples": {
"default": {
"$ref": "#/components/examples/NotFound"
}
},
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"UnprocessableEntity": {
"description": "Unprocessable Entity",
"content": {
"application/json": {
"examples": {
"default": {
"$ref": "#/components/examples/UnprocessableEntity"
}
},
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"TooManyRequests": {
"description": "Too Many Requests",
"content": {
"application/json": {
"examples": {
"default": {
"$ref": "#/components/examples/TooManyRequests"
}
},
"schema": {
"$ref": "#/components/schemas/TooManyRequests"
}
}
}
},
"Connection": {
"description": "Success",
"content": {
"application/json; charset=utf-8": {
"schema": {
"$ref": "#/components/schemas/Connection"
},
"examples": {
"default": {
"$ref": "#/components/examples/Connection"
}
}
}
}
},
"Connections": {
"description": "Success",
"content": {
"application/json; charset=utf-8": {
"schema": {
"$ref": "#/components/schemas/Connections"
},
"examples": {
"default": {
"$ref": "#/components/examples/Connections"
}
}
}
}
},
"User": {
"description": "Success",
"content": {
"application/json; charset=utf-8": {
"schema": {
"$ref": "#/components/schemas/User"
},
"examples": {
"default": {
"$ref": "#/components/examples/User"
}
}
}
}
},
"MetaUser": {
"description": "Success",
"content": {
"application/json; charset=utf-8": {
"schema": {
"$ref": "#/components/schemas/MetaUser"
},
"examples": {
"default": {
"$ref": "#/components/examples/UserOf"
}
}
}
}
},
"CompleteUser": {
"description": "Success",
"content": {
"application/json; charset=utf-8": {
"schema": {
"$ref": "#/components/schemas/CompleteUser"
},
"examples": {
"default": {
"$ref": "#/components/examples/CompleteUser"
}
}
}
}
},
"Users": {
"description": "Success",
"content": {
"application/json; charset=utf-8": {
"schema": {
"oneOf": [
{
"$ref": "#/components/schemas/Users"
},
{
"$ref": "#/components/schemas/UsersList"
}
]
},
"examples": {
"default": {
"$ref": "#/components/examples/Users"
},
"usersList": {
"$ref": "#/components/examples/UsersList"
}
}
}
}
},
"UsersList": {
"description": "Success",
"content": {
"application/json; charset=utf-8": {
"schema": {
"$ref": "#/components/schemas/UsersList"
},
"examples": {
"default": {
"$ref": "#/components/examples/UsersList"
}
}
}
}
},
"MetaUsers": {
"description": "Success",
"content": {
"application/json; charset=utf-8": {
"schema": {
"$ref": "#/components/schemas/MetaUsers"
},
"examples": {
"default": {
"$ref": "#/components/examples/MetaUsers"
}
}
}
}
},
"Track": {
"description": "Success",
"content": {
"application/json; charset=utf-8": {
"schema": {
"$ref": "#/components/schemas/Track"
},
"examples": {
"default": {
"$ref": "#/components/examples/Track"
}
}
}
}
},
"Tracks": {
"description": "Success",
"content": {
"application/json; charset=utf-8": {
"schema": {
"oneOf": [
{
"$ref": "#/components/schemas/Tracks"
},
{
"$ref": "#/components/schemas/TracksList"
}
]
},
"examples": {
"default": {
"$ref": "#/components/examples/Tracks"
},
"tracksList": {
"$ref": "#/components/examples/TracksList"
}
}
}
}
},
"TracksList": {
"description": "Success",
"content": {
"application/json; charset=utf-8": {
"schema": {
"$ref": "#/components/schemas/TracksList"
},
"examples": {
"default": {
"$ref": "#/components/examples/TracksList"
}
}
}
}
},
"Playlist": {
"description": "Success",
"content": {
"application/json; charset=utf-8": {
"schema": {
"$ref": "#/components/schemas/Playlist"
},
"examples": {
"default": {
"$ref": "#/components/examples/Playlist"
}
}
}
}
},
"LegacyPlaylist": {
"description": "Success",
"content": {
"application/json; charset=utf-8": {
"schema": {
"type": "object",
"description": "Soundcloud Playlist Object",
"properties": {
"title": {
"description": "Playlist title.",
"type": "string"
},
"id": {
"description": "Playlist identifier.",
"type": "integer"
},
"kind": {
"description": "Type of Soundcloud object (playlist).",
"type": "string"
},
"artwork_url": {
"description": "URL to a JPEG image.",
"type": "string"
},
"created_at": {
"description": "Created timestamp.",
"type": "string"
},
"description": {
"description": "Playlist description.",
"type": "string"
},
"downloadable": {
"description": "is downloadable.",
"type": "boolean"
},
"duration": {
"description": "Playlist duration.",
"type": "integer"
},
"ean": {
"description": "European Article Number.",
"type": "string"
},
"embeddable_by": {
"description": "Embeddable by.",
"type": "string"
},
"genre": {
"description": "Playlist genre.",
"type": "string"
},
"label_id": {
"description": "Label user identifier.",
"type": "integer"
},
"label_name": {
"description": "Label name.",
"type": "string"
},
"last_modified": {
"description": "Last modified timestamp.",
"type": "string"
},
"license": {
"description": "License.",
"type": "string"
},
"permalink": {
"description": "Playlist permalink.",
"type": "string"
},
"permalink_url": {
"description": "Playlist permalink URL.",
"type": "string"
},
"playlist_type": {
"description": "Type of playlist.",
"type": "string"
},
"purchase_title": {
"description": "Purchase title.",
"type": "string"
},
"purchase_url": {
"description": "Purchase URL.",
"type": "string"
},
"release": {
"description": "Release.",
"type": "string"
},
"release_day": {
"description": "Day of release.",
"type": "integer"
},
"release_month": {
"description": "Month of release.",
"type": "integer"
},
"release_year": {
"description": "Year of release.",
"type": "integer"
},
"sharing": {
"description": "Type of sharing (private/public).",
"type": "string"
},
"streamable": {
"description": "Is streamable.",
"type": "boolean"
},
"tag_list": {
"description": "Tags.",
"type": "string"
},
"track_count": {
"description": "Count of tracks.",
"type": "integer"
},
"tracks": {
"description": "List of tracks.",
"type": "array",
"items": {
"type": "object",
"description": "Soundcloud Track object.",
"properties": {
"title": {
"description": "Track title.",
"type": "string"
},
"artwork_url": {
"description": "URL to a JPEG image.",
"type": "string"
},
"bpm": {
"description": "Tempo.",
"type": "integer"
},
"comment_count": {
"description": "Number of comments.",
"type": "integer"
},
"commentable": {
"description": "Is commentable.",
"type": "boolean"
},
"created_at": {
"description": "Created timestamp.",
"type": "string"
},
"description": {
"description": "Track description.",
"type": "string"
},
"download_count": {
"description": "NUmber of downloads.",
"type": "integer"
},
"downloadable": {
"description": "Is downloadable.",
"type": "string"
},
"duration": {
"description": "Track duration.",
"type": "integer"
},
"embeddable_by": {
"deprecated": true,
"description": "Embeddable by.",
"type": "string"
},
"favoritings_count": {
"description": "Number of favoritings.",
"type": "integer"
},
"genre": {
"description": "Genre",
"type": "string"
},
"id": {
"description": "Track identifier.",
"type": "integer"
},
"isrc": {
"description": "ISRC code.",
"type": "string"
},
"key_signature": {
"description": "Key signature.",
"type": "string"
},
"kind": {
"description": "Type of object (track).",
"type": "string"
},
"label_name": {
"description": "Label user name.",
"type": "string"
},
"license": {
"description": "License",
"type": "string"
},
"permalink_url": {
"description": "Permalink URL.",
"type": "string"
},
"playback_count": {
"description": "Number of plays.",
"type": "integer"
},
"purchase_title": {
"description": "Purchase title.",
"type": "string"
},
"purchase_url": {
"description": "Purchase URL.",
"type": "string"
},
"release": {
"description": "Release.",
"type": "string"
},
"release_day": {
"description": "Day of release.",
"type": "integer"
},
"release_month": {
"description": "Month of release.",
"type": "integer"
},
"release_year": {
"description": "Year of release.",
"type": "integer"
},
"sharing": {
"description": "Type of sharing (public/private).",
"type": "string"
},
"stream_url": {
"description": "URL to stream.",
"type": "string"
},
"streamable": {
"description": "Is streamable.",
"type": "boolean"
},
"tag_list": {
"description": "Tags.",
"type": "string"
},
"uri": {
"description": "Track URI.",
"type": "string"
},
"user": {
"description": "User who uploaded a track",
"$ref": "#/components/schemas/MetaUser"
},
"user_favorite": {
"description": "Is user's favourite.",
"type": "boolean"
},
"user_playback_count": {
"description": "Number of plays by a user.",
"type": "integer"
},
"waveform_url": {
"description": "Waveform URL.",
"type": "string"
}
}
}
},
"type": {
"description": "Playlist type.",
"type": "string"
},
"uri": {
"description": "Playlist URI.",
"type": "string"
},
"user": {
"$ref": "#/components/schemas/MetaUser"
},
"user_id": {
"description": "User identifier.",
"type": "integer"
}
}
}
}
}
},
"Playlists": {
"description": "Success",
"content": {
"application/json; charset=utf-8": {
"schema": {
"oneOf": [
{
"$ref": "#/components/schemas/Playlists"
},
{
"$ref": "#/components/schemas/PlaylistsArray"
}
]
},
"examples": {
"default": {
"$ref": "#/components/examples/Playlists"
},
"playlistsArray": {
"$ref": "#/components/examples/PlaylistsArray"
}
}
}
}
},
"PlaylistsArray": {
"description": "Success",
"content": {
"application/json; charset=utf-8": {
"schema": {
"$ref": "#/components/schemas/PlaylistsArray"
},
"examples": {
"default": {
"$ref": "#/components/examples/PlaylistsArray"
}
}
}
}
},
"Activities": {
"description": "Success",
"content": {
"application/json; charset=utf-8": {
"schema": {
"$ref": "#/components/schemas/Activities"
},
"examples": {
"default": {
"$ref": "#/components/examples/Activities"
}
}
}
}
},
"WebProfiles": {
"description": "Success",
"content": {
"application/json; charset=utf-8": {
"schema": {
"$ref": "#/components/schemas/WebProfiles"
},
"examples": {
"default": {
"$ref": "#/components/examples/WebProfiles"
}
}
}
}
},
"Comment": {
"description": "Success",
"content": {
"application/json; charset=utf-8": {
"schema": {
"$ref": "#/components/schemas/Comment"
},
"examples": {
"default": {
"$ref": "#/components/examples/Comment"
}
}
}
}
},
"Comments": {
"description": "Success",
"content": {
"application/json; charset=utf-8": {
"schema": {
"oneOf": [
{
"$ref": "#/components/schemas/Comments"
},
{
"$ref": "#/components/schemas/CommentsList"
}
]
},
"examples": {
"default": {
"$ref": "#/components/examples/Comments"
},
"commentsList": {
"$ref": "#/components/examples/CommentsList"
}
}
}
}
},
"CommentsList": {
"description": "Success",
"content": {
"application/json; charset=utf-8": {
"schema": {
"$ref": "#/components/schemas/CommentsList"
},
"examples": {
"default": {
"$ref": "#/components/examples/CommentsList"
}
}
}
}
},
"Streams": {
"description": "Success",
"content": {
"application/json; charset=utf-8": {
"schema": {
"$ref": "#/components/schemas/Streams"
},
"examples": {
"default": {
"$ref": "#/components/examples/Streams"
}
}
}
}
}
},
"examples": {
"AuthorizationCode": {
"value": {
"grant_type": "authorization_code",
"client_id": "CLIENT_ID",
"client_secret": "CLIENT_SECRET",
"redirect_uri": "https://mywebsite/auth/soundcloud",
"code": "1-123456-12345678-FAbcfbe9ir2wdj0"
}
},
"ClientCredentials": {
"value": {
"grant_type": "client_credentials",
"client_id": "CLIENT_ID",
"client_secret": "CLIENT_SECRET"
}
},
"Password": {
"value": {
"client_id": "CLIENT_ID",
"client_secret": "CLIENT_SECRET",
"username": "my-user-name",
"password": "my-password"
}
},
"RefreshToken": {
"value": {
"grant_type": "refresh_token",
"client_id": "CLIENT_ID",
"client_secret": "CLIENT_SECRET",
"refresh_token": "1234c331329477150e7b6056ff212345"
}
},
"Activities": {
"value": {
"collection": [
{
"type": "track:repost",
"created_at": "2020/10/12 12:02:44 +0000",
"origin": {
"allOf": [
{
"$ref": "#/components/examples/Track/value"
}
]
}
},
{
"type": "playlist",
"created_at": "2020/10/12 12:02:44 +0000",
"origin": {
"allOf": [
{
"$ref": "#/components/examples/Playlist/value"
}
]
}
}
],
"next_href": "https://api.soundcloud.com/me/activities?limit=10&cursor=00000",
"future_href": "https://api.soundcloud.com/me/activities?limit=10&cursor=000001"
}
},
"ExpiringToken": {
"value": {
"access_token": "some string",
"expires_in": 21599,
"scope": "",
"refresh_token": "some string"
}
},
"NonExpiringToken": {
"value": {
"access_token": "some string",
"scope": "non-expiring"
}
},
"CreateUpdatePlaylistRequest": {
"value": {
"playlist": {
"title": "Test Auto-created Playlist",
"description": "Playlist for test purposes",
"sharing": "private",
"tracks": [
{
"id": 219787221
},
{
"id": 783019264
},
{
"id": 870073492
}
]
}
}
},
"TrackDataRequest": {
"value": {
"track[title]": "Test drum sample",
"track[asset_data]": "<binary string>",
"track[permalink]": "test-drum-sample",
"track[sharing]": "private",
"track[embeddable_by]": "me",
"track[purchase_url]": null,
"track[description]": "Public-api test sample upload",
"track[genre]": "Pop",
"track[tag_list]": null,
"track[label_name]": null,
"track[release]": null,
"track[release_date]": "2021-02-18T00:00:00.000Z",
"track[streamable]": true,
"track[downloadable]": false,
"track[license]": "no-rights-reserved",
"track[commentable]": true,
"track[isrc]": null,
"track[artwork_data]": null
}
},
"Comment": {
"value": {
"body": "comment body",
"created_at": "2007/09/11 15:40:24 +0000",
"id": 1234,
"kind": "comment",
"timestamp": 4960,
"track_id": 123456,
"uri": "https://api.soundcloud.com/comments/1234",
"user": {
"id": 12345,
"kind": "user",
"permalink": "permalink",
"username": "user name",
"last_modified": "2017/04/10 14:48:03 +0000",
"uri": "https://api.soundcloud.com/users/12345",
"permalink_url": "https://soundcloud.com/permalink",
"avatar_url": "https://i1.sndcdn.com/avatars-large.jpg",
"followers_count": 138,
"followings_count": 172,
"public_favorites_count": 5,
"reposts_count": 0
},
"user_id": 12345
}
},
"Comments": {
"value": {
"collection": {
"$ref": "#/components/examples/Comment/value"
},
"next_href": "https://api.soundcloud.com/collection?client_id=client_id&page_size=10&cursor=1234567"
}
},
"CommentsList": {
"description": "Deprecated, use Comments instead.",
"value": {
"$ref": "#/components/examples/Comment/value"
}
},
"Connection": {
"value": {
"created_at": "1995/07/24 08:55:02 +0000",
"display_name": "Full Name",
"id": 123456,
"kind": "connection",
"post_favorite": true,
"post_publish": true,
"service": "google_plus",
"type": "google_plus",
"uri": "https://api.soundcloud.com/connections/123456"
}
},
"Connections": {
"value": {
"$ref": "#/components/examples/Connection/value"
}
},
"Playlist": {
"value": {
"artwork_url": "",
"created_at": "2020/07/16 16:09:54 +0000",
"description": null,
"downloadable": true,
"duration": 11000,
"ean": null,
"embeddable_by": "all",
"genre": "",
"id": 12345,
"kind": "playlist",
"label": null,
"label_id": null,
"label_name": null,
"last_modified": "2020/09/08 09:13:00 +0000",
"license": "all-rights-reserved",
"likes_count": 0,
"permalink": "permalink",
"permalink_url": "https://soundcloud.com/userPermalink/sets/permalink",
"playlist_type": "",
"purchase_title": null,
"purchase_url": null,
"release": null,
"release_day": null,
"release_month": null,
"release_year": null,
"sharing": "public",
"streamable": true,
"tag_list": "",
"tags": "",
"title": "permalink",
"track_count": 2,
"tracks": {
"$ref": "#/components/examples/Track/value"
},
"tracks_uri": "https://api.soundcloud.com/playlists/12345/tracks",
"type": "",
"uri": "https://api.soundcloud.com/playlists/12345",
"user": {
"$ref": "#/components/examples/UserOf/value"
},
"user_id": 1234
}
},
"Playlists": {
"value": {
"collection": {
"$ref": "#/components/examples/Playlist/value"
},
"next_href": "https://api.soundcloud.com/collection?client_id=client_id&page_size=10&cursor=1234567"
}
},
"PlaylistsArray": {
"description": "Deprecated, use Playlists instead.",
"value": {
"$ref": "#/components/examples/Playlist/value"
}
},
"Streams": {
"value": {
"http_mp3_128_url": "https://cf-media.sndcdn.com/",
"hls_mp3_128_url": "https://cf-media.sndcdn.com/",
"hls_opus_64_url": "https://cf-media.sndcdn.com/",
"preview_mp3_128_url": "https://cf-media.sndcdn.com/"
}
},
"Track": {
"value": {
"artwork_url": "https://i1.sndcdn.com/artworks-large.jpg",
"available_country_codes": null,
"bpm": null,
"comment_count": 4,
"commentable": true,
"created_at": "2019/01/15 15:40:49 +0000",
"description": null,
"download_count": 0,
"download_url": "https://api.soundcloud.com/tracks/1234/download",
"downloadable": false,
"duration": 40000,
"embeddable_by": "all",
"favoritings_count": 271,
"genre": "Rock",
"id": 1234,
"isrc": null,
"key_signature": null,
"kind": "track",
"label_name": "some label",
"license": "all-rights-reserved",
"permalink_url": "https://soundcloud.com/userPermalink/trackPermalink",
"playback_count": 8027,
"purchase_title": null,
"purchase_url": null,
"release": null,
"release_day": 22,
"release_month": 8,
"release_year": 2019,
"reposts_count": 18,
"secret_uri": null,
"sharing": "public",
"stream_url": "https://api.soundcloud.com/tracks/1234/stream",
"streamable": true,
"tag_list": "",
"title": "Some title",
"uri": "https://api.soundcloud.com/tracks/1234",
"user": {
"$ref": "#/components/examples/UserOf/value"
},
"user_favorite": true,
"user_playback_count": 1,
"waveform_url": "https://wave.sndcdn.com/someString.png",
"access": "playable"
}
},
"Tracks": {
"value": {
"collection": {
"$ref": "#/components/examples/Track/value"
},
"next_href": "https://api.soundcloud.com/collection?client_id=client_id&page_size=10&cursor=1234567"
}
},
"TracksList": {
"description": "Deprecated, use Tracks instead.",
"value": {
"$ref": "#/components/examples/Track/value"
}
},
"User": {
"value": {
"avatar_url": "https://i1.sndcdn.com/avatars.jpg",
"city": "City",
"country": "Country",
"created_at": "2018/01/01 12:08:25 +0000",
"description": null,
"discogs_name": null,
"first_name": "First_name",
"followers_count": 0,
"followings_count": 0,
"full_name": "Full Name",
"id": 12345,
"kind": "user",
"last_modified": "2020/01/03 12:08:25 +0000",
"last_name": "Last_name",
"myspace_name": null,
"permalink": "permalink",
"permalink_url": "https://soundcloud.com/permalink",
"plan": "Free",
"playlist_count": 3,
"public_favorites_count": 20,
"reposts_count": 0,
"subscriptions": [
{
"product": {
"id": "some-id",
"name": "some.name"
}
}
],
"track_count": 0,
"upload_seconds_left": 10800,
"uri": "https://api.soundcloud.com/users/1234",
"username": "some.user",
"website": null,
"website_title": null
}
},
"CompleteUser": {
"value": {
"avatar_url": "https://i1.sndcdn.com/avatars.jpg",
"city": "City",
"country": "Country",
"description": null,
"discogs_name": null,
"first_name": "First_name",
"followers_count": 0,
"followings_count": 0,
"full_name": "Full Name",
"id": 12345,
"kind": "user",
"last_modified": "2020/01/03 12:08:25 +0000",
"last_name": "Last_name",
"locale": "en",
"myspace_name": null,
"permalink": "permalink",
"permalink_url": "https://soundcloud.com/permalink",
"plan": "Free",
"playlist_count": 3,
"primary_email_confirmed": true,
"private_playlists_count": 0,
"private_tracks_count": 0,
"public_favorites_count": 20,
"quota": {
"unlimited_upload_quota": false,
"upload_seconds_used": 0,
"upload_seconds_left": 10800
},
"reposts_count": 0,
"subscriptions": [
{
"product": {
"id": "some-id",
"name": "some.name"
}
}
],
"track_count": 0,
"upload_seconds_left": 10800,
"uri": "https://api.soundcloud.com/users/1234",
"username": "some.user",
"website": null,
"website_title": null
}
},
"UserOf": {
"value": {
"avatar_url": "https://i1.sndcdn.com/avatars-large.jpg",
"id": 12345,
"kind": "user",
"last_modified": "2020/09/03 14:08:25 +0000",
"permalink": "permalink",
"permalink_url": "https://soundcloud.com/permalink",
"uri": "https://api.soundcloud.com/users/12345",
"username": "user.name"
}
},
"UsersList": {
"description": "Deprecated, use Users instead.",
"value": {
"$ref": "#/components/examples/User/value"
}
},
"Users": {
"value": {
"collection": {
"$ref": "#/components/examples/User/value"
},
"next_href": "https://api.soundcloud.com/collection?client_id=client_id&page_size=10&cursor=1234567"
}
},
"MetaUsers": {
"value": {
"collection": {
"$ref": "#/components/examples/UserOf/value"
},
"next_href": "https://api.soundcloud.com/collection?client_id=client_id&page_size=10&cursor=1234567"
}
},
"WebProfiles": {
"value": [
{
"created_at": "1995/10/20 12:10:39 +0000",
"id": 1234,
"kind": "web-profile",
"service": "facebook",
"title": "my facebook",
"url": "http://facebook.com",
"username": "username"
}
]
},
"Success": {
"value": {
"status": "200 - OK"
}
},
"Successful": {
"value": {
"status": "200 - Successful"
}
},
"Accepted": {
"value": {
"status": "202 - Accepted"
}
},
"Created": {
"value": {
"status": "201 - Created"
}
},
"ErrorInvalidGrant": {
"value": {
"code": 400,
"message": "invalid_grant",
"link": "https://developers.soundcloud.com/docs/api/guide#authentication"
}
},
"ErrorUnsupportedGrant": {
"value": {
"code": 400,
"message": "unsupported_grant",
"link": "https://developers.soundcloud.com/docs/api/guide#authentication"
}
},
"BadRequest": {
"value": {
"code": 400,
"message": "Detailed message of errors, when available",
"link": "https://developers.soundcloud.com/docs/api/explorer/open-api"
}
},
"Unauthorized": {
"value": {
"code": 401,
"message": "Detailed message of errors, when available",
"link": "https://developers.soundcloud.com/docs/api/explorer/open-api"
}
},
"Forbidden": {
"value": {
"code": 403,
"message": "Detailed message of errors, when available",
"link": "https://developers.soundcloud.com/docs/api/explorer/open-api"
}
},
"NotFound": {
"value": {
"code": 404,
"message": "Detailed message of errors, when available",
"link": "https://developers.soundcloud.com/docs/api/explorer/open-api"
}
},
"UnprocessableEntity": {
"value": {
"code": 422,
"message": "Detailed message of errors, when available",
"link": "https://developers.soundcloud.com/docs/api/explorer/open-api"
}
},
"TooManyRequests": {
"value": {
"code": 429,
"message": "Detailed message of errors, when available",
"spam_warning_urn": "soundcloud:spam-warnings:1",
"link": "https://developers.soundcloud.com/docs/api/rate-limits#errors"
}
},
"OK": {
"value": {
"status": "Status(200) - OK"
}
},
"TrackMetadataRequest": {
"value": {
"track[title]": "Updated Test Track"
}
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment