
Type-safe Spotify Web API client offering async-friendly calls, comprehensive endpoints, built-in auth flows (PKCE, client credentials, authorization code, refresh), paging, rate-limit handling, retries, and samples.
Spotify Web API wrapper for Kotlin Multiplatform.
This repository provides a type-safe, coroutine-friendly Spotify API client for Kotlin, Android, iOS, JVM, and JS.
Dependency coordinates:
io.github.nubasu
kotlin-spotify-web-api-wrapper
gradle/libs.versions.toml:
[versions]
kotlinSpotifyWebApiWrapper = "0.1.0"
[libraries]
kotlin-spotify-web-api-wrapper = { module = "io.github.nubasu:kotlin-spotify-web-api-wrapper", version.ref = "kotlinSpotifyWebApiWrapper" }build.gradle.kts:
repositories {
mavenCentral()
}
commonMain.dependencies {
implementation(libs.kotlin.spotify.web.api.wrapper)
}repositories {
mavenCentral()
}
commonMain.dependencies {
implementation("io.github.nubasu:kotlin-spotify-web-api-wrapper:0.1.0")
}repositories {
mavenCentral()
}
dependencies {
implementation 'io.github.nubasu:kotlin-spotify-web-api-wrapper:0.1.0'
}composeApp/.PKCE auth -> load current user's playlists -> start/pause playback.spotifyauth://callback (configure this in Spotify Dashboard redirect URIs).http://127.0.0.1:8888/callback (configure this in Spotify Dashboard redirect URIs)../gradlew :composeApp:run.import com.nubasu.spotify.webapi.wrapper.api.authorization.SpotifyAuthManager
import com.nubasu.spotify.webapi.wrapper.api.albums.AlbumsApis
val auth = SpotifyAuthManager(
clientId = "YOUR_CLIENT_ID",
redirectUri = "your.app://callback"
)
val pkce = auth.startPkceAuthorizationAndLaunch(scope = listOf("user-read-email"))
// Android/iOS: prefer in-app authentication UI, otherwise open the browser
val albumsApi = AlbumsApis()
val album = albumsApi.getAlbum("album-id")PRs/issues are welcome.
Spotify Web API wrapper for Kotlin Multiplatform.
This repository provides a type-safe, coroutine-friendly Spotify API client for Kotlin, Android, iOS, JVM, and JS.
Dependency coordinates:
io.github.nubasu
kotlin-spotify-web-api-wrapper
gradle/libs.versions.toml:
[versions]
kotlinSpotifyWebApiWrapper = "0.1.0"
[libraries]
kotlin-spotify-web-api-wrapper = { module = "io.github.nubasu:kotlin-spotify-web-api-wrapper", version.ref = "kotlinSpotifyWebApiWrapper" }build.gradle.kts:
repositories {
mavenCentral()
}
commonMain.dependencies {
implementation(libs.kotlin.spotify.web.api.wrapper)
}repositories {
mavenCentral()
}
commonMain.dependencies {
implementation("io.github.nubasu:kotlin-spotify-web-api-wrapper:0.1.0")
}repositories {
mavenCentral()
}
dependencies {
implementation 'io.github.nubasu:kotlin-spotify-web-api-wrapper:0.1.0'
}composeApp/.PKCE auth -> load current user's playlists -> start/pause playback.spotifyauth://callback (configure this in Spotify Dashboard redirect URIs).http://127.0.0.1:8888/callback (configure this in Spotify Dashboard redirect URIs)../gradlew :composeApp:run.import com.nubasu.spotify.webapi.wrapper.api.authorization.SpotifyAuthManager
import com.nubasu.spotify.webapi.wrapper.api.albums.AlbumsApis
val auth = SpotifyAuthManager(
clientId = "YOUR_CLIENT_ID",
redirectUri = "your.app://callback"
)
val pkce = auth.startPkceAuthorizationAndLaunch(scope = listOf("user-read-email"))
// Android/iOS: prefer in-app authentication UI, otherwise open the browser
val albumsApi = AlbumsApis()
val album = albumsApi.getAlbum("album-id")PRs/issues are welcome.