Odesli / Songlink API Alternative

A practical migration guide for server-side music link matching and metadata lookup.

Odesli's deprecation notice says the Songlink public API's v1-alpha.1 namespace was scheduled for retirement on July 31, 2026. If your product used its /links endpoint to turn one music-service URL into links for other services, Musicfetch covers that core server-side workflow and also returns normalized music metadata.

What Musicfetch can replace

Use Musicfetch when your application needs to accept a supported track, album, or artist URL, normalize the source metadata, and search the requested music services for matching links. Dedicated endpoints also support track lookup by ISRC and album or release lookup by UPC.

  • URL lookup for a supported music-service link
  • ISRC lookup for a recording
  • UPC lookup for an album or release
  • One normalized track, album, or artist result with matches grouped by service

This is a migration to a different API contract, not an emulation layer. Musicfetch does not return Odesli's linksByPlatform, entitiesByUniqueId, or hosted pageUrl fields. Matching also depends on what is available in the requested services and country, so your application should handle missing service matches.

Odesli-to-Musicfetch concept mapping

Odesli / Songlink Musicfetch
GET /v1-alpha.1/links?url=… GET /url?url=…&services=…
userCountry Optional country query parameter
linksByPlatform Requested matches under result.services
Platform-specific entity metadata A normalized track, album, or artist result
platform=isrc&type=song&id=… GET /isrc?isrc=…&services=…
platform=upc&type=album&id=… GET /upc?upc=…&services=…
No token, or a key query parameter Private x-token request header

Replace the URL lookup request

Choose the destination services your application actually displays. The services parameter is required, and uses Musicfetch service keys such as appleMusic and youtubeMusic.

curl "https://api.song.link/v1-alpha.1/links?url=https%3A%2F%2Fopen.spotify.com%2Ftrack%2F6habFhsOp2NvshLv26DqMb&userCountry=US"

Example JSON response

Musicfetch currently supports 40 service keys. This example requests all of them; successful matches are returned together under result.services. Select any service to inspect its fields.

The same input can be sent to /isrc using an isrc parameter, or to /upc using a upc parameter. See the API documentation for accepted parameters and the current response types.

Migration checklist

  1. Inventory whether each call starts with a URL, ISRC, or UPC, then select the corresponding Musicfetch endpoint.
  2. Choose explicit destination services and pass country when regional links matter.
  3. Move the request behind your server and load the Musicfetch token from a server-side secret.
  4. Replace reads from linksByPlatform and entitiesByUniqueId with your own adapter for the normalized Musicfetch result.
  5. Test tracks and albums separately, plus unavailable and unmatched services. Do not assume every requested service will return a match.

Ready to replace Odesli?

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

Start 7-day free trial