Skip to content

lastfm

81 endpoints at a glance
MethodPathSummary
GET/lastfm/albums/{artist}/{album}/infoAlbum Info
GET/lastfm/albums/{artist}/{album}/top-tagsAlbum Top Tags
GET/lastfm/albums/searchAlbum Search
GET/lastfm/artists/{artist}/correctionArtist Correction
GET/lastfm/artists/{artist}/infoArtist Info
GET/lastfm/artists/{artist}/similarArtist Similar
GET/lastfm/artists/{artist}/top-albumsArtist Top Albums
GET/lastfm/artists/{artist}/top-tagsArtist Top Tags
GET/lastfm/artists/{artist}/top-tracksArtist Top Tracks
GET/lastfm/artists/searchArtist Search
GET/lastfm/auth/callbackAuth Callback
POST/lastfm/auth/disconnectAuth Disconnect
GET/lastfm/auth/startAuth Start
GET/lastfm/charts/top-artistsChart Top Artists
GET/lastfm/charts/top-tagsChart Top Tags
GET/lastfm/charts/top-tracksChart Top Tracks
GET/lastfm/geo/{country}/top-artistsGeo Top Artists
GET/lastfm/geo/{country}/top-tracksGeo Top Tracks
GET/lastfm/me/albums/{artist}/{album}/statsMe Album Stats
GET/lastfm/me/albums/ownedList Owned
POST/lastfm/me/albums/ownedMark Owned
DELETE/lastfm/me/albums/owned/{target_id}Mark Not Owned
GET/lastfm/me/albums/wishlistList Wishlist
POST/lastfm/me/albums/wishlistAdd To Wishlist
DELETE/lastfm/me/albums/wishlist/{target_id}Remove From Wishlist
GET/lastfm/me/artists/{artist}/statsMe Artist Stats
GET/lastfm/me/charts/{from_ts}/{to_ts}/albumsMe Chart Albums
GET/lastfm/me/charts/{from_ts}/{to_ts}/artistsMe Chart Artists
GET/lastfm/me/charts/{from_ts}/{to_ts}/tracksMe Chart Tracks
GET/lastfm/me/charts/listMe Charts List
GET/lastfm/me/dashboardMe Dashboard
GET/lastfm/me/dashboard/heatmap-cellMe Dashboard Heatmap Cell
GET/lastfm/me/favorites/albumsList Favorite Albums
POST/lastfm/me/favorites/albumsFavorite Album
DELETE/lastfm/me/favorites/albums/{target_id}Unfavorite Album
GET/lastfm/me/favorites/artistsList Favorite Artists
POST/lastfm/me/favorites/artistsFavorite Artist
DELETE/lastfm/me/favorites/artists/{target_id}Unfavorite Artist
GET/lastfm/me/favorites/tracksList Favorite Tracks
POST/lastfm/me/favorites/tracksFavorite Track
DELETE/lastfm/me/favorites/tracks/{target_id}Unfavorite Track
GET/lastfm/me/friendsMe Friends
GET/lastfm/me/infoMe Info
GET/lastfm/me/library/artistsMe Library Artists
POST/lastfm/me/loveMe Love
GET/lastfm/me/loved-tracksMe Loved Tracks
GET/lastfm/me/new-artistsMe New Artists
POST/lastfm/me/now-playingMe Now Playing
GET/lastfm/me/recent-tracksMe Recent Tracks
GET/lastfm/me/rediscoverMe Rediscover
POST/lastfm/me/refresh-mirrorMe Refresh Mirror
POST/lastfm/me/scrobbleMe Scrobble
POST/lastfm/me/scrobbles/{scrobble_id}/canonical-linkStamp Scrobble Canonical
POST/lastfm/me/scrobbles/bulk-importMe Scrobbles Bulk Import
DELETE/lastfm/me/scrobbles/bulk-import/{task_id}Me Scrobbles Bulk Import Cancel
GET/lastfm/me/scrobbles/bulk-import/currentMe Scrobbles Bulk Import Current
GET/lastfm/me/scrobbles/bulk-import/historyMe Scrobbles Bulk Import History
GET/lastfm/me/top-albumsMe Top Albums
GET/lastfm/me/top-artistsMe Top Artists
GET/lastfm/me/top-tracksMe Top Tracks
GET/lastfm/me/tracks/{artist}/{track}/statsMe Track Stats
POST/lastfm/me/unloveMe Unlove
GET/lastfm/picker/searchLastfm Picker Search
GET/lastfm/tags/{tag}/infoTag Info
GET/lastfm/tags/{tag}/similarTag Similar
GET/lastfm/tags/{tag}/top-albumsTag Top Albums
GET/lastfm/tags/{tag}/top-artistsTag Top Artists
GET/lastfm/tags/{tag}/top-tracksTag Top Tracks
GET/lastfm/tags/{tag}/weekly-chart-listTag Weekly Chart List
GET/lastfm/tracks/{artist}/{track}/correctionTrack Correction
GET/lastfm/tracks/{artist}/{track}/infoTrack Info
GET/lastfm/tracks/{artist}/{track}/similarTrack Similar
GET/lastfm/tracks/{artist}/{track}/top-tagsTrack Top Tags
GET/lastfm/tracks/searchTrack Search
GET/lastfm/users/{username}/friendsUser Friends
GET/lastfm/users/{username}/infoUser Info
GET/lastfm/users/{username}/loved-tracksUser Loved Tracks
GET/lastfm/users/{username}/recent-tracksUser Recent Tracks
GET/lastfm/users/{username}/top-albumsUser Top Albums
GET/lastfm/users/{username}/top-artistsUser Top Artists
GET/lastfm/users/{username}/top-tracksUser Top Tracks

