Use case

Build fanlink and smart-link products

Turn one song or release reference into the cross-platform links your landing page needs.

Fanlink and smart-link products solve the same core problem: let a fan start with one song or release and choose where to open it. Musicfetch resolves a store URL, ISRC, or UPC, normalizes the catalog metadata, and searches for matching entries across the music services you request. Your application turns those results into its own cross-platform landing page.
A fan holding a phone displaying a smart link with choices for several music services
Illustrative fan journey. Musicfetch supplies the matching data and links; your product owns the page and interaction.

Where Musicfetch fits in your stack

Use the endpoint that matches the reference already present in your workflow. In every case, the services parameter tells Musicfetch which additional destinations to search.

Starting point and lookup Product use
Supported track URL → Track URL lookup GET /url Build a song fanlink from a link already supplied by an artist or user
Supported album or release URL → Album URL lookup GET /url Build a release fanlink and populate its title, artist, and artwork
Recording ISRC → ISRC lookup GET /isrc Start a track fanlink from a catalog identifier instead of a store URL
Release UPC → UPC lookup GET /upc Start an album or release fanlink from its product identifier

URL lookup also supports artists when the source is a supported artist URL. See the URL lookup documentation for supported source-link and destination-service behavior.

Current ISRC and UPC lookups use Spotify as their initial catalog source. A valid identifier that is unavailable there may not resolve, so keep a not-found path in your ingestion flow.

Four practical product workflows

  1. Resolve the input. Route a URL, ISRC, or UPC to the matching endpoint. Musicfetch determines the catalog entity and returns a track, album, or artist result.
  2. Normalize the catalog item. Read fields such as the name, artists, artwork, release date, duration, ISRC, or UPC without reshaping every service response yourself.
  3. Match service entries. Use result.services, keyed by service, to store the matched platform ID and link. A missing key means no match was returned for that request.
  4. Render your fanlink. Filter and order the matched destinations, then render your own branded landing page with your analytics and fallback rules.

Request the destination services your product needs, optionally pass a two-letter country code for localized store links, and filter returned entries against your UI allowlist. Each returned service entry carries the matched platform ID and link, so the same response can populate buttons and update your catalog record.

Handle partial service coverage

Requested services are search targets, not guaranteed results. Only render entries present in result.services, and decide how your fanlink behaves when a preferred service has no match. A country value helps Musicfetch return localized links where the service supports them.

One request, normalized data and service links

This demo uses a Spotify URL and asks Musicfetch to search across its current service set. The other tabs show the equivalent entry points for an ISRC and UPC. Keep the access token on your server.

curl "https://api.musicfetch.io/url?url=https%3A%2F%2Fopen.spotify.com%2Ftrack%2F6habFhsOp2NvshLv26DqMb&services=amazon,amazonMusic,anghami,appleMusic,audiomack,audius,awa,bandcamp,beatport,boomplay,deezer,discogs,flo,gaana,genius,iHeartRadio,instagram,jioSaavn,joox,kkbox,lineMusic,musicBrainz,napster,netease,pandora,qobuz,qqMusic,sevenDigital,shazam,soundcloud,spotify,telmoreMusik,tidal,tiktok,trebel,yandex,youtube,youtubeMusic,youtubeShorts,youseeMusik&country=US" \
-H "x-token: YOUR_TOKEN"

Live URL lookup response

The response below is fetched from Musicfetch and refreshed on the server. Only actual matches appear under result.services.

Map the response into your product model

Response field Suggested use
result.type Branch between track, album, and artist handling
result.name, artists, image, releaseDate Populate a normalized catalog record or fanlink header
result.isrc or result.upc Reconcile the result with your internal release identifiers
result.services.{service}.id Store a platform-specific catalog ID
result.services.{service}.link Render or persist the matched destination URL

Fields vary by entity and by what source services expose. Treat optional metadata as optional, and use the current API documentation as the contract for your adapter.

Production checklist

  1. Classify each input as a supported URL, track ISRC, or release UPC and call the corresponding endpoint.
  2. Request an explicit set of destination services and pass country when localized links matter.
  3. Normalize optional response fields into your product schema and keep the service key alongside every platform ID and link.
  4. Handle unmatched services and lookup errors without blocking the rest of the fanlink.
  5. Cache resolved metadata and links, then define when your product refreshes them.

Build your fanlink matching layer with one API

Start with a 7-day free trial, then use the API documentation to connect your first lookup.

Start 7-day free trial
Run a distribution platform? See the post-delivery release verification guide. Migrating Songlink? Read the Odesli API migration guide.