{"openapi":"3.1.0","info":{"contact":{"name":"AwesomeProg","url":"https://awesomeprog.com/public-api"},"description":"Read-only access to the AwesomeProg music database: artists, releases and the upcoming releases. **Beta**: the endpoints may still change before 1.0. Documentation: https://awesomeprog.com/public-api","title":"AwesomeProg Public API","version":"1.0.0-beta"},"servers":[{"url":"https://srv.progfreak.com/api","description":"Production"}],"paths":{"/public/v1/artists":{"get":{"description":"The artists whose name matches the query, best match first. An exact match on the name always comes first.","operationId":"searchArtists","parameters":[{"description":"The name, or part of it. Words are matched from their start.","example":"anglagard","in":"query","name":"query","required":true,"schema":{"type":"string"}},{"description":"How many artists to return, at most 50.","in":"query","name":"limit","required":false,"schema":{"type":"integer","format":"int32","default":10}}],"responses":{"200":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/ArtistList"}}},"description":"OK"}},"summary":"Search artists by name","tags":["Public API v1 (beta)"]}},"/public/v1/artists/{id}":{"get":{"operationId":"artist","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/Artist"}}},"description":"The artist."},"404":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/Artist"}}},"description":"No artist has this id."}},"summary":"Get an artist","tags":["Public API v1 (beta)"]}},"/public/v1/artists/{id}/releases":{"get":{"description":"Every release of the artist, including the collaborations it takes part in: newest year first.","operationId":"artistReleases","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/ReleaseList"}}},"description":"The releases."},"404":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/ReleaseList"}}},"description":"No artist has this id."}},"summary":"List an artist's releases","tags":["Public API v1 (beta)"]}},"/public/v1/releases":{"get":{"description":"The releases whose title or artist name matches the query, best match first.","operationId":"searchReleases","parameters":[{"description":"Words from the title, the artist's name or both.","example":"anglagard hybris","in":"query","name":"query","required":true,"schema":{"type":"string"}},{"description":"How many releases to return, at most 50.","in":"query","name":"limit","required":false,"schema":{"type":"integer","format":"int32","default":10}}],"responses":{"200":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/ReleaseList"}}},"description":"OK"}},"summary":"Search releases by title","tags":["Public API v1 (beta)"]}},"/public/v1/releases/{id}":{"get":{"description":"A release that has been merged into another answers with the other one, under its own id.","operationId":"release","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/ReleaseDetails"}}},"description":"The release."},"404":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/ReleaseDetails"}}},"description":"No release has this id."}},"summary":"Get a release with its tracklist","tags":["Public API v1 (beta)"]}},"/public/v1/upcoming-releases":{"get":{"description":"The releases with a release date from today on, soonest first, a page at a time. Releases announced without a date are not in this list.","operationId":"upcomingReleases","parameters":[{"description":"How many releases one page holds, at most 200.","in":"query","name":"limit","required":false,"schema":{"type":"integer","format":"int32","default":50}},{"description":"How many releases to skip: the page starts after them.","in":"query","name":"offset","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"description":"Only the releases with this prog status. For a release nobody has tagged yet, the status its artist's earlier releases suggest counts.","in":"query","name":"prog","required":false,"schema":{"type":"string","enum":["prog","related","prog-and-related","non"]}}],"responses":{"200":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/ReleasePage"}}},"description":"OK"}},"summary":"List upcoming releases","tags":["Public API v1 (beta)"]}}},"components":{"schemas":{"Artist":{"type":"object","description":"An artist: a band, a solo artist, a project or a collaboration.","properties":{"country":{"type":["string","null"],"description":"ISO 3166-1 alpha-2 code of the artist's country, lower case.","example":"se"},"disambiguation":{"type":["string","null"],"description":"Tells the artist apart from others of the same name."},"englishName":{"type":["string","null"],"description":"The name in Latin script, where the artist's own name is in another script."},"id":{"type":"integer","format":"int32","description":"The artist's id. Stable: an artist keeps it for good.","example":17},"name":{"type":"string","description":"The artist's name, as the artist writes it.","example":"Änglagård"},"url":{"type":"string","description":"The artist's page on AwesomeProg.","example":"https://awesomeprog.com/artists/17"}},"required":["id","name","url"]},"ArtistList":{"type":"object","properties":{"artists":{"type":"array","items":{"$ref":"#/components/schemas/Artist"}}},"required":["artists"]},"Release":{"type":"object","description":"A release: an album, an EP, a live record and so on.","properties":{"artist":{"oneOf":[{"$ref":"#/components/schemas/Artist"},{"type":"null"}]},"coverUrl":{"type":["string","null"],"description":"The cover image, full size."},"dateToBeAnnounced":{"type":"boolean","description":"True for a release announced as still to come, but with no date yet."},"englishName":{"type":["string","null"],"description":"The title in Latin script, where the title is in another script."},"id":{"type":"integer","format":"int32","description":"The release's id. Stable, except that a release merged into another answers with the other's id.","example":1234},"name":{"type":"string","description":"The release's title.","example":"Hybris"},"predictedStyle":{"type":["string","null"],"description":"For a release still to come that nobody has tagged yet: the style its artist's earlier releases suggest."},"progStatus":{"type":["string","null"],"description":"Where the members place the release on the prog scale: `prog`, `related` (prog-related) or `non` (not prog).","enum":["prog","related","non"]},"rating":{"type":["integer","null"],"format":"int32","description":"The members' rating, from 0 to 100; null until somebody has rated it.","example":86},"ratingVotes":{"type":"integer","format":"int32","description":"How many members' ratings the rating rests on.","example":42},"releaseDate":{"type":["string","null"],"format":"date","description":"The day the release came out, or is due to; null where only the year is known."},"style":{"type":["string","null"],"description":"A short description of the style the members have tagged the release with.","example":"Prog Symphonic Rock"},"type":{"type":"string","description":"What kind of release it is. New values may be added; a client should treat one it does not know as `other`.","enum":["lp","ep","single","live","video","best_of","comp","ost","sampler","tribute","collaboration","other"]},"url":{"type":"string","description":"The release's page on AwesomeProg.","example":"https://awesomeprog.com/releases/1234"},"year":{"type":["integer","null"],"format":"int32","description":"The year the release came out, or is due to.","example":1992}},"required":["dateToBeAnnounced","id","name","ratingVotes","type","url"]},"ReleaseDetails":{"type":"object","description":"A release with its tracklist.","properties":{"release":{"$ref":"#/components/schemas/Release"},"tracklistComplete":{"type":"boolean","description":"Whether the tracklist is known to be complete."},"tracks":{"type":"array","description":"The tracks in order. Empty where nobody has entered them yet.","items":{"$ref":"#/components/schemas/Track"}}},"required":["release","tracklistComplete","tracks"]},"ReleaseList":{"type":"object","properties":{"releases":{"type":"array","items":{"$ref":"#/components/schemas/Release"}}},"required":["releases"]},"ReleasePage":{"type":"object","description":"One page of a longer list of releases.","properties":{"limit":{"type":"integer","format":"int32","description":"The `limit` the page was read with."},"offset":{"type":"integer","format":"int32","description":"The `offset` the page was read with."},"releases":{"type":"array","items":{"$ref":"#/components/schemas/Release"}},"total":{"type":"integer","format":"int32","description":"How many releases the whole list holds, across all pages."}},"required":["limit","offset","releases","total"]},"Track":{"type":"object","description":"A track on a release.","properties":{"bonus":{"type":"boolean","description":"True for a bonus track."},"durationSeconds":{"type":["integer","null"],"format":"int32","description":"Length in seconds.","example":742},"englishName":{"type":["string","null"],"description":"The title in Latin script, where the title is in another script."},"id":{"type":"integer","format":"int32"},"name":{"type":"string"},"number":{"type":"integer","format":"int32","description":"The track's position on the release, from 1.","example":1}},"required":["bonus","id","name","number"]}}}}