Songlink / Odesli

Songlink / Odesli — free tier with API key

🎬 MediaUNMONITORED
AUTH APIKEYCORS AGENT ?HTTPS COMMERCIAL ?

Songlink / Odesli exposes a free-tier JSON API. Register for an API key if required; we verified a public or demo endpoint.

HOW IT'S SCORED ⓘ
Status badge · for your READMEshipapis health badge: — · unmonitored
ON PROBE SCHEDULE

We probe a documented GET and expect 2xx JSON — full uptime and health score. Open provider docs ↗

Uptime historystarts after first probe

On our probe schedule. Uptime charts appear after the first check lands.

Example responsefrom provider docs — not verified by us
GET https://api.song.link/v1-alpha.1/links?url=spotify%3Atrack%3A0Jcij1eWd5bDMU5iPbxe2i&userCountry=US&key=9ed95450-2b6f-4aae-a3ab-34b6bca4f786>&quot

{
  "entityUniqueId": "SPOTIFY_SONG::0Jcij1eWd5bDMU5iPbxe2i",
  "userCountry": "TR",
  "pageUrl": "https://song.link/s/0Jcij1eWd5bDMU5iPbxe2i",
  "entitiesByUniqueId": {
    "AMAZON_SONG::B073SYKFJS": {
      "id": "B073SYKFJS",
      "type": "song",
      "title": "Kitchen",
      "artistName": "Kid Cudi",
      "thumbnailUrl": "https://m.media-amazon.com/images/I/418XoY1l0PL.jpg",
      "thumbnailWidth": 500,
      "thumbnailHeight": 500,
      "apiProvider": "amazon"
    },
    "ANGHAMI_SONG::18717979": {
      "id": "18717979",
      "type": "song",
      "title": "Kitchen",
      "artistName": "Kid Cudi",
      "thumbnailUrl": "https://artwork.anghcdn.co/cover/121457007/320",
      "thumbnailWidth": 1024,
      "thumbnailHeight": 1024,
      "apiProvider": "anghami"
    },
    "BOOMPLAY_SONG::2639007": {
      "id": "2639007",
      "type": "song",
      "title": "Kitchen",
      "artistName": "Kid Cudi",
      "thumbnailUrl": "https://source.boomplaymusic.com/group10/M00/EC/4E/990e31179fe74d50857e2c53d44e2237_464_464.jpg",
      "thumbnailWidth": 464,
      "thumbnailHeight": 464,
      "apiProvider": "boomplay"
    },
    "DEEZER_SONG::138127073": {
      "id": "138127073",
      "type": "song",
      "title": "Kitchen",
      "artistName": "Kid Cudi",
      "thumbnailUrl": "http://cdn-images.dzcdn.net/images/cover/fdb6aec52b3e3ee75a47386a867e4c3b/500x500-000000-80-0-0.jpg",
      "thumbnailWidth": 500,
      "thumbnailHeight": 500,
      "apiProvider": "deezer"
    },
    "NAPSTER_SONG::tra.246984805": {
      "id": "tra.246984805",
      "type": "song",
      "title": "Kitchen",
      "artistName": "Kid Cudi",
      "thumbnailUrl": "https://direct.rhapsody.com/imageserver/images/alb.246984790/385x385.jpeg",
      "thumbnailWidth": 385,
      "thumbnailHeight": 385,
      "apiProvider": "napster"
    },
    "PANDORA_SONG::TR:5791220": {
      "id": "TR:5791220",
      "type": "song",
      "title": "Kitchen",
      "artistName": "Kid Cudi",
      "thumbnailUrl": "https://content-images.p-cdn.com/images/f5/6a/46/24/4dae46468b3900fbfb553c2b/_500W_500H.jpg",
      "thumbnailWidth": 500,
      "thumbnailHeight": 500,
      "apiProvider": "pandora"
    },
    "SPOTIFY_SONG::0Jcij1eWd5bDMU5iPbxe2i": {
      "id": "0Jcij1eWd5bDMU5iPbxe2i",
      "type": "song",
      "title": "Kitchen",
      "artistName": "Kid Cudi",
      "thumbnailUrl": "https://i.scdn.co/image/ab67616d0000b2735c8d9ad991d2a23eb039d8dd",
      "thumbnailWidth": 640,
      "thumbnailHeight": 640,
      "apiProvider": "spotify"
    },
    "TIDAL_SONG::68204971": {
      "id": "68204971",
      "type": "song",
      "title": "Kitchen",
      "artistName": "Kid Cudi",
      "thumbnailUrl": "https://resources.tidal.com/images/2663aa6d/0fb0/463a/a51a/0858924f46af/640x640.jpg",
      "thumbnailWidth": 640,
      "thumbnailHeight": 640,
      "apiProvider": "tidal"
    }
  },
  "linksByPlatform": {
    "amazonMusic": {
      "country": "TR",
      "url": "https://music.amazon.com/albums/B01N48U32A?trackAsin=B073SYKFJS",
      "entityUniqueId": "AMAZON_SONG::B073SYKFJS"
    },
    "amazonStore": {
      "country": "US",
      "url": "https://amazon.com/dp/B073SYKFJS",
      "entityUniqueId": "AMAZON_SONG::B073SYKFJS"
    },
    "anghami": {
      "country": "TR",
      "url": "https://play.anghami.com/song/18717979?refer=linktree",
      "entityUniqueId": "ANGHAMI_SONG::18717979"
    },
    "boomplay": {
      "country": "TR",
      "url": "https://www.boomplay.com/songs/2639007",
      "entityUniqueId": "BOOMPLAY_SONG::2639007"
    },
    "deezer": {
      "country": "TR",
      "url": "https://www.deezer.com/track/138127073",
      "entityUniqueId": "DEEZER_SONG::138127073"
    },
    "napster": {
      "country": "TR",
      "url": "https://play.napster.com/track/tra.246984805",
      "entityUniqueId": "NAPSTER_SONG::tra.246984805"
    },
    "pandora": {
      "country": "US",
      "url": "https://www.pandora.com/TR:5791220",
      "entityUniqueId": "PANDORA_SONG::TR:5791220"
    },
    "tidal": {
      "country": "TR",
      "url": "https://listen.tidal.com/track/68204971",
      "entityUniqueId": "TIDAL_SONG::68204971"
    }
  }
}
Call itcurl · fetch · python
curl "https://api.song.link/v1-alpha.1/links?url=spotify%3Atrack%3A0Jcij1eWd5bDMU5iPbxe2i&userCountry=US&key=9ed95450-2b6f-4aae-a3ab-34b6bca4f786>&quot"
const res = await fetch("https://api.song.link/v1-alpha.1/links?url=spotify%3Atrack%3A0Jcij1eWd5bDMU5iPbxe2i&userCountry=US&key=9ed95450-2b6f-4aae-a3ab-34b6bca4f786>&quot");
const data = await res.json();
console.log(data);
import requests

