Skip to main content
Glama
models.py39.4 kB
# generated by fastapi-codegen: # filename: openapi.yaml # timestamp: 2025-06-29T09:31:09+00:00 from __future__ import annotations from datetime import datetime from enum import Enum from typing import List, Optional, Union from pydantic import BaseModel, Field, RootModel class GrantType(Enum): authorization_code = 'authorization_code' client_credentials = 'client_credentials' class AuthorizationCode(BaseModel): authorization_code: Optional[str] = Field(None, description='Authorization code') client_id: Optional[str] = Field(None, description='Client ID') client_secret: Optional[str] = Field(None, description='Client secret') grant_type: Optional[GrantType] = None redirect_uri: Optional[str] = Field(None, description='Redirect URI') class User(BaseModel): avatar_url: Optional[str] = Field(None, description='URL to a JPEG image.') followers_count: Optional[int] = Field(None, description='number of followers.') followings_count: Optional[int] = Field( None, description='number of followed users.' ) id: Optional[int] = Field(None, description='unique identifier') kind: Optional[str] = Field(None, description='kind of resource.') last_modified: Optional[str] = Field(None, description='last modified timestamp.') permalink: Optional[str] = Field(None, description='permalink of the resource.') permalink_url: Optional[str] = Field( None, description='URL to the SoundCloud.com page.' ) reposts_count: Optional[int] = Field( None, description='number of reposts from user' ) uri: Optional[str] = Field(None, description='API resource URL.') username: Optional[str] = Field(None, description='username') class Comment(BaseModel): body: Optional[str] = Field(None, description='Comment body.') created_at: Optional[str] = Field(None, description='Created timestamp.') id: Optional[int] = Field(None, description='Identifier.') kind: Optional[str] = Field(None, description='Kind (comment).') timestamp: Optional[str] = Field(None, description='Timestamp.') track_id: Optional[int] = Field(None, description="Track's identifier.") uri: Optional[str] = Field(None, description="Comment's URL.") user: Optional[User] = Field(None, description='SoundCloud User object') user_id: Optional[int] = Field(None, description="User's identifier.") class Comments(BaseModel): collection: Optional[List[Comment]] = None next_href: Optional[str] = None class CommentsList(RootModel[List[Comment]]): root: List[Comment] class Quota(BaseModel): unlimited_upload_quota: Optional[bool] = Field( None, description='unlimited upload quota.' ) upload_seconds_used: Optional[int] = Field(None, description='upload seconds used.') class CompleteUser(BaseModel): avatar_url: Optional[str] = Field(None, description='URL to a JPEG image.') city: Optional[str] = Field(None, description='city.') country: Optional[str] = Field(None, description='country.') description: Optional[str] = Field(None, description='description.') discogs_name: Optional[str] = Field(None, description='discogs name.') first_name: Optional[str] = Field(None, description='first name.') followers_count: Optional[int] = Field(None, description='number of followers.') followings_count: Optional[int] = Field( None, description='number of followed users.' ) full_name: Optional[str] = Field(None, description='first and last name.') id: Optional[int] = Field(None, description='unique identifier') kind: Optional[str] = Field(None, description='kind of resource.') last_modified: Optional[str] = Field(None, description='last modified timestamp.') last_name: Optional[str] = Field(None, description='last name.') locale: Optional[str] = Field(None, description='locale.') myspace_name: Optional[str] = Field(None, description='myspace name') permalink: Optional[str] = Field(None, description='permalink of the resource.') permalink_url: Optional[str] = Field( None, description='URL to the SoundCloud.com page.' ) plan: Optional[str] = Field(None, description='subscription plan of the user.') playlist_count: Optional[int] = Field( None, description='number of public playlists.' ) primary_email_confirmed: Optional[bool] = Field( None, description='boolean if email is confirmed.' ) private_playlists_count: Optional[int] = Field( None, description='number of private playlists.' ) private_tracks_count: Optional[int] = Field( None, description='number of private tracks.' ) public_favorites_count: Optional[int] = Field( None, description='number of favorited public tracks' ) quota: Optional[Quota] = Field(None, description="user's upload quota") reposts_count: Optional[int] = Field( None, description='number of reposts from user' ) subscriptions: Optional[List[List]] = Field( None, description='a list subscriptions associated with the user' ) track_count: Optional[int] = Field(None, description='number of public tracks.') uri: Optional[str] = Field(None, description='API resource URL.') username: Optional[str] = Field(None, description='username') website: Optional[str] = Field(None, description='a URL to the website.') website_title: Optional[str] = Field( None, description='a custom title for the website.' ) class Connection(BaseModel): created_at: Optional[str] = Field(None, description='Created timestamp.') display_name: Optional[str] = Field(None, description='Full Name.') id: Optional[int] = Field(None, description='Unique identifier') kind: Optional[str] = Field(None, description='Kind of resource.') post_favorite: Optional[bool] = None post_publish: Optional[bool] = None service: Optional[str] = Field(None, description='Service.') type: Optional[str] = Field(None, description='Type.') uri: Optional[str] = Field(None, description='The external link URI.') class Connections(RootModel[List[Connection]]): root: List[Connection] class Sharing(Enum): public = 'public' private = 'private' class Track1(BaseModel): id: str = Field(..., description='SoundCloud track id') class Playlist1(BaseModel): description: Optional[str] = Field(None, description='Description of the playlist') sharing: Optional[Sharing] = Field(None, description='public or private') title: Optional[str] = Field(None, description='Title of the playlist') tracks: Optional[List[Track1]] = Field( None, description='List of tracks to add to playlist' ) class CreateUpdatePlaylistRequest(BaseModel): playlist: Optional[Playlist1] = None class Error(BaseModel): code: Optional[int] = None error: Optional[str] = None errors: Optional[List] = None link: Optional[str] = None message: Optional[str] = None status: Optional[str] = None class Found(BaseModel): location: Optional[str] = Field(None, description='Location URL of the resource.') status: Optional[str] = Field(None, description='Status code.') class MetaUser(BaseModel): avatar_url: Optional[str] = Field(None, description='URL to a JPEG image') created_at: Optional[datetime] = Field( None, description='profile creation datetime' ) id: Optional[int] = Field(None, description='unique identifier') kind: Optional[str] = Field(None, description='kind of resource') last_modified: Optional[datetime] = Field( None, description='last modified datetime' ) permalink: Optional[str] = Field(None, description='permalink of the resource') permalink_url: Optional[str] = Field( None, description='URL to the SoundCloud.com page' ) uri: Optional[str] = Field(None, description='API resource URL') username: Optional[str] = Field(None, description='username') class MetaUsers(BaseModel): collection: Optional[List[MetaUser]] = None next_href: Optional[str] = None class GrantType1(Enum): password = 'password' class Password(BaseModel): client_id: Optional[str] = Field(None, description='Client ID') client_secret: Optional[str] = Field(None, description='Client secret') grant_type: Optional[GrantType1] = None password: Optional[str] = Field(None, description='User password') redirect_uri: Optional[str] = Field(None, description='Redirect URI') user_name: Optional[str] = Field(None, description='User name') class GrantType2(Enum): refresh_token = 'refresh_token' class RefreshToken(BaseModel): client_id: Optional[str] = Field(None, description='Client ID') client_secret: Optional[str] = Field(None, description='Client secret') grant_type: Optional[GrantType2] = None redirect_uri: Optional[str] = Field(None, description='Redirect URI') refresh_token: Optional[str] = Field(None, description='Refresh token') class Streams(BaseModel): hls_mp3_128_url: Optional[str] = None hls_opus_64_url: Optional[str] = None http_mp3_128_url: Optional[str] = None preview_mp3_128_url: Optional[str] = None class TooManyRequests(Error): spam_warning_urn: Optional[str] = None class AccessEnum(Enum): playable = 'playable' preview = 'preview' blocked = 'blocked' class Access(RootModel[Optional[AccessEnum]]): root: Optional[AccessEnum] = Field( None, 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', ) class Track(BaseModel): access: Optional[Access] = Field( None, 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', ) artwork_url: Optional[str] = Field(None, description='URL to a JPEG image.') available_country_codes: Optional[str] = Field( None, description='List of countries where track is available.' ) bpm: Optional[int] = Field(None, description='Tempo.') comment_count: Optional[int] = Field(None, description='Number of comments.') commentable: Optional[bool] = Field(None, description='Is commentable.') created_at: Optional[str] = Field(None, description='Created timestamp.') description: Optional[str] = Field(None, description='Track description.') download_count: Optional[int] = Field(None, description='NUmber of downloads.') download_url: Optional[str] = Field(None, description='URL to download a track.') downloadable: Optional[str] = Field(None, description='Is downloadable.') duration: Optional[int] = Field(None, description='Track duration.') embeddable_by: Optional[str] = Field(None, description='Embeddable by.') favoritings_count: Optional[int] = Field(None, description='Number of favoritings.') genre: Optional[str] = Field(None, description='Genre') id: Optional[int] = Field(None, description='Track identifier.') isrc: Optional[str] = Field(None, description='ISRC code.') key_signature: Optional[str] = Field(None, description='Key signature.') kind: Optional[str] = Field(None, description='Type of object (track).') label_name: Optional[str] = Field(None, description='Label user name.') license: Optional[str] = Field(None, description='License') permalink_url: Optional[str] = Field(None, description='Permalink URL.') playback_count: Optional[int] = Field(None, description='Number of plays.') purchase_title: Optional[str] = Field(None, description='Purchase title.') purchase_url: Optional[str] = Field(None, description='Purchase URL.') release: Optional[str] = Field(None, description='Release.') release_day: Optional[int] = Field(None, description='Day of release.') release_month: Optional[int] = Field(None, description='Month of release.') release_year: Optional[int] = Field(None, description='Year of release.') reposts_count: Optional[int] = Field(None, description='Number of reposts.') secret_uri: Optional[str] = Field(None, description='Secret URL.') sharing: Optional[str] = Field( None, description='Type of sharing (public/private).' ) stream_url: Optional[str] = Field(None, description='URL to stream.') streamable: Optional[bool] = Field(None, description='Is streamable.') tag_list: Optional[str] = Field(None, description='Tags.') title: Optional[str] = Field(None, description='Track title.') uri: Optional[str] = Field(None, description='Track URI.') user: Optional[MetaUser] = Field(None, description='User who uploaded a track') user_favorite: Optional[bool] = Field(None, description="Is user's favourite.") user_playback_count: Optional[int] = Field( None, description='Number of plays by a user.' ) waveform_url: Optional[str] = Field(None, description='Waveform URL.') class TrackEmbeddableBy(Enum): all = 'all' me = 'me' none = 'none' class TrackLicense(Enum): no_rights_reserved = 'no-rights-reserved' all_rights_reserved = 'all-rights-reserved' cc_by = 'cc-by' cc_by_nc = 'cc-by-nc' cc_by_nd = 'cc-by-nd' cc_by_sa = 'cc-by-sa' cc_by_nc_nd = 'cc-by-nc-nd' cc_by_nc_sa = 'cc-by-nc-sa' class TrackSharing(Enum): public = 'public' private = 'private' class TrackDataRequest(BaseModel): track_artwork_data_: Optional[bytes] = Field( None, alias='track[artwork_data]', title='Only for uploading, for PRO users' ) track_asset_data_: Optional[bytes] = Field( None, alias='track[asset_data]', title='Only for uploading' ) track_commentable_: Optional[bool] = Field(True, alias='track[commentable]') track_description_: Optional[str] = Field(None, alias='track[description]') track_downloadable_: Optional[bool] = Field(True, alias='track[downloadable]') track_embeddable_by_: Optional[TrackEmbeddableBy] = Field( None, alias='track[embeddable_by]', description='who can embed this track "all", "me", or "none"', ) track_genre_: Optional[str] = Field(None, alias='track[genre]') track_isrc_: Optional[str] = Field(None, alias='track[isrc]') track_label_name_: Optional[str] = Field(None, alias='track[label_name]') track_license_: Optional[TrackLicense] = Field( None, alias='track[license]', 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_permalink_: Optional[str] = Field(None, alias='track[permalink]') track_purchase_url_: Optional[str] = Field(None, alias='track[purchase_url]') track_release_: Optional[str] = Field(None, alias='track[release]') track_release_date_: Optional[str] = Field( None, alias='track[release_date]', description='string, formatted as yyyy-mm-dd, representing release date', title='write only!', ) track_sharing_: Optional[TrackSharing] = Field('public', alias='track[sharing]') track_streamable_: Optional[bool] = Field(True, alias='track[streamable]') track_tag_list_: Optional[str] = Field( None, alias='track[tag_list]', 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_title_: Optional[str] = Field(None, alias='track[title]') class EmbeddableBy(Enum): all = 'all' me = 'me' none = 'none' class License(Enum): no_rights_reserved = 'no-rights-reserved' all_rights_reserved = 'all-rights-reserved' cc_by = 'cc-by' cc_by_nc = 'cc-by-nc' cc_by_nd = 'cc-by-nd' cc_by_sa = 'cc-by-sa' cc_by_nc_nd = 'cc-by-nc-nd' cc_by_nc_sa = 'cc-by-nc-sa' class Track2(BaseModel): commentable: Optional[bool] = True description: Optional[str] = None downloadable: Optional[bool] = True embeddable_by: Optional[EmbeddableBy] = Field( None, description='who can embed this track "all", "me", or "none"' ) genre: Optional[str] = None isrc: Optional[str] = None label_name: Optional[str] = None license: Optional[License] = Field( None, 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', ) permalink: Optional[str] = None purchase_url: Optional[str] = None release: Optional[str] = None release_date: Optional[str] = Field( None, description='string, formatted as yyyy-mm-dd, representing release date', title='write only!', ) sharing: Optional[Sharing] = 'public' streamable: Optional[bool] = True tag_list: Optional[str] = Field( None, 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.', ) title: Optional[str] = None class TrackMetadataRequest(BaseModel): track: Optional[Track2] = None class Tracks(BaseModel): collection: Optional[List[Track]] = None next_href: Optional[str] = None class TracksList(RootModel[List[Track]]): root: List[Track] class User1(BaseModel): avatar_url: Optional[str] = Field(None, description='URL to a JPEG image') city: Optional[str] = Field(None, description='city') country: Optional[str] = Field(None, description='country') created_at: Optional[datetime] = Field( None, description='profile creation datetime' ) description: Optional[str] = Field(None, description='description') discogs_name: Optional[str] = Field(None, description='discogs name') first_name: Optional[str] = Field(None, description='first name') followers_count: Optional[int] = Field(None, description='number of followers') followings_count: Optional[int] = Field( None, description='number of followed users' ) full_name: Optional[str] = Field(None, description='first and last name') id: Optional[int] = Field(None, description='unique identifier') kind: Optional[str] = Field(None, description='kind of resource') last_modified: Optional[datetime] = Field( None, description='last modified datetime' ) last_name: Optional[str] = Field(None, description='last name') myspace_name: Optional[str] = Field(None, description='myspace name') permalink: Optional[str] = Field(None, description='permalink of the resource') permalink_url: Optional[str] = Field( None, description='URL to the SoundCloud.com page' ) plan: Optional[str] = Field(None, description='subscription plan of the user') playlist_count: Optional[int] = Field( None, description='number of public playlists' ) public_favorites_count: Optional[int] = Field( None, description='number of favorited public tracks' ) reposts_count: Optional[int] = Field( None, description='number of reposts from user' ) subscriptions: Optional[List[List]] = Field( None, description='a list subscriptions associated with the user' ) track_count: Optional[int] = Field(None, description='number of public tracks') uri: Optional[str] = Field(None, description='API resource URL') username: Optional[str] = Field(None, description='username') website: Optional[str] = Field(None, description='a URL to the website') website_title: Optional[str] = Field( None, description='a custom title for the website' ) class Users(BaseModel): collection: Optional[List[User1]] = None next_href: Optional[str] = None class UsersListItem(BaseModel): avatar_url: Optional[str] = Field(None, description='URL to a JPEG image') city: Optional[str] = Field(None, description='city') country: Optional[str] = Field(None, description='country') description: Optional[str] = Field(None, description='description') discogs_name: Optional[str] = Field(None, description='discogs name') first_name: Optional[str] = Field(None, description='first name') followers_count: Optional[int] = Field(None, description='number of followers') followings_count: Optional[int] = Field( None, description='number of followed users' ) full_name: Optional[str] = Field(None, description='first and last name') id: Optional[int] = Field(None, description='unique identifier') kind: Optional[str] = Field(None, description='kind of resource') last_modified: Optional[datetime] = Field( None, description='last modified datetime' ) last_name: Optional[str] = Field(None, description='last name') myspace_name: Optional[str] = Field(None, description='myspace name') permalink: Optional[str] = Field(None, description='permalink of the resource') permalink_url: Optional[str] = Field( None, description='URL to the SoundCloud.com page' ) plan: Optional[str] = Field(None, description='subscription plan of the user') playlist_count: Optional[int] = Field( None, description='number of public playlists' ) public_favorites_count: Optional[int] = Field( None, description='number of favorited public tracks' ) reposts_count: Optional[int] = Field( None, description='number of reposts from user' ) subscriptions: Optional[List[List]] = Field( None, description='a list subscriptions associated with the user' ) track_count: Optional[int] = Field(None, description='number of public tracks') uri: Optional[str] = Field(None, description='API resource URL') username: Optional[str] = Field(None, description='username') website: Optional[str] = Field(None, description='a URL to the website') website_title: Optional[str] = Field( None, description='a custom title for the website' ) class UsersList(RootModel[List[UsersListItem]]): root: List[UsersListItem] class WebProfile(BaseModel): created_at: Optional[str] = Field( None, description='Timestamp of when the link was added to the profile.' ) id: Optional[int] = Field(None, description='Id') kind: Optional[str] = Field(None, description='Kind') service: Optional[str] = Field(None, description='Service or platform') title: Optional[str] = Field(None, description="Link's title") url: Optional[str] = Field(None, description='URL of the external link') username: Optional[str] = Field( None, description='Username extracted from the external link' ) class WebProfiles(RootModel[List[WebProfile]]): root: List[WebProfile] = Field( ..., description="User's links added to their profile" ) class ResponseType(Enum): code = 'code' token = 'token' code_and_token = 'code_and_token' class Acces(Enum): playable = 'playable' preview = 'preview' blocked = 'blocked' class Access1(RootModel[List[Acces]]): root: List[Acces] class Access2(RootModel[List[Acces]]): root: List[Acces] class Access3(RootModel[List[Acces]]): root: List[Acces] class MeFollowersGetResponse(RootModel[Union[Users, UsersList]]): root: Union[Users, UsersList] class MeFollowingsGetResponse(RootModel[Union[Users, UsersList]]): root: Union[Users, UsersList] class Access4(RootModel[List[Acces]]): root: List[Acces] class MeLikesTracksGetResponse(RootModel[Union[Tracks, TracksList]]): root: Union[Tracks, TracksList] class MeTracksGetResponse(RootModel[Union[Tracks, TracksList]]): root: Union[Tracks, TracksList] class Oauth2TokenPostRequest( RootModel[Union[AuthorizationCode, RefreshToken, Password]] ): root: Union[AuthorizationCode, RefreshToken, Password] class Oauth2TokenPostResponse(RootModel[Error]): root: Error class Access5(RootModel[List[Acces]]): root: List[Acces] class Track3(BaseModel): artwork_url: Optional[str] = Field(None, description='URL to a JPEG image.') bpm: Optional[int] = Field(None, description='Tempo.') comment_count: Optional[int] = Field(None, description='Number of comments.') commentable: Optional[bool] = Field(None, description='Is commentable.') created_at: Optional[str] = Field(None, description='Created timestamp.') description: Optional[str] = Field(None, description='Track description.') download_count: Optional[int] = Field(None, description='NUmber of downloads.') downloadable: Optional[str] = Field(None, description='Is downloadable.') duration: Optional[int] = Field(None, description='Track duration.') embeddable_by: Optional[str] = Field(None, description='Embeddable by.') favoritings_count: Optional[int] = Field(None, description='Number of favoritings.') genre: Optional[str] = Field(None, description='Genre') id: Optional[int] = Field(None, description='Track identifier.') isrc: Optional[str] = Field(None, description='ISRC code.') key_signature: Optional[str] = Field(None, description='Key signature.') kind: Optional[str] = Field(None, description='Type of object (track).') label_name: Optional[str] = Field(None, description='Label user name.') license: Optional[str] = Field(None, description='License') permalink_url: Optional[str] = Field(None, description='Permalink URL.') playback_count: Optional[int] = Field(None, description='Number of plays.') purchase_title: Optional[str] = Field(None, description='Purchase title.') purchase_url: Optional[str] = Field(None, description='Purchase URL.') release: Optional[str] = Field(None, description='Release.') release_day: Optional[int] = Field(None, description='Day of release.') release_month: Optional[int] = Field(None, description='Month of release.') release_year: Optional[int] = Field(None, description='Year of release.') sharing: Optional[str] = Field( None, description='Type of sharing (public/private).' ) stream_url: Optional[str] = Field(None, description='URL to stream.') streamable: Optional[bool] = Field(None, description='Is streamable.') tag_list: Optional[str] = Field(None, description='Tags.') title: Optional[str] = Field(None, description='Track title.') uri: Optional[str] = Field(None, description='Track URI.') user: Optional[MetaUser] = Field(None, description='User who uploaded a track') user_favorite: Optional[bool] = Field(None, description="Is user's favourite.") user_playback_count: Optional[int] = Field( None, description='Number of plays by a user.' ) waveform_url: Optional[str] = Field(None, description='Waveform URL.') class PlaylistsPostResponse(BaseModel): artwork_url: Optional[str] = Field(None, description='URL to a JPEG image.') created_at: Optional[str] = Field(None, description='Created timestamp.') description: Optional[str] = Field(None, description='Playlist description.') downloadable: Optional[bool] = Field(None, description='is downloadable.') duration: Optional[int] = Field(None, description='Playlist duration.') ean: Optional[str] = Field(None, description='European Article Number.') embeddable_by: Optional[str] = Field(None, description='Embeddable by.') genre: Optional[str] = Field(None, description='Playlist genre.') id: Optional[int] = Field(None, description='Playlist identifier.') kind: Optional[str] = Field( None, description='Type of Soundcloud object (playlist).' ) label_id: Optional[int] = Field(None, description='Label user identifier.') label_name: Optional[str] = Field(None, description='Label name.') last_modified: Optional[str] = Field(None, description='Last modified timestamp.') license: Optional[str] = Field(None, description='License.') permalink: Optional[str] = Field(None, description='Playlist permalink.') permalink_url: Optional[str] = Field(None, description='Playlist permalink URL.') playlist_type: Optional[str] = Field(None, description='Type of playlist.') purchase_title: Optional[str] = Field(None, description='Purchase title.') purchase_url: Optional[str] = Field(None, description='Purchase URL.') release: Optional[str] = Field(None, description='Release.') release_day: Optional[int] = Field(None, description='Day of release.') release_month: Optional[int] = Field(None, description='Month of release.') release_year: Optional[int] = Field(None, description='Year of release.') sharing: Optional[str] = Field( None, description='Type of sharing (private/public).' ) streamable: Optional[bool] = Field(None, description='Is streamable.') tag_list: Optional[str] = Field(None, description='Tags.') title: Optional[str] = Field(None, description='Playlist title.') track_count: Optional[int] = Field(None, description='Count of tracks.') tracks: Optional[List[Track3]] = Field(None, description='List of tracks.') type: Optional[str] = Field(None, description='Playlist type.') uri: Optional[str] = Field(None, description='Playlist URI.') user: Optional[MetaUser] = None user_id: Optional[int] = Field(None, description='User identifier.') class Access6(RootModel[List[Acces]]): root: List[Acces] class PlaylistsPlaylistIdPutResponse(BaseModel): artwork_url: Optional[str] = Field(None, description='URL to a JPEG image.') created_at: Optional[str] = Field(None, description='Created timestamp.') description: Optional[str] = Field(None, description='Playlist description.') downloadable: Optional[bool] = Field(None, description='is downloadable.') duration: Optional[int] = Field(None, description='Playlist duration.') ean: Optional[str] = Field(None, description='European Article Number.') embeddable_by: Optional[str] = Field(None, description='Embeddable by.') genre: Optional[str] = Field(None, description='Playlist genre.') id: Optional[int] = Field(None, description='Playlist identifier.') kind: Optional[str] = Field( None, description='Type of Soundcloud object (playlist).' ) label_id: Optional[int] = Field(None, description='Label user identifier.') label_name: Optional[str] = Field(None, description='Label name.') last_modified: Optional[str] = Field(None, description='Last modified timestamp.') license: Optional[str] = Field(None, description='License.') permalink: Optional[str] = Field(None, description='Playlist permalink.') permalink_url: Optional[str] = Field(None, description='Playlist permalink URL.') playlist_type: Optional[str] = Field(None, description='Type of playlist.') purchase_title: Optional[str] = Field(None, description='Purchase title.') purchase_url: Optional[str] = Field(None, description='Purchase URL.') release: Optional[str] = Field(None, description='Release.') release_day: Optional[int] = Field(None, description='Day of release.') release_month: Optional[int] = Field(None, description='Month of release.') release_year: Optional[int] = Field(None, description='Year of release.') sharing: Optional[str] = Field( None, description='Type of sharing (private/public).' ) streamable: Optional[bool] = Field(None, description='Is streamable.') tag_list: Optional[str] = Field(None, description='Tags.') title: Optional[str] = Field(None, description='Playlist title.') track_count: Optional[int] = Field(None, description='Count of tracks.') tracks: Optional[List[Track3]] = Field(None, description='List of tracks.') type: Optional[str] = Field(None, description='Playlist type.') uri: Optional[str] = Field(None, description='Playlist URI.') user: Optional[MetaUser] = None user_id: Optional[int] = Field(None, description='User identifier.') class PlaylistsPlaylistIdTracksGetResponse(RootModel[Union[Tracks, TracksList]]): root: Union[Tracks, TracksList] class Access7(RootModel[List[Acces]]): root: List[Acces] class Bpm(BaseModel): from_: Optional[int] = Field( None, alias='from', description='Return tracks with at least this bpm value', examples=[123], ) to: Optional[int] = Field( None, description='Return tracks with at most this bpm value', examples=[456] ) class Duration(BaseModel): from_: Optional[int] = Field( None, alias='from', description='Return tracks with at least this duration value', examples=[123456], ) to: Optional[int] = Field( None, description='Return tracks with at most this duration value', examples=[456789], ) class CreatedAt(BaseModel): from_: Optional[str] = Field( None, alias='from', description='(yyyy-mm-dd hh:mm:ss) return tracks created at this date or later', examples=['2020-12-24T00:00:00.000Z'], ) to: Optional[str] = Field( None, description='(yyyy-mm-dd hh:mm:ss) return tracks created at this date or earlier', examples=['2020-12-26T00:00:00.000Z'], ) class TracksGetResponse(RootModel[Union[Tracks, TracksList]]): root: Union[Tracks, TracksList] class Access8(RootModel[List[Acces]]): root: List[Acces] class TracksTrackIdCommentsGetResponse(RootModel[Union[Comments, CommentsList]]): root: Union[Comments, CommentsList] class Comment1(BaseModel): body: str = Field(..., description="Comment's content", examples=['test comment']) timestamp: Optional[Union[str, float]] = Field( None, description='Timestamp of a comment. String or float representation is supported', ) class TracksTrackIdCommentsPostRequest(BaseModel): comment: Optional[Comment1] = None class TracksTrackIdRelatedGetResponse(RootModel[Union[Tracks, TracksList]]): root: Union[Tracks, TracksList] class Access9(RootModel[List[Acces]]): root: List[Acces] class UsersGetResponse(RootModel[Union[Users, UsersList]]): root: Union[Users, UsersList] class UsersUserIdFavoritesGetResponse(RootModel[Union[Tracks, TracksList]]): root: Union[Tracks, TracksList] class UsersUserIdFollowersGetResponse(RootModel[Union[Users, UsersList]]): root: Union[Users, UsersList] class UsersUserIdFollowingsGetResponse(RootModel[Union[Users, UsersList]]): root: Union[Users, UsersList] class UsersUserIdLikesTracksGetResponse(RootModel[Union[Tracks, TracksList]]): root: Union[Tracks, TracksList] class Access10(RootModel[List[Acces]]): root: List[Acces] class Access11(RootModel[List[Acces]]): root: List[Acces] class UsersUserIdTracksGetResponse(RootModel[Union[Tracks, TracksList]]): root: Union[Tracks, TracksList] class Access12(RootModel[List[Acces]]): root: List[Acces] class Playlist(BaseModel): artwork_url: Optional[str] = Field(None, description='URL to a JPEG image.') created_at: Optional[str] = Field(None, description='Created timestamp.') description: Optional[str] = Field(None, description='Playlist description.') downloadable: Optional[bool] = Field(None, description='is downloadable.') duration: Optional[int] = Field(None, description='Playlist duration.') ean: Optional[str] = Field(None, description='European Article Number.') embeddable_by: Optional[str] = Field(None, description='Embeddable by.') genre: Optional[str] = Field(None, description='Playlist genre.') id: Optional[int] = Field(None, description='Playlist identifier.') kind: Optional[str] = Field( None, description='Type of Soundcloud object (playlist).' ) label: Optional[MetaUser] = None label_id: Optional[int] = Field(None, description='Label user identifier.') label_name: Optional[str] = Field(None, description='Label name.') last_modified: Optional[str] = Field(None, description='Last modified timestamp.') license: Optional[str] = Field(None, description='License.') likes_count: Optional[int] = Field(None, description='Count of playlist likes.') permalink: Optional[str] = Field(None, description='Playlist permalink.') permalink_url: Optional[str] = Field(None, description='Playlist permalink URL.') playlist_type: Optional[str] = Field(None, description='Type of playlist.') purchase_title: Optional[str] = Field(None, description='Purchase title.') purchase_url: Optional[str] = Field(None, description='Purchase URL.') release: Optional[str] = Field(None, description='Release.') release_day: Optional[int] = Field(None, description='Day of release.') release_month: Optional[int] = Field(None, description='Month of release.') release_year: Optional[int] = Field(None, description='Year of release.') sharing: Optional[str] = Field( None, description='Type of sharing (private/public).' ) streamable: Optional[bool] = Field(None, description='Is streamable.') tag_list: Optional[str] = Field(None, description='Tags.') tags: Optional[str] = Field(None, description='Tags.') title: Optional[str] = Field(None, description='Playlist title.') track_count: Optional[int] = Field(None, description='Count of tracks.') tracks: Optional[List[Track]] = Field(None, description='List of tracks.') tracks_uri: Optional[str] = Field(None, description='tracks URI.') type: Optional[str] = Field(None, description='Playlist type.') uri: Optional[str] = Field(None, description='Playlist URI.') user: Optional[MetaUser] = None user_id: Optional[int] = Field(None, description='User identifier.') class Playlists(BaseModel): collection: Optional[List[Playlist]] = None next_href: Optional[str] = None class PlaylistsArray(RootModel[List[Playlist]]): root: List[Playlist] class PlaylistsGetResponse(RootModel[Union[Playlists, PlaylistsArray]]): root: Union[Playlists, PlaylistsArray] class UsersUserIdPlaylistsGetResponse(RootModel[Union[Playlists, PlaylistsArray]]): root: Union[Playlists, PlaylistsArray] class CollectionItem(BaseModel): created_at: Optional[str] = Field(None, description='Created timestamp.') origin: Optional[Union[Track, Playlist]] = Field(None, description='Origin.') type: Optional[str] = Field(None, description='Type of activity (track).') class Activities(BaseModel): collection: Optional[List[CollectionItem]] = None future_href: Optional[str] = None next_href: Optional[str] = None

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ag2-mcp-servers/soundcloud-public-api-specification'

If you have feedback or need assistance with the MCP directory API, please join our Discord server