API Reference
Resolve any track link or ISRC and get back streaming links for 15+ platforms. One endpoint, any input.
Authentication
All requests require an Authorization: Bearer <key> header. Get yours from the dashboard. Base URL: https://api.ml.jadquir.com/v1
curl "https://api.ml.jadquir.com/v1/lookup/isrc/GBARL9300135" \
-H "Authorization: Bearer <your-key>"Auto-detect endpoint
Pass anything — platform is detected automatically. The simplest way to use the API.
/lookup?q=<input># Spotify URL
curl "https://api.ml.jadquir.com/v1/lookup?q=https%3A%2F%2Fopen.spotify.com%2Ftrack%2F4cOdK2wGLETKBW3PvgPWqT" \
-H "Authorization: Bearer <key>"
# Apple Music URL
curl "https://api.ml.jadquir.com/v1/lookup?q=https%3A%2F%2Fmusic.apple.com%2Fus%2Falbum%2F_%2F1559885420%3Fi%3D1559885421" \
-H "Authorization: Bearer <key>"
# Bare ISRC
curl "https://api.ml.jadquir.com/v1/lookup?q=GBARL9300135" \
-H "Authorization: Bearer <key>"
# MusicLink public ID
curl "https://api.ml.jadquir.com/v1/lookup?q=huUKtw-D" \
-H "Authorization: Bearer <key>"| What you can pass | Example |
|---|---|
| Spotify URL | open.spotify.com/track/4cOdK2wGLETKBW3PvgPWqT |
| Apple Music URL | music.apple.com/us/album/…?i=1559885421 |
| Deezer URL | deezer.com/track/15646529 |
| Tidal URL | tidal.com/track/491206012 |
| MusicLink URL | ml.jadquir.com/ml/huUKtw-D |
| ISRC | GBARL9300135 |
| MusicLink ID | huUKtw-D |
Also accepts ?url= as an alias for ?q=, and ?platform=spotify&id=ID for explicit routing — both for Odesli compatibility. The type parameter is accepted but ignored.
Explicit endpoint
Route directly by platform when you know the source. Accepts a bare ID or a full URL.
/lookup/:platform/:id# By ISRC
curl "https://api.ml.jadquir.com/v1/lookup/isrc/GBARL9300135" \
-H "Authorization: Bearer <key>"
# By Spotify ID
curl "https://api.ml.jadquir.com/v1/lookup/spotify/4cOdK2wGLETKBW3PvgPWqT" \
-H "Authorization: Bearer <key>"
# By Apple Music ID
curl "https://api.ml.jadquir.com/v1/lookup/apple/1559885421" \
-H "Authorization: Bearer <key>"
# By Deezer ID
curl "https://api.ml.jadquir.com/v1/lookup/deezer/15646529" \
-H "Authorization: Bearer <key>"
# By Tidal ID
curl "https://api.ml.jadquir.com/v1/lookup/tidal/491206012" \
-H "Authorization: Bearer <key>"| :platform | :id format |
|---|---|
| isrc | Bare ISRC — e.g. GBARL9300135 |
| spotify | Track ID — e.g. 4cOdK2wGLETKBW3PvgPWqT |
| apple | Full Apple Music URL or track ID |
| deezer | Track ID — e.g. 15646529 |
| tidal | Track ID — e.g. 491206012 |
| musiclink | MusicLink public_id — e.g. huUKtw-D |
First lookup: If a track has never been resolved before, the API may take 10–15 seconds while it fetches data across platforms. Subsequent requests return from cache immediately.
Response
Both endpoints return the same shape. Use data[0] for the track — most lookups return exactly one result.
{
"success": true,
"data": [
{
"public_id": "huUKtw-D",
"url": "https://ml.jadquir.com/song/rick-astley/never-gonna-give-you-up",
"title": "Never Gonna Give You Up",
"artist": "Rick Astley",
"isrc": "GBARL9300135",
"image_url": "https://cdn-images.dzcdn.net/images/cover/2fec34e02d0ca76df05f9f533f0492f2/1000x1000-000000-80-0-0.jpg",
"links": {
"musiclink": "https://ml.jadquir.com/song/rick-astley/never-gonna-give-you-up",
"spotify": "https://open.spotify.com/track/4cOdK2wGLETKBW3PvgPWqT",
"youtube": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"youtube_music": "https://music.youtube.com/watch?v=dQw4w9WgXcQ",
"deezer": "https://www.deezer.com/track/15646529",
"soundcloud": "https://soundcloud.com/rick-astley-official/never-gonna-give-you-up",
"apple_music": "https://geo.music.apple.com/us/album/_/1559885420?i=1559885421",
"tidal": "https://listen.tidal.com/track/491206012",
"qobuz": "https://open.qobuz.com/track/385574059",
"audius": "https://audius.co/tracks/4k3v4",
"shazam": "https://www.shazam.com/song/1773293184/never-gonna-give-you-up",
"yandex": "https://music.yandex.ru/track/609676",
"anghami": "https://play.anghami.com/song/106295734?refer=linktree",
"napster": "https://play.napster.com/track/tra.138361575",
"pandora": "https://www.pandora.com/TR:66211067",
"boomplay": "https://www.boomplay.com/songs/3569876",
"audiomack": "https://audiomack.com/rick-astley/song/never-gonna-give-you-up-1",
"amazon_music": "https://music.amazon.com/albums/B07FFJXX39?trackAsin=B07FFGVHT5",
"amazon_store": "https://amazon.com/dp/B07FFGVHT5"
}
}
]
}Rate limits
Exceeding a limit returns 429 with a Retry-After header.
| Plan | Requests / month | Per second | Per minute |
|---|---|---|---|
| Free | 300 | 1 | 10 |
| Hobby | 5,000 | 2 | 60 |
| Pro | 50,000 | 5 | 200 |
Need higher limits? See pricing
Output platforms
Links are best-effort — availability varies by region and catalog.
Migrating from Odesli
The Odesli / song.link API was/will shut down July 31, 2026. The switch is two lines.
| Odesli | MusicLink |
|---|---|
| api.song.link/v1-alpha.1/links?url=URL&key=K | https://api.ml.jadquir.com/v1/lookup?q=URL + Bearer K |
| ?platform=spotify&type=song&id=ID | ?platform=spotify&id=ID (type ignored) |
| data.pageUrl | data.data[0].url |
| data.linksByPlatform.spotify.url | data.data[0].links.spotify |
| data.linksByPlatform.appleMusic.url | data.data[0].links.apple_music |
| data.entitiesByUniqueId[id].thumbnailUrl | data.data[0].image_url |
| data.entitiesByUniqueId[id].artistName | data.data[0].artist |
Platform aliases itunes and appleMusic both map to apple. MusicLink also adds ISRC as an input type, which Odesli did not support.
Ready to build?