lastfm


Auth Start

GET
/lastfm/auth/start

Parameters

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Samples


Auth Callback

GET
/lastfm/auth/callback

Parameters

Query Parameters

token*
Type
string
Required

Responses

Successful Response

application/json
JSON
[
]

Playground

Variables
Key
Value

Samples


Auth Disconnect

POST
/lastfm/auth/disconnect

Parameters

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Samples


Me Dashboard

GET
/lastfm/me/dashboard

One-shot aggregation of stats for the home dashboard.

Returns a discriminated-union shape: state is "no_lastfm"
when the user hasn't connected their LastFM account, "no_scrobbles"
when they have but haven't run an import yet, or "ready" with the
full payload otherwise.

window_days controls the time-scoped sections (window stats,
chart, top lists, genres, heatmap). Pass an integer for a rolling
window in days; omit or pass 0 / negative for all-time. Sections
that aren't time-scoped (totals, listening streak, latest scrobbles,
mirror) are unaffected.

Parameters

Query Parameters

window_days

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Variables
Key
Value

Samples


Me Dashboard Heatmap Cell

GET
/lastfm/me/dashboard/heatmap-cell

The scrobbles behind one listening-heatmap cell.

Drill-down for the dashboard heatmap: dow (0=Mon..6=Sun) × hour
(0..23, UTC) name a cell; we return the most-recent scrobbles in it.
window_days mirrors /me/dashboard (missing → 30, <=0
all-time) so the list matches the cell the user clicked.

Parameters

Query Parameters

dow*
Type
integer
Required
hour*
Type
integer
Required
window_days

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Variables
Key
Value

Samples


Me Rediscover

GET
/lastfm/me/rediscover

Dashboard "rediscover" panel: tracks played a lot but not in the
last not_played_days (30/90/180/365/… selectable), ranked by
all-time play count. On-demand (not part of the main dashboard
payload) so the window can be flipped without a full reload.

Parameters

Query Parameters

not_played_days
Type
integer
Default
90
limit
Type
integer
Default
20

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Variables
Key
Value

Samples


Me New Artists