res = requests.get("https://api.song.link/v1-alpha.1/links?url=spotify%3Atrack%3A0Jcij1eWd5bDMU5iPbxe2i&userCountry=US&key=9ed95450-2b6f-4aae-a3ab-34b6bca4f786>&quot")
print(res.json())

BROWSER CALLS BLOCKED (NO CORS/HTTPS) — USE THE CURL SNIPPET

Endpoints · 6On scheduleFULL DOCS ↗
On schedule — GET /v1-alpha.1/links?url=spotify%3Atrack%3A0Jcij1eWd5bDMU5iPbxe2i&userCountry=US&key=9ed95450-2b6f-4aae-a3ab-34b6bca4f786>&quot awaits first probe
GET/v1-alpha.1/links?url=spotify%3Atrack%3A0Jcij1eWd5bDMU5iPbxe2i&userCountry=US&key=9ed95450-2b6f-4aae-a3ab-34b6bca4f786>&quotPROBED

Songlink / Odesli — free tier with API key

GET/v1-alpha.1

V1 Alpha 1 — documented GET route.

GET/v1-alpha.1/1

V1 Alpha.1 details by ID (example: 1).

GET/v1-alpha.1?limit=10

V1 Alpha 1 — documented GET route.

GET/v1-alpha.1/search?q=test

Search by query parameters.

GET/v1/

V1 — documented GET route.

Machine-readable spec

We probe a documented GET and expect 2xx JSON — full uptime and health score. Export includes every documented route below.

Response-shape history

Not tracked yet. Shape-change history starts once this API joins our probe schedule.

Songlink / Odesli: common questions

Is Songlink / Odesli free to use?

Yes — Songlink / Odesli is a free media API. Free tier: Free tier — key may be required. Whether the free tier allows commercial use is unclear — check the provider docs.

Does Songlink / Odesli need an API key?

Yes — Songlink / Odesli needs a free API key, which you pass on each request. Rate limits: Unpublished.

Can I call Songlink / Odesli from the browser?

Not directly — Songlink / Odesli doesn't send browser-friendly CORS headers, so call it from a server or proxy instead. Copy the curl or Python snippet on this page to get started.

Is Songlink / Odesli up right now?

Songlink / Odesli is catalogued but not yet on our probe schedule, so we don't publish a live status for it. Check the provider's own status page or docs for its current state.