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 }