GET
/lastfm/me/new-artists

Dashboard "new artists" panel: artists whose first-ever scrobble falls
in the window, with the songs played by each.

On-demand like /me/rediscover so the window can be flipped without a
full dashboard reload. The main payload's new_artists_count /
new_artists_sample stay where they are — they feed the one-line
activity stat, and this is the readable version of the same fact.

Parameters

Query Parameters

window_days
Type
integer
Default
30
limit
Type
integer
Default
20
tracks_per_artist
Type
integer
Default
5

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Variables
Key
Value

Samples


Me Recent Tracks

GET
/lastfm/me/recent-tracks

Read scrobbles from the local mirror, paginated by uts desc.

Local-only — no LastFM call. The mirror is populated by the
bulk-import flow and the periodic refresh job.

Parameters

Query Parameters

page
Type
integer
Default
1
limit
Type
integer
Default
50

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Variables
Key
Value

Samples


Me Refresh Mirror

POST
/lastfm/me/refresh-mirror

Manually trigger a one-page mirror refresh for the current user.

Runs the same _refresh_recent_page1 path the periodic cron uses
— fetches LastFM's user.getRecentTracks page 1, upserts each
scrobble into the mirror, and fires the dedup-trigger so any new
artist/album/track lands in the cache.

Synchronous (one user, one page → ~1 sec on a warm cache, a bit
more on first run). Returns the count of newly-inserted scrobbles
plus the freshly-advanced last_refreshed_at so the SPA can
show "Mirror updated just now" without a second round-trip.

Parameters

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Samples


User Recent Tracks

GET
/lastfm/users/{username}/recent-tracks

Parameters

Path Parameters

username*
Type
string
Required

Query Parameters

page
Type
integer
Default
1
limit
Type
integer
Default
50

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Variables
Key
Value

Samples


Stamp Scrobble Canonical

POST
/lastfm/me/scrobbles/{scrobble_id}/canonical-link

Write canonical_{artist,album,track}_id onto a scrobble doc.

Used by the dashboard's click handler: the SPA resolves a
scrobble's name via Deezer search → canonical, then calls this
so the scrobble row picks up the canonical link without an
extra ingest/reconcile pass. Future dashboard reads find the
canonical_*_id already stamped and render source pills correctly.

