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 }