Last.fm · Capability

Last.fm API — Artist

Last.fm API — Artist package. 10 operations covering artist metadata, similarity, top albums/tracks, tagging, corrections, and search.

Run with Naftiko Last.fmArtistMusic

Capability Spec

lastfm-artist.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Last.fm API — Artist
  description: 'Last.fm API — Artist package. 10 operations covering artist metadata, similarity, top albums/tracks, tagging, corrections, and search.'
  tags:
    - Last.fm
    - Artist
    - 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-artist
      baseUri: https://ws.audioscrobbler.com/2.0
      description: Last.fm artist business capability.
      resources:
        - name: artist-getinfo
          path: /
          operations:
            - name: artistGetInfo
              method: GET
              description: Get artist metadata, bio, stats, similar, and tags.
              outputRawFormat: json
              inputParameters:
                - { name: method, in: query, type: string, value: artist.getInfo }
                - { name: api_key, in: query, type: string }
                - { name: format, in: query, type: string, value: json }
                - { name: artist, in: query, type: string }
                - { name: mbid, in: query, type: string }
                - { name: username, in: query, type: string }
              outputParameters:
                - { name: result, type: object, value: $.artist }
        - name: artist-getsimilar
          path: /
          operations:
            - name: artistGetSimilar
              method: GET
              description: Get artists similar to this one.
              outputRawFormat: json
              inputParameters:
                - { name: method, in: query, type: string, value: artist.getSimilar }
                - { name: api_key, in: query, type: string }
                - { name: format, in: query, type: string, value: json }
                - { name: artist, in: query, type: string }
                - { name: limit, in: query, type: integer }
              outputParameters:
                - { name: result, type: object, value: $.similarartists }
        - name: artist-topalbums
          path: /
          operations:
            - name: artistGetTopAlbums
              method: GET
              description: Get the top albums for an artist.
              outputRawFormat: json
              inputParameters:
                - { name: method, in: query, type: string, value: artist.getTopAlbums }
                - { name: api_key, in: query, type: string }
                - { name: format, in: query, type: string, value: json }
                - { name: artist, in: query, type: string }
                - { name: limit, in: query, type: integer }
              outputParameters:
                - { name: result, type: object, value: $.topalbums }
        - name: artist-toptracks
          path: /
          operations:
            - name: artistGetTopTracks
              method: GET
              description: Get the top tracks for an artist.
              outputRawFormat: json
              inputParameters:
                - { name: method, in: query, type: string, value: artist.getTopTracks }
                - { name: api_key, in: query, type: string }
                - { name: format, in: query, type: string, value: json }
                - { name: artist, in: query, type: string }
                - { name: limit, in: query, type: integer }
              outputParameters:
                - { name: result, type: object, value: $.toptracks }
        - name: artist-toptags
          path: /
          operations:
            - name: artistGetTopTags
              method: GET
              description: Get the top tags for an artist.
              outputRawFormat: json
              inputParameters:
                - { name: method, in: query, type: string, value: artist.getTopTags }
                - { name: api_key, in: query, type: string }
                - { name: format, in: query, type: string, value: json }
                - { name: artist, in: query, type: string }
              outputParameters:
                - { name: result, type: object, value: $.toptags }
        - name: artist-correction
          path: /
          operations:
            - name: artistGetCorrection
              method: GET
              description: Get canonical artist correction.
              outputRawFormat: json
              inputParameters:
                - { name: method, in: query, type: string, value: artist.getCorrection }
                - { name: api_key, in: query, type: string }
                - { name: format, in: query, type: string, value: json }
                - { name: artist, in: query, type: string }
              outputParameters:
                - { name: result, type: object, value: $.corrections }
        - name: artist-search
          path: /
          operations:
            - name: artistSearch
              method: GET
              description: Search for artists by name.
              outputRawFormat: json
              inputParameters:
                - { name: method, in: query, type: string, value: artist.search }
                - { name: api_key, in: query, type: string }
                - { name: format, in: query, type: string, value: json }
                - { name: artist, in: query, type: string }
                - { name: limit, in: query, type: integer }
              outputParameters:
                - { name: result, type: object, value: $.results }
        - name: artist-usertags
          path: /
          operations:
            - name: artistGetTags
              method: GET
              description: Get user-applied tags for an artist.
              outputRawFormat: json
              inputParameters:
                - { name: method, in: query, type: string, value: artist.getTags }
                - { name: api_key, in: query, type: string }
                - { name: format, in: query, type: string, value: json }
                - { name: artist, in: query, type: string }
                - { name: user, in: query, type: string }
              outputParameters:
                - { name: result, type: object, value: $.tags }
        - name: artist-addtags
          path: /
          operations:
            - name: artistAddTags
              method: POST
              description: Tag an artist (authenticated).
              outputRawFormat: json
              inputParameters:
                - { name: method, in: formData, type: string, value: artist.addTags }
                - { name: api_key, in: formData, type: string }
                - { name: artist, 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: artist-removetag
          path: /
          operations:
            - name: artistRemoveTag
              method: POST
              description: Remove a tag from an artist (authenticated).
              outputRawFormat: json
              inputParameters:
                - { name: method, in: formData, type: string, value: artist.removeTag }
                - { name: api_key, in: formData, type: string }
                - { name: artist, 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 }