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

Raw ↑
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