Last.fm
Last.fm is the long-running music recommendation, scrobbling, and music-data service operated by CBS Interactive. Its Web Services 2.0 API (the AudioScrobbler API at ws.audioscrobbler.com/2.0/) exposes catalog data (artists, albums, tracks, tags), charts, geo-listening data, user listening history (recent tracks, top tracks/albums/artists, weekly charts), and the Scrobbling 2.0 write surface (track.scrobble, track.updateNowPlaying, track.love). Every operation is dispatched through a single endpoint via the `method` parameter (e.g. `method=user.getRecentTracks`). Authentication uses an API key for reads and a signed (`api_sig`) session-key flow for writes. The API is free for non-commercial use; commercial use requires a separate agreement via partners@last.fm.
1 APIs
0 Features
MusicAudioScrobblingRecommendationsChartsPublic APIsAudioScrobbler
aid: lastfm
name: Last.fm
description: >-
Last.fm is the long-running music recommendation, scrobbling, and music-data
service operated by CBS Interactive. Its Web Services 2.0 API (the
AudioScrobbler API at ws.audioscrobbler.com/2.0/) exposes catalog data
(artists, albums, tracks, tags), charts, geo-listening data, user listening
history (recent tracks, top tracks/albums/artists, weekly charts), and the
Scrobbling 2.0 write surface (track.scrobble, track.updateNowPlaying,
track.love). Every operation is dispatched through a single endpoint via the
`method` parameter (e.g. `method=user.getRecentTracks`). Authentication uses
an API key for reads and a signed (`api_sig`) session-key flow for writes.
The API is free for non-commercial use; commercial use requires a separate
agreement via partners@last.fm.
type: Index
position: Consuming
access: 3rd-Party
image: https://kinlane-images.s3.amazonaws.com/shared/apis-json/apis-json-logo.jpg
tags:
- Music
- Audio
- Scrobbling
- Recommendations
- Charts
- Public APIs
- AudioScrobbler
created: '2026-05-28'
modified: '2026-05-29'
url: https://raw.githubusercontent.com/api-evangelist/lastfm/main/apis.yml
specificationVersion: '0.20'
x-source: public-apis/public-apis
x-category: Music
x-type: company
x-tier: 3
x-tier-reason: bulk-registered-from-public-apis-then-enriched
apis:
- aid: lastfm:lastfm-web-services-2-0
name: Last.fm Web Services 2.0
description: >-
The AudioScrobbler / Last.fm Web Services 2.0 API. A single method-dispatched
endpoint (`https://ws.audioscrobbler.com/2.0/`) serves all read operations as
GET requests and all authenticated write operations as POST requests. Methods
are organized by package: album, artist, auth, chart, geo, library, tag,
track, user. Default response format is XML; pass `format=json` for JSON.
humanURL: https://www.last.fm/api
baseURL: https://ws.audioscrobbler.com/2.0
tags:
- Album
- Artist
- Auth
- Chart
- Geo
- Library
- Tag
- Track
- User
- Scrobbling
properties:
- type: Documentation
url: https://www.last.fm/api
- type: OpenAPI
url: openapi/lastfm-openapi-original.yml
- type: GettingStarted
url: https://www.last.fm/api/intro
- type: APIReference
url: https://www.last.fm/api/intro
- type: Authentication
url: https://www.last.fm/api/authentication
- type: SignUp
url: https://www.last.fm/api/account/create
- type: RateLimits
url: rate-limits/lastfm-rate-limits.yml
- type: TermsOfService
url: https://www.last.fm/api/tos
- type: Errors
url: https://www.last.fm/api/errorcodes
- type: JSONSchema
url: json-schema/lastfm-album-schema.json
- type: JSONSchema
url: json-schema/lastfm-artist-schema.json
- type: JSONSchema
url: json-schema/lastfm-track-schema.json
- type: JSONSchema
url: json-schema/lastfm-tag-schema.json
- type: JSONSchema
url: json-schema/lastfm-user-schema.json
- type: JSONStructure
url: json-structure/lastfm-album-structure.json
- type: JSONStructure
url: json-structure/lastfm-artist-structure.json
- type: JSONStructure
url: json-structure/lastfm-track-structure.json
- type: JSONLD
url: json-ld/lastfm-context.jsonld
- type: Example
url: examples/lastfm-album-getinfo-example.json
- type: Example
url: examples/lastfm-artist-getinfo-example.json
- type: Example
url: examples/lastfm-track-getinfo-example.json
- type: Example
url: examples/lastfm-chart-gettopartists-example.json
- type: Example
url: examples/lastfm-user-getrecenttracks-example.json
- type: Example
url: examples/lastfm-track-scrobble-example.json
- type: NaftikoCapability
url: capabilities/lastfm-album.yaml
- type: NaftikoCapability
url: capabilities/lastfm-artist.yaml
- type: NaftikoCapability
url: capabilities/lastfm-auth.yaml
- type: NaftikoCapability
url: capabilities/lastfm-chart.yaml
- type: NaftikoCapability
url: capabilities/lastfm-geo.yaml
- type: NaftikoCapability
url: capabilities/lastfm-library.yaml
- type: NaftikoCapability
url: capabilities/lastfm-tag.yaml
- type: NaftikoCapability
url: capabilities/lastfm-track.yaml
- type: NaftikoCapability
url: capabilities/lastfm-user.yaml
- type: NaftikoCapability
url: capabilities/music-discovery.yaml
- type: NaftikoCapability
url: capabilities/music-scrobbling.yaml
features:
- type: MusicCatalog
description: Artist, album, track, and tag metadata for the Last.fm music graph.
- type: Scrobbling
description: Authenticated track.scrobble write surface (Scrobbling 2.0) with batching up to 50 plays per request.
- type: ListeningHistory
description: Per-user recent tracks, loved tracks, weekly charts, and personal tags.
- type: SimilarityGraph
description: Artist-to-artist, track-to-track, and tag-to-tag similarity derived from listening data.
- type: GlobalCharts
description: Top artists, top tracks, and top tags across the entire Last.fm community.
- type: GeoCharts
description: Top artists and tracks by country (geo.getTopArtists / geo.getTopTracks).
- type: TaggingFolksonomy
description: User-applied free-form tags on artists, albums, and tracks; weighted by usage.
- type: NowPlaying
description: Lightweight currently-listening signal that does not affect charts.
- type: Corrections
description: Canonical name resolution for misspelled artist/track inputs.
- type: WeeklyCharts
description: Per-user, per-tag, and global week-bounded chart slices addressable by Unix timestamp range.
useCases:
- type: MusicRecommendation
description: Build recommendation engines using artist.getSimilar, track.getSimilar, and tag-based pivots.
- type: ListenLogging
description: Scrobble plays from desktop, mobile, or embedded players to a user's Last.fm profile.
- type: TasteProfiling
description: Aggregate user.getTopArtists/Albums/Tracks across `overall|7day|1month|3month|6month|12month` periods to model taste.
- type: MusicDiscoveryDashboards
description: Compose chart, geo, and tag endpoints into trend/discovery dashboards.
- type: PlaylistEnrichment
description: Augment a playlist UI with Last.fm metadata, top tags, similar artists, and bio content.
- type: ResearchAndAcademia
description: Use anonymized listening data for music information retrieval (MIR) research — under a commercial use agreement.
- type: NowPlayingWidgets
description: Public "now playing" / recent-track widgets from user.getRecentTracks.
integrations:
- type: MusicBrainz
description: Last.fm accepts MusicBrainz IDs (mbid) in place of artist/album/track name parameters.
- type: Spotify
description: Common pairing — many third-party tools sync Spotify playback to Last.fm scrobbles.
- type: ListenBrainz
description: ListenBrainz publishes a Last.fm-compatible API surface for portable scrobbling.
common:
- type: PostmanWorkspace
url: https://www.postman.com/kinlaneapi/lastfm/overview
- type: ArazzoWorkflows
url: arazzo/
workflows:
- url: arazzo/lastfm-album-genre-profile-workflow.yml
name: Last.fm Album Genre Profile
summary: Search for an album, resolve its full info and tracklist, then surface the community tags that define its genre.
- url: arazzo/lastfm-artist-discovery-workflow.yml
name: Last.fm Artist Discovery
summary: Search for an artist by name, resolve full metadata, then surface their top tracks and similar artists.
- url: arazzo/lastfm-chart-to-album-workflow.yml
name: Last.fm Chart To Album Deep Dive
summary: Take the
- url: arazzo/lastfm-genre-artist-explorer-workflow.yml
name: Last.fm Genre Artist Explorer
summary: Take a genre tag's top artist, branch into similar artists, and pull that artist's top tracks.
- url: arazzo/lastfm-geo-artist-spotlight-workflow.yml
name: Last.fm Geo Artist Spotlight
summary: Find the top artist in a country, resolve their full profile, and list their top albums.
- url: arazzo/lastfm-loved-tracks-insight-workflow.yml
name: Last.fm Loved Tracks Insight
summary: Read a user's loved tracks, resolve the latest one's full info, and surface the community tags that describe it.
- url: arazzo/lastfm-now-playing-context-workflow.yml
name: Last.fm Now Playing Context
summary: Read a user's most recent track, resolve its full info, and surface the community tags that describe it.
- url: arazzo/lastfm-tag-to-track-workflow.yml
name: Last.fm Tag To Track Deep Dive
summary: Resolve a tag's metadata, pull its top tracks, and fetch full info for the leading track.
- url: arazzo/lastfm-track-radio-workflow.yml
name: Last.fm Track Radio Seed
summary: "Search for a track, resolve its full info, and build a similar-tracks radio seed \u2014 branching when no match is found."
- url: arazzo/lastfm-user-taste-profile-workflow.yml
name: Last.fm User Taste Profile
summary: Read a user's profile, find their top artist for a period, and surface that artist's top tracks.
- type: Website
url: https://www.last.fm
- type: DeveloperPortal
url: https://www.last.fm/api
- type: Documentation
url: https://www.last.fm/api
- type: GettingStarted
url: https://www.last.fm/api/intro
- type: APIReference
url: https://www.last.fm/api/intro
- type: Authentication
url: https://www.last.fm/api/authentication
- type: SignUp
url: https://www.last.fm/api/account/create
- type: TermsOfService
url: https://www.last.fm/api/tos
- type: PrivacyPolicy
url: https://www.last.fm/legal/privacy
- type: Errors
url: https://www.last.fm/api/errorcodes
- type: Support
url: https://support.last.fm
- type: Contact
url: mailto:partners@last.fm
- type: GitHubOrganization
url: https://github.com/lastfm
- type: Pricing
url: plans/lastfm-plans-pricing.yml
- type: RateLimits
url: rate-limits/lastfm-rate-limits.yml
- type: SpectralRules
url: rules/lastfm-rules.yml
- type: Vocabulary
url: vocabulary/lastfm-vocabulary.yml
- type: JSONLD
url: json-ld/lastfm-context.jsonld
- type: PublicAPIsListing
url: https://github.com/public-apis/public-apis
- type: SDK
url: https://github.com/inflatablefriends/lastfm
title: Inflatable.Lastfm (.NET / NuGet) — portable C# client
- type: SDK
url: https://github.com/feross/last-fm
title: feross/last-fm (JavaScript) — simple public-data client
- type: SDK
url: https://github.com/dandelionmood/php-lastfm
title: dandelionmood/php-lastfm (PHP) — dead-simple wrapper
- type: SDK
url: https://github.com/barryvanveen/lastfm
title: barryvanveen/lastfm (PHP + Laravel service provider)
- type: SDK
url: https://github.com/gordonbisnor/lastfm
title: gordonbisnor/lastfm (Ruby) — Rails plugin
- type: SDK
url: https://github.com/codegram/lastfm
title: codegram/lastfm (Ruby) — broad method coverage
- type: SDK
url: https://github.com/theorangewill/pylastfmapi
title: theorangewill/pylastfmapi (Python)
- type: SDK
url: https://github.com/jrichocean/Elixirfm
title: jrichocean/Elixirfm (Elixir)
- type: SDK
url: https://github.com/mihaiolteanu/lastfm
title: mihaiolteanu/lastfm (Common Lisp)
- type: SDK
url: https://github.com/supki/liblastfm
title: supki/liblastfm (Haskell)
- type: SDK
url: https://github.com/Nebulino/Scrobblenaut
title: Nebulino/Scrobblenaut (Dart)
- type: SDK
url: https://github.com/SHOEGAZEssb/Shoegaze.LastFM
title: SHOEGAZEssb/Shoegaze.LastFM (modern C#)
- type: SDK
url: https://github.com/mannuelf/lastfm-nodejs-client
title: mannuelf/lastfm-nodejs-client (TypeScript / Node.js)
- type: SDK
url: https://github.com/michaellavelle/spring-social-lastfm
title: michaellavelle/spring-social-lastfm (Java / Spring Social)
- type: Tools
url: https://github.com/tfmart/ScrobblerContext
title: ScrobblerContext — Last.fm MCP server (Swift, stdio MCP transport, search/library/scrobble)
- type: Tools
url: https://github.com/rianvdm/lastfm-mcp
title: lastfm-mcp — Cloudflare Workers MCP server with OAuth 2.0 for AI access to Last.fm listening data
maintainers:
- FN: Kin Lane
email: kin@apievangelist.com