Last.fm · Capability
Last.fm API — User
Last.fm API — User package. 13 operations covering profile data, friends, listening history, top entities, and weekly charts.
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: Last.fm API — User
description: 'Last.fm API — User package. 13 operations covering profile data, friends, listening history, top entities, and weekly charts.'
tags:
- Last.fm
- User
- Music
created: '2026-05-29'
modified: '2026-05-29'
binds:
- namespace: env
keys:
LASTFM_API_KEY: LASTFM_API_KEY
capability:
consumes:
- type: http
namespace: lastfm-user
baseUri: https://ws.audioscrobbler.com/2.0
description: Last.fm user listening data capability.
resources:
- name: user-getinfo
path: /
operations:
- name: userGetInfo
method: GET
description: Get profile information for a user.
outputRawFormat: json
inputParameters:
- { name: method, in: query, type: string, value: user.getInfo }
- { name: api_key, in: query, type: string }
- { name: format, in: query, type: string, value: json }
- { name: user, in: query, type: string }
outputParameters:
- { name: result, type: object, value: $.user }
- name: user-getfriends
path: /
operations:
- name: userGetFriends
method: GET
description: Get a user's friends.
outputRawFormat: json
inputParameters:
- { name: method, in: query, type: string, value: user.getFriends }
- { name: api_key, in: query, type: string }
- { name: format, in: query, type: string, value: json }
- { name: user, in: query, type: string }
- { name: limit, in: query, type: integer }
outputParameters:
- { name: result, type: object, value: $.friends }
- name: user-recenttracks
path: /
operations:
- name: userGetRecentTracks
method: GET
description: Get a user's recent listening history.
outputRawFormat: json
inputParameters:
- { name: method, in: query, type: string, value: user.getRecentTracks }
- { name: api_key, in: query, type: string }
- { name: format, in: query, type: string, value: json }
- { name: user, in: query, type: string }
- { name: limit, in: query, type: integer }
- { name: from, in: query, type: integer }
- { name: to, in: query, type: integer }
- { name: extended, in: query, type: integer }
outputParameters:
- { name: result, type: object, value: $.recenttracks }
- name: user-lovedtracks
path: /
operations:
- name: userGetLovedTracks
method: GET
description: Get the tracks a user has loved.
outputRawFormat: json
inputParameters:
- { name: method, in: query, type: string, value: user.getLovedTracks }
- { name: api_key, in: query, type: string }
- { name: format, in: query, type: string, value: json }
- { name: user, in: query, type: string }
- { name: limit, in: query, type: integer }
outputParameters:
- { name: result, type: object, value: $.lovedtracks }
- name: user-topartists
path: /
operations:
- name: userGetTopArtists
method: GET
description: Get top artists for a user over a period.
outputRawFormat: json
inputParameters:
- { name: method, in: query, type: string, value: user.getTopArtists }
- { name: api_key, in: query, type: string }
- { name: format, in: query, type: string, value: json }
- { name: user, in: query, type: string }
- { name: period, in: query, type: string }
- { name: limit, in: query, type: integer }
outputParameters:
- { name: result, type: object, value: $.topartists }
- name: user-topalbums
path: /
operations:
- name: userGetTopAlbums
method: GET
description: Get top albums for a user over a period.
outputRawFormat: json
inputParameters:
- { name: method, in: query, type: string, value: user.getTopAlbums }
- { name: api_key, in: query, type: string }
- { name: format, in: query, type: string, value: json }
- { name: user, in: query, type: string }
- { name: period, in: query, type: string }
- { name: limit, in: query, type: integer }
outputParameters:
- { name: result, type: object, value: $.topalbums }
- name: user-toptracks
path: /
operations:
- name: userGetTopTracks
method: GET
description: Get top tracks for a user over a period.
outputRawFormat: json
inputParameters:
- { name: method, in: query, type: string, value: user.getTopTracks }
- { name: api_key, in: query, type: string }
- { name: format, in: query, type: string, value: json }
- { name: user, in: query, type: string }
- { name: period, in: query, type: string }
- { name: limit, in: query, type: integer }
outputParameters:
- { name: result, type: object, value: $.toptracks }
- name: user-toptags
path: /
operations:
- name: userGetTopTags
method: GET
description: Get the top tags used by a user.
outputRawFormat: json
inputParameters:
- { name: method, in: query, type: string, value: user.getTopTags }
- { name: api_key, in: query, type: string }
- { name: format, in: query, type: string, value: json }
- { name: user, in: query, type: string }
outputParameters:
- { name: result, type: object, value: $.toptags }
- name: user-personaltags
path: /
operations:
- name: userGetPersonalTags
method: GET
description: Get a user's personal tags applied to a specific tag scope.
outputRawFormat: json
inputParameters:
- { name: method, in: query, type: string, value: user.getPersonalTags }
- { name: api_key, in: query, type: string }
- { name: format, in: query, type: string, value: json }
- { name: user, in: query, type: string }
- { name: tag, in: query, type: string }
- { name: taggingtype, in: query, type: string }
outputParameters:
- { name: result, type: object, value: $.taggings }
- name: user-weeklyalbumchart
path: /
operations:
- name: userGetWeeklyAlbumChart
method: GET
description: Get a user's weekly album chart.
outputRawFormat: json
inputParameters:
- { name: method, in: query, type: string, value: user.getWeeklyAlbumChart }
- { name: api_key, in: query, type: string }
- { name: format, in: query, type: string, value: json }
- { name: user, in: query, type: string }
- { name: from, in: query, type: integer }
- { name: to, in: query, type: integer }
outputParameters:
- { name: result, type: object, value: $.weeklyalbumchart }
- name: user-weeklyartistchart
path: /
operations:
- name: userGetWeeklyArtistChart
method: GET
description: Get a user's weekly artist chart.
outputRawFormat: json
inputParameters:
- { name: method, in: query, type: string, value: user.getWeeklyArtistChart }
- { name: api_key, in: query, type: string }
- { name: format, in: query, type: string, value: json }
- { name: user, in: query, type: string }
- { name: from, in: query, type: integer }
- { name: to, in: query, type: integer }
outputParameters:
- { name: result, type: object, value: $.weeklyartistchart }
- name: user-weeklytrackchart
path: /
operations:
- name: userGetWeeklyTrackChart
method: GET
description: Get a user's weekly track chart.
outputRawFormat: json
inputParameters:
- { name: method, in: query, type: string, value: user.getWeeklyTrackChart }
- { name: api_key, in: query, type: string }
- { name: format, in: query, type: string, value: json }
- { name: user, in: query, type: string }
- { name: from, in: query, type: integer }
- { name: to, in: query, type: integer }
outputParameters:
- { name: result, type: object, value: $.weeklytrackchart }
- name: user-weeklychartlist
path: /
operations:
- name: userGetWeeklyChartList
method: GET
description: Get a list of available weekly chart date ranges for a user.
outputRawFormat: json
inputParameters:
- { name: method, in: query, type: string, value: user.getWeeklyChartList }
- { name: api_key, in: query, type: string }
- { name: format, in: query, type: string, value: json }
- { name: user, in: query, type: string }
outputParameters:
- { name: result, type: object, value: $.weeklychartlist }