Public API
Basics
Base URL
https://juicewrld.io/api/v1Every endpoint is under it, andGET /api/v1lists them. Read-only over HTTPS; answers are JSON in UTF-8.120 requests a minute
Per address, every endpoint and every 304 counted together. Each answer says where you stand inRateLimit-RemainingandRateLimit-Reset; past the limit it's a 429 withRetry-After, in seconds.Cached and revalidated
Answers are fresh for 5 minutes, then may be served stale for an hour while they're fetched again. TheETagchanges only when the catalogue does: send it back inIf-None-Matchand an unchanged answer is a 304 with no body.Open to every site
Access-Control-Allow-Origin: *on every answer, errors included, so a page anywhere can call it. No key, and no cookies are read or set.
Quick start
Ask for a page of songs, then follow meta.next until it's null.
curl "https://juicewrld.io/api/v1/songs?era=gbgr&status=leaked&limit=5" # Again with the ETag it sent: a 304 and no body while the catalogue is unchangedcurl -i "https://juicewrld.io/api/v1/songs?era=gbgr&status=leaked&limit=5" \ -H 'If-None-Match: <the ETag>'// Every leaked song of an era, a page at a timelet url = "https://juicewrld.io/api/v1/songs?era=gbgr&status=leaked&limit=200";const songs = [];while (url) { const res = await fetch(url); const body = await res.json(); if (!res.ok) throw new Error(`${body.error.code}: ${body.error.message}`); songs.push(...body.data); url = body.meta.next;}console.log(songs.length, songs[0].title, songs[0].url);Responses
- An answer is
{ "data": ... }. Lists addmeta:total,limit,offset, andnextandprev, the full addresses of the pages either side (null at the ends). - Keys are camelCase and always there: null or an empty list when something isn't known.
- A Date is an object:
dateis ISO 8601 at the precision known (2017-06-13,2017-06or2017; null when only words are),textthe tracker's own words for it. - Statuses are
released,leaked,unsurfaced,sessionormisc. Unsurfaced songs are known by name but never came out; a session is a studio session, the files behind a version, never a version itself. urlis always a page on juicewrld.io. There are no audio, video or download addresses: link a song's page, where it plays.- Within v1, fields are only ever added, never renamed or removed.
// Date{ "date": "2015-09-24", "text": "September 24, 2015" }// Duration{ "seconds": 251, "text": "4:11" }// Credit{ "name": "Spaycjones", "slug": "spaycjones", "url": "https://juicewrld.io/people/spaycjones"}Errors
A refusal has its HTTP status and the same body everywhere, with a code to branch on and a message to read.
{ "error": { "code": "not_found", "message": "No song with the id \"lucid-dream\"." }}- 400
bad_request - A parameter it can't read: an unknown status, era or kind, or a limit out of range. The message names it.
- 404
not_found - No song, era, project or person by that id or slug, or no endpoint at that address.
- 405
method_not_allowed - Anything but GET, HEAD and OPTIONS: the API only reads.
- 429
rate_limited - Over 120 requests in a minute. Retry-After says how many seconds are left.
- 500
internal_error - Something broke on our side. Try again in a minute.
Endpoints
GET/songs
Every public song and version in the tracker's order, or by relevance with q, a page at a time.
Parameters
qoptional- Words to search for, read the way the site's search reads them: every word must match, and titles rank first.
statusoptional- Any of
released,leaked,unsurfaced,sessionormisc, comma-separated. eraoptional- Era codes or slugs in any case (
gbgr,GBGR), comma-separated. projectoptional- A project's slug: its tracks.
personoptional- A person's slug: the songs they're credited on.
familyoptional- A song's family: every version of it.
hasAudiooptionaltruefor songs that play on juicewrld.io,falsefor the rest.hasLyricsoptionaltrueorfalse.limitoptional- How many to a page. 1 to 200. Default 50.
offsetoptional- How many to skip.
meta.nextandmeta.prevhold the neighbouring pages' addresses, so you rarely set it yourself. Default 0.
curl "https://juicewrld.io/api/v1/songs?era=gbgr&status=leaked&limit=2"{ "data": [ { "id": "27-club-gbgr", "title": "27 Club (v1)", "url": "https://juicewrld.io/song/27-club-gbgr", "status": "leaked", "era": "GBGR", "project": null, "family": "27-club", "versionLabel": "v1", "dates": { "recorded": null, "previewed": null, "released": null, "surfaced": { "date": "2020-10-05", "text": "October 5, 2020" } }, "duration": { "seconds": 128, "text": "2:08" }, "cover": "https://juicewrld.io/art/b5b7f6fed17d6f63db6dfc7041687add786c56e6.jpg", "hasAudio": true, "hasLyrics": true }, { "id": "734-gbgr-unreleased", "title": "734 (v1)", "url": "https://juicewrld.io/song/734-gbgr-unreleased", "status": "leaked", "era": "GBGR", "project": null, "family": "734", "versionLabel": "v1", "dates": { "recorded": { "date": "2018-05-21", "text": "May 21-22, 2018" }, "previewed": null, "released": null, "surfaced": { "date": "2020-12-29", "text": "December 29, 2020" } }, "duration": { "seconds": 195, "text": "3:15" }, "cover": "https://juicewrld.io/art/143f50eae3ff24f824e3b215381b98035b34e9f0.jpg", "hasAudio": true, "hasLyrics": true } ], "meta": { "total": 386, "limit": 2, "offset": 0, "next": "https://juicewrld.io/api/v1/songs?era=gbgr&status=leaked&limit=2&offset=2", "prev": null }}Song fields in lists
idstring- The song's id. Its page is /song/{id}.
titlestring- As the tracker writes it, features and version tags included.
urlstring- Its page on juicewrld.io, where it plays.
statusstringreleased,leaked,unsurfaced,sessionormisc.erastring | null- The era's code, for /eras/{code}.
projectstring | null- The album, EP or single it's on, for /projects/{slug}.
familystring- Shared by every version of one song: /songs?family= lists them.
versionLabelstring | null- Which version it is ("v2", "Goodbye & Good Riddance · track 3"), null for a song with one.
datesobjectrecorded,previewed,released(released and misc songs) andsurfaced(leaks and studio sessions), each a Date or null.durationDuration | null- Its length.
coverstring | null- Its cover art on juicewrld.io.
hasAudioboolean- It plays on juicewrld.io.
hasLyricsboolean- Its page shows lyrics.
GET/songs/{id}
One song with everything its page states: other titles, credits linked to people, dates, BPM and key, notes, and every version of it with the studio sessions behind them.
Parameters
idrequired- The song's id, as in its page's address (
/song/lucid-dreams-gbgr).
curl "https://juicewrld.io/api/v1/songs/lucid-dreams-gbgr"{ "data": { "id": "lucid-dreams-gbgr", "title": "Lucid Dreams", "url": "https://juicewrld.io/song/lucid-dreams-gbgr", "status": "released", "era": "GBGR", "project": "goodbye-and-good-riddance", "family": "lucid-dreams", "versionLabel": "Goodbye & Good Riddance · track 3", "dates": { "recorded": { "date": "2017-06-13", "text": "June 13, 2017" }, "previewed": null, "released": { "date": "2018-05-23", "text": "May 23, 2018" }, "surfaced": null }, "duration": { "seconds": 239, "text": "3:59" }, "cover": "https://juicewrld.io/art/3d1c717a58b16b605fdd29464b9a0b376dfb2680.jpg", "hasAudio": true, "hasLyrics": true, "altTitles": ["lucid dreams (forget me)", "Lucid Dreams (Pt. 1)"], "statusLabel": "Released", "artists": "Juice WRLD", "eraName": "Goodbye & Good Riddance", "projectName": "Goodbye & Good Riddance", "type": "Album & Single Track", "quality": null, "bpm": 84, "key": "F# Minor", "credits": { "producers": [ { "name": "Dominic Miller", "slug": "dominic-miller", "url": "https://juicewrld.io/people/dominic-miller" }, { "name": "Nick Mira", "slug": "nick-mira", "url": "https://juicewrld.io/people/nick-mira" } ], "engineers": [ { "name": "Colin Leonard", "slug": "colin-leonard", "url": "https://juicewrld.io/people/colin-leonard" }, { "name": "Rich Keller", "slug": "rich-keller", "url": "https://juicewrld.io/people/rich-keller" }, // 1 more ] }, "location": "Enviyon Entertainment Recording Studio, Country Club Hills, Chicago, IL.", "notes": [ "Song was originally called 'Remember Me'.", "Originally released on SoundCloud & YouTube as track #2 on 'JuiceWRLD 9 9 9', later released on Streaming Platforms as a single under the title 'Lucid Dreams (Forget Me)', it was reissued for the second time on Streaming Platforms as a single under the title 'Lucid Dreams' as the second lead single for 'Goodbye & Good Riddance', then it was reissued as track #3 when the album released. A Remix of this track exists containing a different vocal arrangement and a verse from Lil Uzi Vert. Samples Sting's 'Shape Of My Heart'." ], "obtained": false, "remaster": false, "role": "release", "roleLabel": "Release", "main": true, "versions": { "url": "https://juicewrld.io/versions/lucid-dreams", "title": "Lucid Dreams", "count": 10, "entries": [ { "id": "lucid-dreams-gbgr", "title": "Lucid Dreams", "label": "Goodbye & Good Riddance · track 3", "role": "release", "roleLabel": "Release", "status": "released", "main": true, "url": "https://juicewrld.io/song/lucid-dreams-gbgr" }, { "id": "lucid-dreams-jw999", "title": "lucid dreams (forget me)", "label": "JuiceWRLD 9 9 9 · track 2", "role": "appearance", "roleLabel": "Also released on", "status": "released", "main": false, "url": "https://juicewrld.io/song/lucid-dreams-jw999" }, // 8 more ], "sessions": [ { "id": "lucid-dreams-jw999-sessions", "title": "lucid dreams (forget me)", "label": "Stems for the JuiceWRLD 9 9 9 release", "role": "session-stems", "roleLabel": "Multi-track stems", "status": "session", "main": false, "url": "https://juicewrld.io/song/lucid-dreams-jw999-sessions", "holds": ["lucid-dreams-jw999"] }, { "id": "lucid-dreams-jw999-sessions-2", "title": "lucid dreams (forget me)", "label": "Trackouts for the JuiceWRLD 9 9 9 release", "role": "session-trackouts", "roleLabel": "Trackouts", "status": "session", "main": false, "url": "https://juicewrld.io/song/lucid-dreams-jw999-sessions-2", "holds": ["lucid-dreams-jw999"] } ], "alsoIn": [] } }}Song fields added here
altTitlesstring[]- Other names it has gone by.
statusLabelstring- The status in the site's words ("Released").
artistsstring- Juice WRLD and any features, as credited.
eraName, projectNamestring | null- The era's and the project's names.
typestring | null- The tracker's description of it ("Album & Single Track").
qualitystring | null- Of the best file that surfaced:
lossless,cdq,hq,lqorsession. bpm, keynumber | null, string | null- Tempo and key ("F# Minor").
creditsobjectproducersandengineers, each a list of Credits.locationstring | null- Where it was recorded.
notesstring[]- The tracker's notes on it.
obtainedboolean- An unsurfaced song a leaker or seller is known to hold.
remasterboolean- What plays on the site is a fan remaster standing in for it, not its own recording.
role, roleLabelstring- What this entry is in its family (release, appearance, demo, a kind of session) and the site's word for it.
mainboolean- The family's main entry: the album track, else the latest leak.
versionsobjecturl(the page of every version, null for a song with one),title,count,entries(every version, this one included),sessions(studio sessions: files behind a version, never versions, withholds, the versions each is for) andalsoIn(other families a session edit is a version of).
GET/eras
The eras in order, each with its dates, cover, counts and releases.
curl "https://juicewrld.io/api/v1/eras"{ "data": [ { "code": "JUTE", "slug": "jute", "name": "JUICED UP THE EP", "shortName": "JUTE", "url": "https://juicewrld.io/eras/jute", "start": { "date": "2014", "text": "2014" }, "end": { "date": "2016-01-31", "text": "Jan 31, 2016" }, "description": null, "cover": "https://juicewrld.io/art/0909d7c223ecba4e75269fef296cda04fec68cb5.jpg", "counts": { "songs": 49, "versions": 49, "studioSessions": 6, "byStatus": { "released": 15, "leaked": 27, "unsurfaced": 7, "misc": 0 } }, "projects": ["juiced-up-the-ep"] }, { "code": "AFF", "slug": "aff", "name": "affliction", "shortName": "AFF", "url": "https://juicewrld.io/eras/aff", "start": { "date": "2016-01-31", "text": "Jan 31, 2016" }, "end": { "date": "2017-02-17", "text": "Feb 17, 2017" }, "description": null, "cover": "https://juicewrld.io/art/9f647c1c59ed6fdcb1ba366a481d274af686e7eb.jpg", "counts": { "songs": 51, "versions": 52, "studioSessions": 0, "byStatus": { "released": 17, "leaked": 24, "unsurfaced": 6, "misc": 5 } }, "projects": ["the-twilight-zone", "affliction"] }, // 9 more ]}Era fields
code, slugstring- "GBGR" and "gbgr": /eras/{code} takes either.
name, shortNamestring- "Goodbye & Good Riddance", "GB&GR".
urlstring- Its page on juicewrld.io.
start, endDate- When it began and ended.
descriptionstring | null- The site's words on it.
coverstring | null- Its cover art.
countsobjectsongs(every version of one song counted once),versions,studioSessionsandbyStatus.projectsstring[]- Its albums, EPs and singles by release date, as slugs. /eras/{code} adds them written out as releases.
GET/eras/{code}
One era, with its releases written out.
Parameters
coderequired- The era's code or slug, in any case (
GBGR,gbgr,jw999).
curl "https://juicewrld.io/api/v1/eras/gbgr"{ "data": { "code": "GBGR", "slug": "gbgr", "name": "Goodbye & Good Riddance", "shortName": "GB&GR", "url": "https://juicewrld.io/eras/gbgr", "start": { "date": "2017-12-22", "text": "Dec 22, 2017" }, "end": { "date": "2018-05-23", "text": "May 23, 2018" }, "description": null, "cover": "https://juicewrld.io/art/b5b7f6fed17d6f63db6dfc7041687add786c56e6.jpg", "counts": { "songs": 345, "versions": 444, "studioSessions": 262, "byStatus": { "released": 26, "leaked": 386, "unsurfaced": 32, "misc": 0 } }, "projects": [ "goodbye-and-good-riddance", "goodbye-and-good-riddance-first-reissue", "goodbye-and-good-riddance-second-reissue", "goodbye-and-good-riddance-anniversary-edition", "goodbye-and-good-riddance-5-year-anniversary-edition" ], "releases": [ { "slug": "goodbye-and-good-riddance", "name": "Goodbye & Good Riddance", "kind": "album", "era": "GBGR", "url": "https://juicewrld.io/albums/goodbye-and-good-riddance", "released": { "date": "2018-05-23", "text": "May 23, 2018" }, "description": null, "cover": "https://juicewrld.io/art/3d1c717a58b16b605fdd29464b9a0b376dfb2680.jpg", "trackCount": 15, "editionOf": null, "editions": [ "goodbye-and-good-riddance-first-reissue", "goodbye-and-good-riddance-second-reissue", "goodbye-and-good-riddance-anniversary-edition", "goodbye-and-good-riddance-5-year-anniversary-edition" ] }, { "slug": "goodbye-and-good-riddance-first-reissue", "name": "Goodbye & Good Riddance (First Reissue)", "kind": "single", "era": "GBGR", "url": "https://juicewrld.io/albums/goodbye-and-good-riddance-first-reissue", "released": { "date": "2018-07-10", "text": "Jul 10, 2018" }, "description": null, "cover": "https://juicewrld.io/art/3d1c717a58b16b605fdd29464b9a0b376dfb2680.jpg", "trackCount": 1, "editionOf": "goodbye-and-good-riddance", "editions": [] }, // 3 more ] }}GET/projects
Every album, EP, single and collection in release order, all in one answer: there are a few dozen.
Parameters
kindoptional- Any of
album,ep,single,collectionormisc, comma-separated. eraoptional- Era codes or slugs, comma-separated.
curl "https://juicewrld.io/api/v1/projects?kind=album"{ "data": [ { "slug": "goodbye-and-good-riddance", "name": "Goodbye & Good Riddance", "kind": "album", "era": "GBGR", "url": "https://juicewrld.io/albums/goodbye-and-good-riddance", "released": { "date": "2018-05-23", "text": "May 23, 2018" }, "description": null, "cover": "https://juicewrld.io/art/3d1c717a58b16b605fdd29464b9a0b376dfb2680.jpg", "trackCount": 15, "editionOf": null, "editions": [ "goodbye-and-good-riddance-first-reissue", "goodbye-and-good-riddance-second-reissue", "goodbye-and-good-riddance-anniversary-edition", "goodbye-and-good-riddance-5-year-anniversary-edition" ] }, { "slug": "up-next-session-juice-wrld", "name": "Up Next Session: Juice WRLD", "kind": "album", "era": "WOD", "url": "https://juicewrld.io/albums/up-next-session-juice-wrld", "released": { "date": "2018-07-03", "text": "Jul 3, 2018" }, "description": null, "cover": "https://juicewrld.io/art/eb73c6a204686b694090f388bb15d6e47726257a.jpg", "trackCount": 3, "editionOf": null, "editions": [] }, // 7 more ], "meta": { "total": 9 }}Project fields
slugstring- For /projects/{slug}. Its page is /albums/{slug}.
namestring- The release's name.
kindstringalbum,ep,single,collectionormisc.erastring | null- The era's code.
urlstring- Its page on juicewrld.io.
releasedDate | null- When it came out.
descriptionstring | null- The site's words on it.
coverstring | null- Its cover art.
trackCountnumber- Its tracks. /projects/{slug} lists them as tracks, in order.
editionOf, editionsstring | null, string[]- The release this is an edition of, and this release's own editions.
GET/projects/{slug}
One release and its tracks, in order.
Parameters
slugrequired- As in the album page's address (
/albums/goodbye-and-good-riddance).
curl "https://juicewrld.io/api/v1/projects/goodbye-and-good-riddance"{ "data": { "slug": "goodbye-and-good-riddance", "name": "Goodbye & Good Riddance", "kind": "album", "era": "GBGR", "url": "https://juicewrld.io/albums/goodbye-and-good-riddance", "released": { "date": "2018-05-23", "text": "May 23, 2018" }, "description": null, "cover": "https://juicewrld.io/art/3d1c717a58b16b605fdd29464b9a0b376dfb2680.jpg", "trackCount": 15, "editionOf": null, "editions": [ "goodbye-and-good-riddance-first-reissue", "goodbye-and-good-riddance-second-reissue", "goodbye-and-good-riddance-anniversary-edition", "goodbye-and-good-riddance-5-year-anniversary-edition" ], "tracks": [ { "id": "intro-gbgr", "title": "Intro (feat. ToiNoStory)", "url": "https://juicewrld.io/song/intro-gbgr", "status": "released", "era": "GBGR", "project": "goodbye-and-good-riddance", "family": "intro", "versionLabel": "Goodbye & Good Riddance · track 1", "dates": { "recorded": null, "previewed": null, "released": { "date": "2018-05-23", "text": "May 23, 2018" }, "surfaced": null }, "duration": { "seconds": 75, "text": "1:15" }, "cover": "https://juicewrld.io/art/3d1c717a58b16b605fdd29464b9a0b376dfb2680.jpg", "hasAudio": true, "hasLyrics": true }, { "id": "all-girls-are-the-same-gbgr", "title": "All Girls Are The Same", "url": "https://juicewrld.io/song/all-girls-are-the-same-gbgr", "status": "released", "era": "GBGR", "project": "goodbye-and-good-riddance", "family": "all-girls-are-the-same", "versionLabel": "Goodbye & Good Riddance · track 2", "dates": { "recorded": { "date": "2017-12-14", "text": "December 14, 2017" }, "previewed": null, "released": { "date": "2018-05-23", "text": "May 23, 2018" }, "surfaced": null }, "duration": { "seconds": 165, "text": "2:45" }, "cover": "https://juicewrld.io/art/3d1c717a58b16b605fdd29464b9a0b376dfb2680.jpg", "hasAudio": true, "hasLyrics": true }, // 13 more ] }}GET/people
Everyone credited as a producer or engineer, most songs first.
Parameters
qoptional- Part of a name. Spaces and punctuation don't matter (cnote finds C-Note).
limitoptional- How many to a page. 1 to 500. Default 100.
offsetoptional- How many to skip.
meta.nextandmeta.prevhold the neighbouring pages' addresses, so you rarely set it yourself. Default 0.
curl "https://juicewrld.io/api/v1/people?limit=2"{ "data": [ { "slug": "max-lord", "name": "Max Lord", "url": "https://juicewrld.io/people/max-lord", "songs": 504, "versions": 1033, "produced": 26, "engineered": 504, "released": 112, "firstEra": "GBGR", "lastEra": "POST" }, { "slug": "nick-mira", "name": "Nick Mira", "url": "https://juicewrld.io/people/nick-mira", "songs": 232, "versions": 415, "produced": 232, "engineered": 0, "released": 57, "firstEra": "AFF", "lastEra": "POST" } ], "meta": { "total": 679, "limit": 2, "offset": 0, "next": "https://juicewrld.io/api/v1/people?limit=2&offset=2", "prev": null }}Person fields
slugstring- For /people/{slug}. Their page is /people/{slug}.
namestring- As credited.
urlstring- Their page on juicewrld.io.
songsnumber- Songs credited on, every version of one song counted once.
versionsnumber- Versions credited on, studio sessions not counted.
produced, engineered, releasednumber- Songs produced, engineered, and released.
firstEra, lastErastring | null- The first and last era they're credited in.
GET/people/{slug}
One person and every entry they're credited on, each with their roles on it (producer, engineer).
Parameters
slugrequired- As in their page's address (
/people/max-lord). An old spelling of a name answers as the person it moved to.
curl "https://juicewrld.io/api/v1/people/max-lord"{ "data": { "slug": "max-lord", "name": "Max Lord", "url": "https://juicewrld.io/people/max-lord", "songs": 504, "versions": 1033, "produced": 26, "engineered": 504, "released": 112, "firstEra": "GBGR", "lastEra": "POST", "credits": [ { "id": "end-of-the-road-gbgr", "title": "End Of The Road", "url": "https://juicewrld.io/song/end-of-the-road-gbgr", "status": "released", "era": "GBGR", "project": "goodbye-and-good-riddance", "family": "end-of-the-road", "versionLabel": "Goodbye & Good Riddance · track 14", "dates": { "recorded": { "date": "2018-01-19", "text": "January 19, 2018" }, "previewed": null, "released": { "date": "2018-05-23", "text": "May 23, 2018" }, "surfaced": null }, "duration": { "seconds": 163, "text": "2:43" }, "cover": "https://juicewrld.io/art/3d1c717a58b16b605fdd29464b9a0b376dfb2680.jpg", "hasAudio": true, "hasLyrics": true, "roles": ["engineer"] }, { "id": "i-ll-be-fine-gbgr", "title": "I'll Be Fine", "url": "https://juicewrld.io/song/i-ll-be-fine-gbgr", "status": "released", "era": "GBGR", "project": "goodbye-and-good-riddance", "family": "ill-be-fine", "versionLabel": "Goodbye & Good Riddance · track 15", "dates": { "recorded": { "date": "2018-01-19", "text": "January 19, 2018" }, "previewed": null, "released": { "date": "2018-05-23", "text": "May 23, 2018" }, "surfaced": null }, "duration": { "seconds": 244, "text": "4:04" }, "cover": "https://juicewrld.io/art/3d1c717a58b16b605fdd29464b9a0b376dfb2680.jpg", "hasAudio": true, "hasLyrics": true, "roles": ["engineer"] }, // 1,149 more ] }}GET/search
Songs by the site's search, then the eras, projects and people whose names match. meta.totals counts every match, beyond the limit too.
Parameters
qrequired- What to search for: at least 2 characters.
limitoptional- How many of each kind. 1 to 50. Default 20.
curl "https://juicewrld.io/api/v1/search?q=lucid&limit=2"{ "data": { "query": "lucid", "songs": [ { "id": "lucid-dreams-jw999", "title": "lucid dreams (forget me)", "url": "https://juicewrld.io/song/lucid-dreams-jw999", "status": "released", "era": "JW999", "project": "juicewrld-9-9-9", "family": "lucid-dreams", "versionLabel": "JuiceWRLD 9 9 9 · track 2", "dates": { "recorded": { "date": "2017-06-13", "text": "June 13, 2017" }, "previewed": null, "released": { "date": "2017-06-15", "text": "June 15, 2017" }, "surfaced": null }, "duration": { "seconds": 239, "text": "3:59" }, "cover": "https://juicewrld.io/art/bdc6cbf79f6d2f35cec4076a609af9ad00929d79.jpg", "hasAudio": true, "hasLyrics": true }, { "id": "lucid-dreams-gbgr", "title": "Lucid Dreams", "url": "https://juicewrld.io/song/lucid-dreams-gbgr", "status": "released", "era": "GBGR", "project": "goodbye-and-good-riddance", "family": "lucid-dreams", "versionLabel": "Goodbye & Good Riddance · track 3", "dates": { "recorded": { "date": "2017-06-13", "text": "June 13, 2017" }, "previewed": null, "released": { "date": "2018-05-23", "text": "May 23, 2018" }, "surfaced": null }, "duration": { "seconds": 239, "text": "3:59" }, "cover": "https://juicewrld.io/art/3d1c717a58b16b605fdd29464b9a0b376dfb2680.jpg", "hasAudio": true, "hasLyrics": true } ], "eras": [], "projects": [], "people": [] }, "meta": { "totals": { "songs": 13, "eras": 0, "projects": 0, "people": 0 } }}GET/stats
The catalogue's totals, as /stats shows them: songs, versions and studio sessions by status, releases, people, and plays on the site, recounted every 10 minutes.
curl "https://juicewrld.io/api/v1/stats"Terms
- Cache what you fetch. The catalogue changes a few times a day: revalidate with the ETag instead of fetching again in full, and don't poll faster than the answers' max-age.
- Credit juicewrld.io with a link wherever you show the data.
- Send listeners to a song's page (its
url) to play it. The API has no audio. - Stay under the limit. It's per address, and an address that keeps going past it may be limited further.
- The API is free and comes as it is. juicewrld.io is an unofficial fan archive, not affiliated with Grade A Productions, Interscope Records or the Juice WRLD estate; dates and credits are its best knowledge, and corrections go through each song's page.