Last.fm · Agentic Access
Last.fm Agentic Access
x-agentic-access
generated
Last.fm exposes 59 API operations that an AI agent could call, of which 12 are state-changing ‘acting’ operations. This is a recommended x-agentic-access execution contract — the scope, audience, consequence tier, short-lived token constraints, and escalation each action should carry before it is handed to an autonomous agent.
By consequence: 47 read and 12 write.
Contracts are classified heuristically from the provider’s OpenAPI and refresh on every APIs.io network build; audience is bound per deployment. The model follows Curity’s Access Intelligence (apidays Munich 2026). Browse every provider’s agent contracts at agentic-access.apis.io.
MusicAudioScrobblingRecommendationsChartsPublic APIsAudioScrobbler
Operations: 59
Acting: 12
Human-in-the-loop: 0
Method: generated
By consequence
read 47
write 12
Source
Agentic Access
generated: '2026-07-15'
method: generated
source: openapi/lastfm-openapi-original.yml
description: Recommended x-agentic-access execution contracts, classified heuristically from
the OpenAPI. A governance starting point for exposing this API to AI agents — review and bind
audience per deployment. See research/curity/agentic-governance/.
summary:
operations: 59
by_action_class:
connected: 47
acting: 12
by_consequence:
read: 47
write: 12
human_in_the_loop_required: 0
operations:
- path: /
method: get
operationId: invokeReadMethod
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /
method: post
operationId: invokeWriteMethod
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /?method=album.addTags
method: post
operationId: albumAddTags
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /?method=album.getInfo
method: get
operationId: albumGetInfo
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /?method=album.getTags
method: get
operationId: albumGetTags
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /?method=album.getTopTags
method: get
operationId: albumGetTopTags
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /?method=album.removeTag
method: post
operationId: albumRemoveTag
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /?method=album.search
method: get
operationId: albumSearch
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /?method=artist.addTags
method: post
operationId: artistAddTags
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /?method=artist.getCorrection
method: get
operationId: artistGetCorrection
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /?method=artist.getInfo
method: get
operationId: artistGetInfo
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /?method=artist.getSimilar
method: get
operationId: artistGetSimilar
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /?method=artist.getTags
method: get
operationId: artistGetTags
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /?method=artist.getTopAlbums
method: get
operationId: artistGetTopAlbums
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /?method=artist.getTopTags
method: get
operationId: artistGetTopTags
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /?method=artist.getTopTracks
method: get
operationId: artistGetTopTracks
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /?method=artist.removeTag
method: post
operationId: artistRemoveTag
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /?method=artist.search
method: get
operationId: artistSearch
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /?method=auth.getMobileSession
method: post
operationId: authGetMobileSession
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /?method=auth.getSession
method: get
operationId: authGetSession
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /?method=auth.getToken
method: get
operationId: authGetToken
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /?method=chart.getTopArtists
method: get
operationId: chartGetTopArtists
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /?method=chart.getTopTags
method: get
operationId: chartGetTopTags
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /?method=chart.getTopTracks
method: get
operationId: chartGetTopTracks
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /?method=geo.getTopArtists
method: get
operationId: geoGetTopArtists
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /?method=geo.getTopTracks
method: get
operationId: geoGetTopTracks
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /?method=library.getArtists
method: get
operationId: libraryGetArtists
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /?method=tag.getInfo
method: get
operationId: tagGetInfo
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /?method=tag.getSimilar
method: get
operationId: tagGetSimilar
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /?method=tag.getTopAlbums
method: get
operationId: tagGetTopAlbums
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /?method=tag.getTopArtists
method: get
operationId: tagGetTopArtists
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /?method=tag.getTopTags
method: get
operationId: tagGetTopTags
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /?method=tag.getTopTracks
method: get
operationId: tagGetTopTracks
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /?method=tag.getWeeklyChartList
method: get
operationId: tagGetWeeklyChartList
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /?method=track.addTags
method: post
operationId: trackAddTags
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /?method=track.getCorrection
method: get
operationId: trackGetCorrection
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /?method=track.getInfo
method: get
operationId: trackGetInfo
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /?method=track.getSimilar
method: get
operationId: trackGetSimilar
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /?method=track.getTags
method: get
operationId: trackGetTags
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /?method=track.getTopTags
method: get
operationId: trackGetTopTags
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /?method=track.love
method: post
operationId: trackLove
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /?method=track.removeTag
method: post
operationId: trackRemoveTag
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /?method=track.scrobble
method: post
operationId: trackScrobble
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /?method=track.search
method: get
operationId: trackSearch
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /?method=track.unlove
method: post
operationId: trackUnlove
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /?method=track.updateNowPlaying
method: post
operationId: trackUpdateNowPlaying
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /?method=user.getFriends
method: get
operationId: userGetFriends
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /?method=user.getInfo
method: get
operationId: userGetInfo
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /?method=user.getLovedTracks
method: get
operationId: userGetLovedTracks
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /?method=user.getPersonalTags
method: get
operationId: userGetPersonalTags
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /?method=user.getRecentTracks
method: get
operationId: userGetRecentTracks
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /?method=user.getTopAlbums
method: get
operationId: userGetTopAlbums
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /?method=user.getTopArtists
method: get
operationId: userGetTopArtists
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /?method=user.getTopTags
method: get
operationId: userGetTopTags
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /?method=user.getTopTracks
method: get
operationId: userGetTopTracks
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /?method=user.getWeeklyAlbumChart
method: get
operationId: userGetWeeklyAlbumChart
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /?method=user.getWeeklyArtistChart
method: get
operationId: userGetWeeklyArtistChart
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /?method=user.getWeeklyChartList
method: get
operationId: userGetWeeklyChartList
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /?method=user.getWeeklyTrackChart
method: get
operationId: userGetWeeklyTrackChart
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none