{"openapi":"3.1.0","info":{"title":"LIBCSystems Public API","description":"A live, read-only demonstration API from LIBCSystems LLC. It serves the public Spotify playlists of our founder, refreshed every 15 minutes. Playlist data comes from Spotify; every item links back to it.","version":"1.0.0"},"paths":{"/health":{"get":{"tags":["Status"],"summary":"Is the API up, and how fresh is the data?","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Health"}}}}}}},"/v1/playlists":{"get":{"tags":["Playlists"],"summary":"List the playlists","description":"Every published playlist: name, description, how many tracks, cover image and Spotify link.","operationId":"playlists_v1_playlists_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaylistList"}}}}}}},"/v1/playlists/{playlist_id}":{"get":{"tags":["Playlists"],"summary":"One playlist and its tracks","description":"One playlist with its first 100 tracks. `tracks_total` is the full length; the rest is on Spotify.","operationId":"playlist_v1_playlists__playlist_id__get","parameters":[{"name":"playlist_id","in":"path","required":true,"schema":{"type":"string","title":"Playlist Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Playlist"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"Health":{"properties":{"success":{"type":"boolean","title":"Success"},"synced_at":{"type":"string","title":"Synced At"},"playlists":{"type":"integer","title":"Playlists"}},"type":"object","required":["success","synced_at","playlists"],"title":"Health"},"Playlist":{"properties":{"id":{"type":"string","title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"type":"string","title":"Description"},"tracks_total":{"type":"integer","title":"Tracks Total"},"image":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image"},"spotify_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Spotify Url"},"tracks":{"items":{"$ref":"#/components/schemas/Track"},"type":"array","title":"Tracks"}},"type":"object","required":["id","name","description","tracks_total","image","spotify_url","tracks"],"title":"Playlist"},"PlaylistList":{"properties":{"source":{"type":"string","title":"Source"},"synced_at":{"type":"string","title":"Synced At"},"count":{"type":"integer","title":"Count"},"playlists":{"items":{"$ref":"#/components/schemas/PlaylistSummary"},"type":"array","title":"Playlists"}},"type":"object","required":["source","synced_at","count","playlists"],"title":"PlaylistList"},"PlaylistSummary":{"properties":{"id":{"type":"string","title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"type":"string","title":"Description"},"tracks_total":{"type":"integer","title":"Tracks Total"},"image":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image"},"spotify_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Spotify Url"}},"type":"object","required":["id","name","description","tracks_total","image","spotify_url"],"title":"PlaylistSummary"},"Track":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"artists":{"items":{"type":"string"},"type":"array","title":"Artists"},"album":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Album"},"duration_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Duration Ms"},"explicit":{"type":"boolean","title":"Explicit"},"spotify_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Spotify Url"}},"type":"object","required":["name","artists","album","duration_ms","explicit","spotify_url"],"title":"Track"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}