1.Synopsis
A read-only web API with two functions: list the playlists, and open one to see its tracks. It is live right now; you can try both below, or call it from your own code.
| Endpoint | What it returns | Status |
|---|---|---|
GET /v1/playlists | Every published playlist: name, cover, track count, Spotify link | Checking… |
GET /v1/playlists/{id} | One playlist and its first 100 tracks | |
GET /health | Is it up, and when the data was last refreshed |
Key point: there is nothing to log in to. Every call is a plain GET, and the data refreshes on its own every 15 minutes.
2.Try it
Function 1 · List the playlists
Asks the API for every published playlist. The cards are drawn from the JSON it sends back.
GET https://api.libcsys.com/v1/playlistsFunction 2 · Open a playlist
Asks for one playlist by its id and gets its tracks back. Pick one here, or click a card above.
From a terminal: curl https://api.libcsys.com/v1/playlists · Every endpoint, with a try-it button: interactive docs · Machine-readable spec: openapi.json
3.How it works
The plain-English version: the web server is the front desk with the public address. The API is the clerk at the desk, answering from a printed sheet. Every 15 minutes a courier brings a fresh sheet from Spotify. Only the courier holds the key to Spotify, and the courier never comes to the desk.
- SpotifyThe playlists themselves
- Sync jobHolds the key; runs on our server every 15 minutes
- SnapshotA plain file of public playlist data
- APIReads the snapshot, nothing else
- YouAny browser or program, over HTTPS
4.Security model
- Read-only. Only
GETrequests are accepted. Nothing can be sent in, changed or deleted. - No credentials in the API. It has no password, no database and no Spotify key. Break into it and you get the same public list shown above.
- Public data only. Only playlists that are already public on Spotify are published.
- Rate-limited. A burst of requests from one address is slowed down, so one caller can't crowd out the rest.
- Isolated. It runs in its own locked-down container with no route to our other systems.
5.If something goes wrong
| Symptom | Cause | What to do |
|---|---|---|
404 No published playlist with that id | The id is wrong, or the playlist is no longer public | Get current ids from /v1/playlists |
429 Too Many Requests | Too many calls in a short time | Wait a few seconds and retry |
403 Forbidden | Something other than GET was sent | The API is read-only; use GET |
503 Snapshot not ready | The data is between refreshes after a restart | Try again in a few minutes |