Auth: caller must own the scrobble (lastfm_username on the doc
must match the caller's lastfm_username). Otherwise 403.

Parameters

Path Parameters

scrobble_id*
Type
string
Required

Request Body

application/json
JSON
{
  
"canonical_artist_id": "string",
  
"canonical_album_id": "string",
  
"canonical_track_id": "string"
}

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Variables
Key
Value
Body

Samples


Me Info

GET
/lastfm/me/info

Parameters

Query Parameters

refresh
Type
boolean
Default
false

Responses

Successful Response

application/json
JSON
"string"

Playground

Variables
Key
Value

Samples


Me Top Artists

GET
/lastfm/me/top-artists

Parameters

Query Parameters

period
Type
string
Default
"overall"
page
Type
integer
Default
1
limit
Type
integer
Default
50
refresh
Type
boolean
Default
false

Responses

Successful Response

application/json
JSON
"string"

Playground

Variables
Key
Value

Samples


Me Top Tracks

GET
/lastfm/me/top-tracks

Parameters

Query Parameters

period
Type
string
Default
"overall"
page
Type
integer
Default
1
limit
Type
integer
Default
50
refresh
Type
boolean
Default
false

Responses

Successful Response

application/json
JSON
"string"

Playground

Variables
Key
Value

Samples


Me Top Albums

GET
/lastfm/me/top-albums

Parameters

Query Parameters

period
Type
string
Default
"overall"
page
Type
integer
Default
1
limit
Type
integer
Default
50
refresh
Type
boolean
Default
false

Responses

Successful Response

application/json
JSON
"string"

Playground

Variables
Key
Value

Samples


Me Loved Tracks

GET
/lastfm/me/loved-tracks

Parameters

Query Parameters

page
Type
integer
Default
1
limit
Type
integer
Default
50
refresh
Type
boolean
Default
false

Responses

Successful Response

application/json
JSON
"string"

Playground

Variables
Key
Value

Samples


Me Friends

GET
/lastfm/me/friends

Parameters

Query Parameters

page
Type
integer
Default
1
limit
Type
integer
Default
50
refresh
Type
boolean
Default
false

Responses

Successful Response

application/json
JSON
"string"

Playground

Variables
Key
Value

Samples


Me Charts List

GET
/lastfm/me/charts/list

Parameters

Query Parameters

refresh
Type
boolean
Default
false

Responses

Successful Response

application/json
JSON
"string"

Playground

Variables
Key
Value

Samples


Me Chart Artists

GET
/lastfm/me/charts/{from_ts}/{to_ts}/artists

Parameters

Path Parameters

from_ts*
Type
integer
Required
to_ts*
Type
integer
Required

Query Parameters

refresh
Type
boolean
Default
false

Responses

Successful Response

application/json
JSON
"string"

Playground

Variables
Key
Value

Samples


Me Chart Tracks

GET
/lastfm/me/charts/{from_ts}/{to_ts}/tracks

Parameters

Path Parameters

from_ts*
Type
integer
Required
to_ts*
Type
integer
Required

Query Parameters

refresh
Type
boolean
Default
false

Responses

Successful Response

application/json
JSON
"string"

Playground

Variables
Key
Value

Samples


Me Chart Albums

GET
/lastfm/me/charts/{from_ts}/{to_ts}/albums

Parameters

Path Parameters

from_ts*
Type
integer
Required
to_ts*
Type
integer
Required

Query Parameters

refresh
Type
boolean
Default
false

Responses

Successful Response

application/json
JSON
"string"

Playground

Variables
Key
Value

Samples


Me Library Artists

GET
/lastfm/me/library/artists

Parameters

Query Parameters

page
Type
integer
Default
1
limit
Type
integer
Default
50
refresh
Type
boolean
Default
false

Responses

Successful Response

application/json
JSON
"string"

Playground

Variables
Key
Value

Samples


User Info

GET
/lastfm/users/{username}/info

Parameters

Path Parameters

username*
Type
string
Required

Query Parameters

refresh
Type
boolean
Default
false

Responses

Successful Response

application/json
JSON
"string"

Playground

Variables
Key
Value

Samples


User Top Artists

GET
/lastfm/users/{username}/top-artists

Parameters

Path Parameters

username*
Type
string
Required

Query Parameters

period
Type
string
Default
"overall"
page
Type
integer
Default
1
limit
Type
integer
Default
50
refresh
Type
boolean
Default
false

Responses

Successful Response

application/json
JSON
"string"

Playground

Variables
Key
Value

Samples


User Top Tracks

GET
/lastfm/users/{username}/top-tracks

Parameters

Path Parameters

username*
Type
string
Required

Query Parameters

period
Type
string
Default
"overall"
page
Type
integer
Default
1
limit
Type
integer
Default
50
refresh
Type
boolean
Default
false

Responses

Successful Response

application/json
JSON
"string"

Playground

Variables
Key
Value

Samples


User Top Albums

GET
/lastfm/users/{username}/top-albums

Parameters

Path Parameters

username*
Type
string
Required

Query Parameters

period
Type
string
Default
"overall"
page
Type
integer
Default
1
limit
Type
integer
Default
50
refresh
Type
boolean
Default
false

Responses

Successful Response

application/json
JSON
"string"

Playground

Variables
Key
Value

Samples


User Loved Tracks

GET
/lastfm/users/{username}/loved-tracks

Parameters

Path Parameters

username*
Type
string
Required

Query Parameters

page
Type
integer
Default
1
limit
Type
integer
Default
50
refresh
Type
boolean
Default
false

Responses

Successful Response

application/json
JSON
"string"

Playground

Variables
Key
Value

Samples


User Friends

GET
/lastfm/users/{username}/friends

Parameters

Path Parameters

username*
Type
string
Required

Query Parameters

page
Type
integer
Default
1
limit
Type
integer
Default
50
refresh
Type
boolean
Default
false

Responses

Successful Response

application/json
JSON
"string"

Playground

Variables
Key
Value

Samples


Artist Search

GET
/lastfm/artists/search

Pass-through (not cached) — search results aren't entity records.

Parameters

Query Parameters

q*
Type
string
Required
page
Type
integer
Default
1
limit
Type
integer
Default
30

Responses

Successful Response

application/json
JSON
"string"

Playground

Variables
Key
Value

Samples


Artist Info

GET
/lastfm/artists/{artist}/info

Parameters

Path Parameters

artist*
Type
string
Required

Query Parameters

refresh
Type
boolean
Default
false

Responses

Successful Response

application/json
JSON
"string"

Playground

Variables
Key
Value

Samples


Artist Similar

GET
/lastfm/artists/{artist}/similar

Parameters

Path Parameters

artist*
Type
string
Required

Query Parameters

limit
Type
integer
Default
30
refresh
Type
boolean
Default
false

Responses

Successful Response

application/json
JSON
"string"

Playground

Variables
Key
Value

Samples


Artist Top Albums

GET
/lastfm/artists/{artist}/top-albums

Parameters

Path Parameters

artist*
Type
string
Required

Query Parameters

page
Type
integer
Default
1
limit
Type
integer
Default
50
refresh
Type
boolean
Default
false

Responses

Successful Response

application/json
JSON
"string"

Playground

Variables
Key
Value

Samples


Artist Top Tracks

GET
/lastfm/artists/{artist}/top-tracks

Parameters

Path Parameters

artist*
Type
string
Required

Query Parameters

page
Type
integer
Default
1
limit
Type
integer
Default
50
refresh
Type
boolean
Default
false

Responses

Successful Response

application/json
JSON
"string"

Playground

Variables
Key
Value

Samples


Artist Top Tags

GET
/lastfm/artists/{artist}/top-tags

Parameters

Path Parameters

artist*
Type
string
Required

Query Parameters

refresh
Type
boolean
Default
false

Responses

Successful Response

application/json
JSON
"string"

Playground

Variables
Key
Value

Samples


Artist Correction

GET
/lastfm/artists/{artist}/correction

Pass-through (not cached) — corrections are query-specific.

Parameters

Path Parameters

artist*
Type
string
Required

Responses

Successful Response

application/json
JSON
"string"

Playground

Variables
Key
Value

Samples


Album Search

GET
/lastfm/albums/search

Parameters

Query Parameters

q*
Type
string
Required
page
Type
integer
Default
1
limit
Type
integer
Default
30

Responses

Successful Response

application/json
JSON
"string"

Playground

Variables
Key
Value

Samples


Album Info

GET
/lastfm/albums/{artist}/{album}/info

Parameters

Path Parameters

artist*
Type
string
Required
album*
Type
string
Required

Query Parameters

refresh
Type
boolean
Default
false

Responses

Successful Response

application/json
JSON
"string"

Playground

Variables
Key
Value

Samples


Album Top Tags

GET
/lastfm/albums/{artist}/{album}/top-tags

Parameters

Path Parameters

artist*
Type
string
Required
album*
Type
string
Required

Query Parameters

refresh
Type
boolean
Default
false

Responses

Successful Response

application/json
JSON
"string"

Playground

Variables
Key
Value

Samples


Track Search

GET
/lastfm/tracks/search

Parameters

Query Parameters

q*
Type
string
Required
page
Type
integer
Default
1
limit
Type
integer
Default
30

Responses

Successful Response

application/json
JSON
"string"

Playground

Variables
Key
Value

Samples


Track Info

GET
/lastfm/tracks/{artist}/{track}/info

Parameters

Path Parameters

artist*
Type
string
Required
track*
Type
string
Required

Query Parameters

refresh
Type
boolean
Default
false

Responses

Successful Response

application/json
JSON
"string"

Playground

Variables
Key
Value

Samples


Track Similar

GET
/lastfm/tracks/{artist}/{track}/similar

Parameters

Path Parameters

artist*
Type
string
Required
track*
Type
string
Required

Query Parameters

limit
Type
integer
Default
30
refresh
Type
boolean
Default
false

Responses

Successful Response

application/json
JSON
"string"

Playground

Variables
Key
Value

Samples


Track Top Tags

GET
/lastfm/tracks/{artist}/{track}/top-tags

Parameters

Path Parameters

artist*
Type
string
Required
track*
Type
string
Required

Query Parameters

refresh
Type
boolean
Default
false

Responses

Successful Response

application/json
JSON
"string"

Playground

Variables
Key
Value

Samples


Track Correction

GET
/lastfm/tracks/{artist}/{track}/correction

Parameters

Path Parameters

artist*
Type
string
Required
track*
Type
string
Required

Responses

Successful Response

application/json
JSON
"string"

Playground

Variables
Key
Value

Samples


Lastfm Picker Search

GET
/lastfm/picker/search

Picker-shaped search across artists / albums / tracks.

Returns a list of {external_id, title, subtitle, thumbnail}
objects ready for the LinkSourceModal. external_id is the
canonical LastFM ref shape — lowercased name (artists) or
<artist>::<name> (albums + tracks) — produced by the same
helpers the resolver uses.

Why not consume LastFM's raw search response on the frontend? The
external_id construction has to match the resolver's
:func:lastfm_artist_id/:func:lastfm_album_id/:func:lastfm_track_id
exactly, or the picker's "Link" action would write a ref that no
subsequent lookup finds. Single source of truth → backend.

offset powers the picker's "Load more": LastFM's search methods
paginate by 1-based page, so we translate offset (which the
SPA advances in limit-sized steps) to page = offset // limit + 1.

Parameters

Query Parameters

kind*
Type
string
Required
q*
Type
string
Required
limit
Type
integer
Default
20
offset
Type
integer
Default
0

Responses

Successful Response

application/json
JSON
[
  
{
  
  
"additionalProperties": "string"
  
}
]

Playground

Variables
Key
Value

Samples


Tag Info

GET
/lastfm/tags/{tag}/info

Parameters

Path Parameters

tag*
Type
string
Required

Query Parameters

refresh
Type
boolean
Default
false

Responses

Successful Response

application/json
JSON
"string"

Playground

Variables
Key
Value

Samples


Tag Similar

GET
/lastfm/tags/{tag}/similar

Parameters

Path Parameters

tag*
Type
string
Required

Query Parameters

refresh
Type
boolean
Default
false

Responses

Successful Response

application/json
JSON
"string"

Playground

Variables
Key
Value

Samples


Tag Top Artists

GET
/lastfm/tags/{tag}/top-artists

Parameters

Path Parameters

tag*
Type
string
Required

Query Parameters

page
Type
integer
Default
1
limit
Type
integer
Default
50
refresh
Type
boolean
Default
false

Responses

Successful Response

application/json
JSON
"string"

Playground

Variables
Key
Value

Samples


Tag Top Tracks

GET
/lastfm/tags/{tag}/top-tracks

Parameters

Path Parameters

tag*
Type
string
Required

Query Parameters

page
Type
integer
Default
1
limit
Type
integer
Default
50
refresh
Type
boolean
Default
false

Responses

Successful Response

application/json
JSON
"string"

Playground

Variables
Key
Value

Samples


Tag Top Albums

GET
/lastfm/tags/{tag}/top-albums

Parameters

Path Parameters

tag*
Type
string
Required

Query Parameters

page
Type
integer
Default
1
limit
Type
integer
Default
50
refresh
Type
boolean
Default
false

Responses

Successful Response

application/json
JSON
"string"

Playground

Variables
Key
Value

Samples


Tag Weekly Chart List

GET
/lastfm/tags/{tag}/weekly-chart-list

Parameters

Path Parameters

tag*
Type
string
Required

Query Parameters

refresh
Type
boolean
Default
false

Responses

Successful Response

application/json
JSON
"string"

Playground

Variables
Key
Value

Samples


Chart Top Artists

GET
/lastfm/charts/top-artists

Parameters

Query Parameters

page
Type
integer
Default
1
limit
Type
integer
Default
50
refresh
Type
boolean
Default
false

Responses

Successful Response

application/json
JSON
"string"

Playground

Variables
Key
Value

Samples


Chart Top Tracks

GET
/lastfm/charts/top-tracks

Parameters

Query Parameters

page
Type
integer
Default
1
limit
Type
integer
Default
50
refresh
Type
boolean
Default
false

Responses

Successful Response

application/json
JSON
"string"

Playground

Variables
Key
Value

Samples


Chart Top Tags

GET
/lastfm/charts/top-tags

Parameters

Query Parameters

page
Type
integer
Default
1
limit
Type
integer
Default
50
refresh
Type
boolean
Default
false

Responses

Successful Response

application/json
JSON
"string"

Playground

Variables
Key
Value

Samples


Geo Top Artists

GET
/lastfm/geo/{country}/top-artists

Parameters

Path Parameters

country*
Type
string
Required

Query Parameters

page
Type
integer
Default
1
limit
Type
integer
Default
50
refresh
Type
boolean
Default
false

Responses

Successful Response

application/json
JSON
"string"

Playground

Variables
Key
Value

Samples


Geo Top Tracks

GET
/lastfm/geo/{country}/top-tracks

Parameters

Path Parameters

country*
Type
string
Required

Query Parameters

page
Type
integer
Default
1
limit
Type
integer
Default
50
refresh
Type
boolean
Default
false

Responses

Successful Response

application/json
JSON
"string"

Playground

Variables
Key
Value

Samples


Me Love

POST
/lastfm/me/love

Parameters

Request Body

application/json
JSON
{
  
"artist": "string",
  
"track": "string"
}

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Body

Samples


Me Unlove

POST
/lastfm/me/unlove

Parameters

Request Body

application/json
JSON
{
  
"artist": "string",
  
"track": "string"
}

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Body

Samples


Me Scrobble

POST
/lastfm/me/scrobble

Submit a scrobble to LastFM. The next periodic refresh picks it up.

Parameters

Request Body

application/json
JSON
{
  
"artist": "string",
  
"track": "string",
  
"album": "string",
  
"timestamp": 0
}

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Body

Samples


Me Now Playing

POST
/lastfm/me/now-playing

Parameters

Request Body

application/json
JSON
{
  
"artist": "string",
  
"track": "string",
  
"album": "string",
  
"timestamp": 0
}

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Body

Samples


List Favorite Artists

GET
/lastfm/me/favorites/artists

Parameters

Responses

Successful Response

application/json
JSON
[
  
{
  
  
"additionalProperties": "string"
  
}
]

Playground

Samples


Favorite Artist

POST
/lastfm/me/favorites/artists

Mark an artist as favorite. Auto-fetches the artist into the catalog
if it isn't already cached (so the favorite always has hydration data).

Parameters

Request Body

application/json
JSON
{
  
"artist": "string"
}

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Body

Samples


Unfavorite Artist

DELETE
/lastfm/me/favorites/artists/{target_id}

Parameters

Path Parameters

target_id*
Type
string
Required

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Variables
Key
Value

Samples


List Favorite Albums

GET
/lastfm/me/favorites/albums

Parameters

Responses

Successful Response

application/json
JSON
[
  
{
  
  
"additionalProperties": "string"
  
}
]

Playground

Samples


Favorite Album

POST
/lastfm/me/favorites/albums

Parameters

Request Body

application/json
JSON
{
  
"artist": "string",
  
"album": "string"
}

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Body

Samples


Unfavorite Album

DELETE
/lastfm/me/favorites/albums/{target_id}

Parameters

Path Parameters

target_id*
Type
string
Required

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Variables
Key
Value

Samples


List Favorite Tracks

GET
/lastfm/me/favorites/tracks

Parameters

Responses

Successful Response

application/json
JSON
[
  
{
  
  
"additionalProperties": "string"
  
}
]

Playground

Samples


Favorite Track

POST
/lastfm/me/favorites/tracks

Parameters

Request Body

application/json
JSON
{
  
"artist": "string",
  
"track": "string"
}

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Body

Samples


Unfavorite Track

DELETE
/lastfm/me/favorites/tracks/{target_id}

Parameters

Path Parameters

target_id*
Type
string
Required

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Variables
Key
Value

Samples


List Wishlist

GET
/lastfm/me/albums/wishlist

Parameters

Responses

Successful Response

application/json
JSON
[
  
{
  
  
"additionalProperties": "string"
  
}
]

Playground

Samples


Add To Wishlist

POST
/lastfm/me/albums/wishlist

Parameters

Request Body

application/json
JSON
{
  
"artist": "string",
  
"album": "string"
}

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Body

Samples


Remove From Wishlist

DELETE
/lastfm/me/albums/wishlist/{target_id}

Parameters

Path Parameters

target_id*
Type
string
Required

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Variables
Key
Value

Samples


List Owned

GET
/lastfm/me/albums/owned

Parameters

Responses

Successful Response

application/json
JSON
[
  
{
  
  
"additionalProperties": "string"
  
}
]

Playground

Samples


Mark Owned

POST
/lastfm/me/albums/owned

Mark an album as owned. If it was on the wishlist, this transitions
it (preserving wishlisted_at as history).

Parameters

Request Body

application/json
JSON
{
  
"artist": "string",
  
"album": "string"
}

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Body

Samples


Mark Not Owned

DELETE
/lastfm/me/albums/owned/{target_id}

Parameters

Path Parameters

target_id*
Type
string
Required

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Variables
Key
Value

Samples


Me Artist Stats

GET
/lastfm/me/artists/{artist}/stats

Parameters

Path Parameters

artist*
Type
string
Required

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Variables
Key
Value

Samples


Me Album Stats

GET
/lastfm/me/albums/{artist}/{album}/stats

Parameters

Path Parameters

artist*
Type
string
Required
album*
Type
string
Required

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Variables
Key
Value

Samples


Me Track Stats

GET
/lastfm/me/tracks/{artist}/{track}/stats

Parameters

Path Parameters

artist*
Type
string
Required
track*
Type
string
Required

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Variables
Key
Value

Samples


Me Scrobbles Bulk Import

POST
/lastfm/me/scrobbles/bulk-import

Parameters

Request Body

application/json
JSON
{
  
"from_ts": 0,
  
"to_ts": 0
}

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Body

Samples


Me Scrobbles Bulk Import Current

GET
/lastfm/me/scrobbles/bulk-import/current

Parameters

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Samples


Me Scrobbles Bulk Import History

GET
/lastfm/me/scrobbles/bulk-import/history

Parameters

Query Parameters

limit
Type
integer
Default
20

Responses

Successful Response

application/json
JSON
[
  
{
  
  
"additionalProperties": "string"
  
}
]

Playground

Variables
Key
Value

Samples


Me Scrobbles Bulk Import Cancel

DELETE
/lastfm/me/scrobbles/bulk-import/{task_id}

Parameters

Path Parameters

task_id*
Type
string
Required

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Variables
Key
Value

Samples


Media — Blue Sapphire Software.