Skip to main content
This walkthrough takes you from zero to a working playback URL.

1. Get credentials

You need either an API key (server-to-server) or an OAuth access token (user-scoped).
  • API key — register at the Developer Portal, create a key in the dashboard, and copy the secret (shown once).
  • OAuth — use the standard OAuth 2.0 Authorization Code + PKCE flow. See Authentication.

2. Browse the catalog

Hit a public catalog endpoint with your API key. Reads are GET:
You’ll get back curated featured sections (think “Made For You”, “Trending Now”). Single-resource reads are GET; batch reads (:batchGet) and stream acquisition are POST with a JSON body.

3. Search for a song

The response is a paginated list of Content wrappers — a generic envelope with a typed oneof id and display fields.

4. Acquire a stream

Stream acquisition requires an OAuth access token with the stream scope — this is the billable event. With a valid token:
The response carries a time-limited stream URL plus DRM metadata where applicable. Re-acquire when the URL expires.

5. Generate a typed client

Every release ships clients in the languages we support — pull them directly from the repo: If you’d rather generate your own from the bundled spec:

Next