Beta founding offer: lock in 50% off any plan for life, before the beta ends. Claim founding pricing →
ISWC API

ISWC lookup
& reverse search

Developer reference: find the ISWC work code(s) for a recording, or list every recording of a composition from a single ISWC.

Recording → ISWC

Enter an ISRC or a SonoVault track ID to find the composition code(s) behind that recording. A single recording can carry several ISWCs.

curl
curl https://api.sonovault.now/v1/tracks/iswc \
-H "x-api-key: YOUR_API_KEY" \
-G -d "isrc=GBDUW0000059"
View API docs →
ISWC → recordings

Enter an ISWC to list every recording of that composition (originals, covers, remixes, and re-releases), each with its own ISRC.

curl
curl https://api.sonovault.now/v1/tracks/iswc/T0701427997 \
-H "x-api-key: YOUR_API_KEY"
Overview

Recording ↔ composition, both directions

The ISWC (International Standard Musical Work Code) is the letter T followed by 10 digits (e.g. T-070142799-7). It identifies the composition, the written song behind every recording of it, and SonoVault bridges it to recordings both ways.

Go from a recording to the work with GET /v1/tracks/iswc (by ISRC or track ID), or from a work to every recording of it with GET /v1/tracks/iswc/:iswc. The links are drawn from The MLC, so this is one of the few self-serve APIs that maps recordings to the compositions behind them at all; most only ever return recording metadata.

Response

What you get back

Each direction has a small, dedicated payload; ISWCs are intentionally not part of the standard track shape.

Recording → ISWC
sonovault_idThe canonical track the ISRC resolved to.
isrcA representative ISRC for that recording.
iswcs[]Each linked work: { iswc, title }. Usually one; several for medleys or samples.
ISWC → recordings
iswcThe normalised composition code.
titleThe work's title.
totalFull recording count, even when the page is truncated.
recordings[]Each recording: { sonovault_id, isrc, title, artist }, most-popular-first.
Reference

ISWC endpoints at a glance

WhatRequestReturns
Recording → ISWCGET /v1/tracks/iswc?isrc= | id=The ISWC work code(s) behind one recording. Provide exactly one of isrc or id.
ISWC → recordingsGET /v1/tracks/iswc/:iswcEvery recording of a composition, each with its ISRC. Separators like T-070142799-7 are accepted.
Recipes

What developers build with it

Map recordings to compositions

Cross a catalog from ISRC to ISWC so mechanical royalties route to the right work, the core of unmatched-recording cleanup.

Find every master of a song

Start from a work's ISWC and pull every recording of it for sync research or clearance, each with a resolvable ISRC.

Audit ISWC coverage

Walk your tracks, call recording → ISWC on each, and flag the recordings that have no composition code on file yet.

New to the two codes? The ISRC ⇄ ISWC converter shows the crosswalk interactively, no code required.

Notes & limits

Good to know

Dedicated endpoints

ISWCs are not folded into the standard track payload; they have their own read paths in both directions, because the recording ↔ work relationship is many-to-many.

Sourced from The MLC

The ISRC ↔ ISWC links come from the US Mechanical Licensing Collective. Coverage is broad but not total: not every recording is mapped to a work yet.

One-to-many, both ways

One composition maps to many recordings, and one recording can map to several ISWCs when it samples or medleys more than one work.

Aggregated, not authoritative

Treat results as a fast reference and verify before any filing, licensing, or financial use. SonoVault is not affiliated with The MLC or any collecting society.

One key + SDKs

Same x-api-key auth as every /v1 endpoint, available on the free tier. Official clients: sonovault on npm and PyPI, plus the sonovault-mcp server.

FAQ

Frequently asked questions

Call GET /v1/tracks/iswc with exactly one of isrc= or id=. The response returns the recording's canonical track ID, a representative ISRC, and an iswcs array of the linked works, each with its title. Most recordings return a single ISWC; a medley or a track that samples another composition can return several.
Call GET /v1/tracks/iswc/:iswc. The ISWC can include human-readable separators; T-070142799-7 is accepted and normalised. Recordings come back most-popular-first, each with its own ISRC, and the response includes a total count so you know the full size even when the page is truncated by the limit parameter (up to 200).
By design. A recording can link to several works and a work links to many recordings, so folding ISWCs into the standard track payload would misrepresent that many-to-many relationship. Keeping them on dedicated endpoints also makes the MLC-sourced provenance explicit rather than implying an ISWC is a fixed property of the recording.
The recording-to-work links are sourced from The MLC. It is high-quality data, but no aggregated source is complete: some recordings are not yet mapped to a work, and mappings can be incomplete or wrong. Verify against an authoritative source before any commercial, financial, or filing use.
Yes. Both ISWC endpoints use the same single x-api-key header as the rest of the API and are available on the free tier (1,000 requests/month). Higher tiers raise the request limit and unlock paid features like charts, browse, and audio recognition.
Related