Last.fm · Capability

Last.fm API — Album

Last.fm API — Album package. 6 operations covering album metadata, search, tagging, and top tags. All methods dispatch to ws.audioscrobbler.com/2.0/ via the `method` parameter.

Run with Naftiko Last.fmAlbumMusic

Capability Spec

lastfm-album.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Last.fm API — Album
  description: 'Last.fm API — Album package. 6 operations covering album metadata, search, tagging, and top tags. All methods dispatch to ws.audioscrobbler.com/2.0/ via the `method` parameter.'
  tags:
    - Last.fm
    - Album
    - Music
  created: '2026-05-29'
  modified: '2026-05-29'
binds:
  - namespace: env
    keys:
      LASTFM_API_KEY: LASTFM_API_KEY
      LASTFM_SHARED_SECRET: LASTFM_SHARED_SECRET
      LASTFM_SESSION_KEY: LASTFM_SESSION_KEY
capability:
  consumes:
    - type: http
      namespace: lastfm-album
      baseUri: https://ws.audioscrobbler.com/2.0
      description: Last.fm album business capability.
      resources:
        - name: album-getinfo
          path: /
          operations:
            - name: albumGetInfo
              method: GET
              description: Get album metadata and tracklist.
              outputRawFormat: json
              inputParameters:
                - { name: method, in: query, type: string, value: album.getInfo }
                - { name: api_key, in: query, type: string }
                - { name: format, in: query, type: string, value: json }
                - { name: artist, in: query, type: string }
                - { name: album, in: query, type: string }
                - { name: mbid, in: query, type: string }
                - { name: username, in: query, type: string }
              outputParameters:
                - { name: result, type: object, value: $.album }
        - name: album-search
          path: /
          operations:
            - name: albumSearch
              method: GET
              description: Search for albums by name.
              outputRawFormat: json
              inputParameters:
                - { name: method, in: query, type: string, value: album.search }
                - { name: api_key, in: query, type: string }
                - { name: format, in: query, type: string, value: json }
                - { name: album, in: query, type: string }
                - { name: limit, in: query, type: integer }
              outputParameters:
                - { name: result, type: object, value: $.results }
        - name: album-toptags
          path: /
          operations:
            - name: albumGetTopTags
              method: GET
              description: Get top tags for an album.
              outputRawFormat: json
              inputParameters:
                - { name: method, in: query, type: string, value: album.getTopTags }
                - { name: api_key, in: query, type: string }
                - { name: format, in: query, type: string, value: json }
                - { name: artist, in: query, type: string }
                - { name: album, in: query, type: string }
              outputParameters:
                - { name: result, type: object, value: $.toptags }
        - name: album-usertags
          path: /
          operations:
            - name: albumGetTags
              method: GET
              description: Get a user's tags for an album.
              outputRawFormat: json
              inputParameters:
                - { name: method, in: query, type: string, value: album.getTags }
                - { name: api_key, in: query, type: string }
                - { name: format, in: query, type: string, value: json }
                - { name: artist, in: query, type: string }
                - { name: album, in: query, type: string }
                - { name: user, in: query, type: string }
              outputParameters:
                - { name: result, type: object, value: $.tags }
        - name: album-addtags
          path: /
          operations:
            - name: albumAddTags
              method: POST
              description: Add tags to an album (authenticated).
              outputRawFormat: json
              inputParameters:
                - { name: method, in: formData, type: string, value: album.addTags }
                - { name: api_key, in: formData, type: string }
                - { name: artist, in: formData, type: string }
                - { name: album, in: formData, type: string }
                - { name: tags, in: formData, type: string }
                - { name: sk, in: formData, type: string }
                - { name: api_sig, in: formData, type: string }
              outputParameters:
                - { name: status, type: string, value: $.status }
        - name: album-removetag
          path: /
          operations:
            - name: albumRemoveTag
              method: POST
              description: Remove a tag from an album (authenticated).
              outputRawFormat: json
              inputParameters:
                - { name: method, in: formData, type: string, value: album.removeTag }
                - { name: api_key, in: formData, type: string }
                - { name: artist, in: formData, type: string }
                - { name: album, in: formData, type: string }
                - { name: tag, in: formData, type: string }
                - { name: sk, in: formData, type: string }
                - { name: api_sig, in: formData, type: string }
              outputParameters:
                - { name: status, type: string, value: $.status }