Free music lookup API

Look up an ISRC, a UPC or a store link and get clean JSON back. No key and no account. It uses the same open sources as our free tools.

What the API returns

The lookup API returns the release behind a recording code (ISRC), a barcode (UPC or EAN) or an Apple Music link: title, artist, album, release date, label, copyright line and related codes. Every answer lists the data sources and a short attribution text.

Results come from open databases, so a new release or a small catalogue can be missing. A missing result is not proof that a code is wrong.

Using the data well

Show the source names that come with each answer, and keep the Powered by WBBT line visible. Do not present the data as complete or as proof of who owns a recording.

Spotify links are not accepted by the API. Paste them into the free tools on this site instead.

Examples

Look up by code

Send a GET request with isrc or upc in the query string. These are public codes, so they are safe in an address.

curl "https://wbbt.net/api/v1/lookup?isrc=USABC2400001"
const res = await fetch("https://wbbt.net/api/v1/lookup?upc=036000291452");
const json = await res.json();
if (json.ok) console.log(json.data.result.title, json.poweredBy);

Look up by link

Store links can carry tracking parameters, so send them in a JSON body with POST and never in the address.

curl -X POST https://wbbt.net/api/v1/lookup \
  -H "Content-Type: application/json" \
  -d '{"url":"https://music.apple.com/us/album/example-album/1234567890"}'

Response

Every answer has ok, version, data, sources, attribution and poweredBy. A field without a value is null.

{
  "ok": true,
  "version": "1",
  "data": {
    "type": "recording",
    "query": { "isrc": "USABC2400001" },
    "results": [
      {
        "title": "Night Drive",
        "artist": "Luna Vale",
        "album": null,
        "releaseDate": "2024-05-17",
        "isrcs": ["USABC2400001"],
        "isrcMatch": "exact",
        "upc": null,
        "label": null,
        "distributedByWbbt": false,
        "pageUrls": { "isrc": "https://wbbt.net/isrc/USABC2400001", "upc": null }
      }
    ]
  },
  "sources": [{ "name": "MusicBrainz", "url": "https://musicbrainz.org", "attribution": "Data from MusicBrainz (CC0)." }],
  "cached": false,
  "poweredBy": "Powered by WBBT Records (https://wbbt.net/tools/api)"
}

Limits

  • 30 requests a minute and 1000 requests a day for each address.
  • Answers may be cached for a few minutes, and the data behind them for up to a day.
  • No key is needed. The limits may change, and the version field tells you which schema you get.

Errors

  • 400 invalid_request: the code is missing, malformed or fails its check digit.
  • 404 not_found: nothing was found for this code.
  • 422 unsupported_link: the link is not an Apple Music link.
  • 429 rate_limited: wait for the seconds named in the Retry-After header.
  • 503 unavailable: a data source is busy, so try again shortly.

Attribution

Please show the sources named in each answer and keep the Powered by WBBT line. A link back to wbbt.net/tools/api is appreciated.

Questions

Do I need an API key?

No. The API is open and keyless, and it is limited by address instead. If you need more requests, write to [email protected].

Can I call it from a web page?

Yes, for GET requests by code. They send open CORS headers. Links go in a POST body, so call that from your own server.

Why is there a permanent page for each code?

Every answer includes a pageUrl, a public page on wbbt.net for that code. Link to it if you want people to see the full details.

All free tools →

Releasing your own music?

See what WBBT offers independent artists and labels, or send us your music.

Start TodaySubmit music