Unofficial REST API for albumoftheyear.org. Scrapes public pages and returns structured JSON. Built with Bun, TypeScript, and Cloudflare Workers.
bun installbun run devbun testbun run typecheckbun run deployInteractive docs are served at / via Scalar. The raw OpenAPI 3.0.3 spec is at /openapi.json.
| Method | Path | Params | Description |
|---|---|---|---|
| GET | / |
Scalar API reference UI | |
| GET | /openapi.json |
OpenAPI 3.0.3 spec | |
| GET | /album |
slug or (artist, name), minimal |
Full album detail |
| GET | /releases |
page |
New album releases |
| GET | /releases/singles |
page |
New single releases |
| GET | /upcoming |
page |
Upcoming releases |
| GET | /discover |
Discover albums | |
| GET | /discover/singles |
Discover singles | |
| GET | /discover/anticipated |
Anticipated releases | |
| GET | /discover/under-radar |
Under the radar | |
| GET | /must-hear |
year, decade, page |
Must-hear albums |
| GET | /news |
page, type |
News feed |
| GET | /lists |
year |
Publication lists |
| GET | /list/:slug |
List detail | |
| GET | /search |
q |
Search albums, artists, labels |
| GET | /search/albums |
q |
Search albums |
| GET | /search/artists |
q |
Search artists |
| GET | /search/labels |
q |
Search labels |
The /album endpoint calls two additional PHP endpoints for stats (favorites, likes, listens, library count, lists) and credits (performers, songwriters, producers). Pass minimal=true to skip those and return only HTML-scraped data.
Both PHP endpoints require same-origin session cookies to return data. Without auth cookies they will return null for stats and credits.