OpenPlay SDK
A typed TypeScript SDK for OpenPlay's music-catalog API, covering artists, labels, publishers, releases, tracks and works.
OpenPlay's API holds a music company's whole catalog: artists, labels, publishers, releases, tracks and the songs underneath them. I wrote this SDK for Vers1ons so that code talking to that API could rely on types. A release alone has 115 fields, one of them "lost_rights_reason", and nobody should have to remember all 115.
It has typed clients for nine resources, from artists to cover art. Zod schemas check what comes back at runtime, and it also covers auto-pagination, file uploads, webhook signature checks and helpers for bulk jobs. Errors are typed too, so when OpenPlay tells you to slow down, the error says how many seconds to wait.
Most of the schemas are generated from OpenPlay's own field definitions, and a test flags it when the SDK drifts from them. Music data nests deep: a release has discs, a disc has tracks, a track has works (the songs themselves, apart from any one recording), and a work has contributions. One generated type is named after that whole path: ReleaseDiscsDiscTracksTrackWorksContributionsSchema.
I published it on November 26, 2025, the night before Thanksgiving. Version 0.1.0 was on npm at 9:01 p.m., and the code was on GitHub eight minutes later, in one commit. It's MIT-licensed and still on 0.1.0.
Stack
- Languages
- TypeScript
- Product
- Zod

Text mePaul Mikulskis
(617) 599-0775If this sounds like your situation, tell me what's going on.
This number usually answers in a minute or two, in my voice, and every conversation comes straight to me.
Text (617) 599-0775