openapi: 3.1.0 info: title: SoundCloud Playlists API version: 1.0.0 summary: SoundCloud REST API for tracks, users, playlists, search, social actions, and streaming. description: 'The SoundCloud HTTP API exposes endpoints for tracks (upload, metadata, streaming, comments), users (/me, profile actions), playlists (CRUD), search/discovery, and social actions (follow, like). Authentication uses OAuth 2.1 with PKCE. Access tokens expire approximately every hour. The token endpoint is on secure.soundcloud.com; all resource endpoints are on api.soundcloud.com. ' contact: name: SoundCloud Developers url: https://developers.soundcloud.com/docs/api/guide servers: - url: https://api.soundcloud.com description: SoundCloud REST API security: - oauth2: - non-expiring tags: - name: Playlists description: Playlist CRUD paths: /playlists: post: tags: - Playlists summary: Create a playlist operationId: createPlaylist responses: '201': description: Playlist created /playlists/{id}: parameters: - $ref: '#/components/parameters/Id' get: tags: - Playlists summary: Get playlist (with optional tracks) operationId: getPlaylist parameters: - name: show_tracks in: query schema: type: boolean description: Set to false to exclude tracks from the response responses: '200': description: Playlist details put: tags: - Playlists summary: Update playlist metadata or tracks operationId: updatePlaylist responses: '200': description: Playlist updated components: parameters: Id: name: id in: path required: true schema: type: string securitySchemes: oauth2: type: oauth2 description: 'OAuth 2.1 with PKCE. Access tokens are short-lived (~1 hour). Use Authorization: OAuth {ACCESS_TOKEN} on each request. ' flows: authorizationCode: authorizationUrl: https://secure.soundcloud.com/authorize tokenUrl: https://secure.soundcloud.com/oauth/token scopes: non-expiring: Non-expiring refresh-token grant clientCredentials: tokenUrl: https://secure.soundcloud.com/oauth/token scopes: {}