app.rocksky.* namespace and is reachable at
https://api.rocksky.app/xrpc/<nsid>.
Base URL
Authentication
Authenticated endpoints expect a bearer token in theAuthorization
header:
- Signing in at rocksky.app and copying the OAuth callback JWT
- Running
rocksky login <handle>with the CLI - Creating an API key for an application
- Creating a personal Access Token at rocksky.app/access-tokens — name it, copy the secret once, and use it interchangeably with a JWT (see Personal access tokens below)
Personal access tokens
Access tokens are long-lived JWTs you generate from the web UI for scripts, CLIs, and integrations that can’t run an interactive OAuth flow. They behave exactly like an OAuth-issued JWT — pass them in theAuthorization: Bearer
header on any authenticated endpoint.
Create / list / revoke them at:
- Web: rocksky.app/access-tokens
- Mobile web: m.rocksky.app/access-tokens
Audioscrobbler endpoints
For Last.fm / ListenBrainz compatibility, Rocksky exposes a separate host:SDKs
Prefer typed bindings? Use one of the official SDKs in TypeScript, Python, Rust, Go, Ruby, Kotlin, Elixir, Clojure, or Gleam — every endpoint in this reference is wrapped.Errors
Non-2xx responses return an XRPC-style error body:OpenAPI spec
The endpoint reference below is generated directly from the OpenAPI specification shipped with this site. It follows the registered XRPC routes and lexicons in the Rocksky source repository. Production may run an earlier revision. Queries useGET; procedures use POST. Some procedures take query parameters
instead of a JSON body, so follow the parameter location shown on each endpoint.
Nullable response fields are distinct from optional fields. OpenSubsonic payloads
retain provider-defined fields.
Routes whose handlers are unfinished are marked in the reference. Some handlers
return empty fallback objects when an upstream service fails; HTTP 200 alone
does not always mean that a lookup found data.