Spotify · Capability

Spotify Web API — Artists

Spotify Web API — Artists. 9 operations. Lead operation: Get Several Artists. Self-contained Naftiko capability covering one Spotify business surface.

Run with Naftiko SpotifyArtists

What You Can Do

GET
Getmultipleartists — Get Several Artists
/v1/artists
GET
Getanartist — Get Artist
/v1/artists/{id}
GET
Getanartistsalbums — Get Artist's Albums
/v1/artists/{id}/albums
GET
Getanartistsrelatedartists — Get Artist's Related Artists
/v1/artists/{id}/related-artists
GET
Getanartiststoptracks — Get Artist's Top Tracks
/v1/artists/{id}/top-tracks
GET
Getfollowed — Get Followed Artists
/v1/me/following
PUT
Followartistsusers — Follow Artists or Users
/v1/me/following
DELETE
Unfollowartistsusers — Unfollow Artists or Users
/v1/me/following
GET
Checkcurrentuserfollows — Check If User Follows Artists or Users
/v1/me/following/contains

MCP Tools

get-several-artists

Get Several Artists

read-only idempotent
get-artist

Get Artist

read-only idempotent
get-artist-s-albums

Get Artist's Albums

read-only idempotent
get-artist-s-related-artists

Get Artist's Related Artists

read-only idempotent
get-artist-s-top-tracks

Get Artist's Top Tracks

read-only idempotent
get-followed-artists

Get Followed Artists

read-only idempotent
follow-artists-users

Follow Artists or Users

idempotent
unfollow-artists-users

Unfollow Artists or Users

idempotent
check-if-user-follows-artists

Check If User Follows Artists or Users

read-only idempotent

Capability Spec

spotify-artists.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Spotify Web API — Artists
  description: 'Spotify Web API — Artists. 9 operations. Lead operation: Get Several Artists. Self-contained Naftiko capability
    covering one Spotify business surface.'
  tags:
  - Spotify
  - Artists
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    SPOTIFY_API_KEY: SPOTIFY_API_KEY
capability:
  consumes:
  - type: http
    namespace: spotify-artists
    baseUri: https://api.spotify.com/v1
    description: Spotify Web API — Artists business capability. Self-contained, no shared references.
    resources:
    - name: artists
      path: /artists
      operations:
      - name: getmultipleartists
        method: GET
        description: Get Several Artists
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: ids
          in: query
          type: string
          required: true
    - name: artists-id
      path: /artists/{id}
      operations:
      - name: getanartist
        method: GET
        description: Get Artist
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: artists-id-albums
      path: /artists/{id}/albums
      operations:
      - name: getanartistsalbums
        method: GET
        description: Get Artist's Albums
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: limit
          in: query
          type: integer
    - name: artists-id-related-artists
      path: /artists/{id}/related-artists
      operations:
      - name: getanartistsrelatedartists
        method: GET
        description: Get Artist's Related Artists
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: artists-id-top-tracks
      path: /artists/{id}/top-tracks
      operations:
      - name: getanartiststoptracks
        method: GET
        description: Get Artist's Top Tracks
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: me-following
      path: /me/following
      operations:
      - name: getfollowed
        method: GET
        description: Get Followed Artists
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: type
          in: query
          type: string
          required: true
        - name: after
          in: query
          type: string
        - name: limit
          in: query
          type: integer
      - name: followartistsusers
        method: PUT
        description: Follow Artists or Users
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: type
          in: query
          type: string
          required: true
        - name: ids
          in: query
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
      - name: unfollowartistsusers
        method: DELETE
        description: Unfollow Artists or Users
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: type
          in: query
          type: string
          required: true
        - name: ids
          in: query
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: me-following-contains
      path: /me/following/contains
      operations:
      - name: checkcurrentuserfollows
        method: GET
        description: Check If User Follows Artists or Users
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: type
          in: query
          type: string
          required: true
        - name: ids
          in: query
          type: string
          required: true
    authentication:
      type: bearer
      token: '{{env.SPOTIFY_API_KEY}}'
  exposes:
  - type: rest
    namespace: spotify-artists-rest
    port: 8080
    description: REST adapter for Spotify Web API — Artists. One Spectral-compliant resource per consumed operation, prefixed
      with /v1.
    resources:
    - path: /v1/artists
      name: artists
      description: REST surface for artists.
      operations:
      - method: GET
        name: getmultipleartists
        description: Get Several Artists
        call: spotify-artists.getmultipleartists
        with:
          ids: rest.ids
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/artists/{id}
      name: artists-id
      description: REST surface for artists-id.
      operations:
      - method: GET
        name: getanartist
        description: Get Artist
        call: spotify-artists.getanartist
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/artists/{id}/albums
      name: artists-id-albums
      description: REST surface for artists-id-albums.
      operations:
      - method: GET
        name: getanartistsalbums
        description: Get Artist's Albums
        call: spotify-artists.getanartistsalbums
        with:
          limit: rest.limit
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/artists/{id}/related-artists
      name: artists-id-related-artists
      description: REST surface for artists-id-related-artists.
      operations:
      - method: GET
        name: getanartistsrelatedartists
        description: Get Artist's Related Artists
        call: spotify-artists.getanartistsrelatedartists
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/artists/{id}/top-tracks
      name: artists-id-top-tracks
      description: REST surface for artists-id-top-tracks.
      operations:
      - method: GET
        name: getanartiststoptracks
        description: Get Artist's Top Tracks
        call: spotify-artists.getanartiststoptracks
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/me/following
      name: me-following
      description: REST surface for me-following.
      operations:
      - method: GET
        name: getfollowed
        description: Get Followed Artists
        call: spotify-artists.getfollowed
        with:
          type: rest.type
          after: rest.after
          limit: rest.limit
        outputParameters:
        - type: object
          mapping: $.
      - method: PUT
        name: followartistsusers
        description: Follow Artists or Users
        call: spotify-artists.followartistsusers
        with:
          type: rest.type
          ids: rest.ids
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: unfollowartistsusers
        description: Unfollow Artists or Users
        call: spotify-artists.unfollowartistsusers
        with:
          type: rest.type
          ids: rest.ids
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/me/following/contains
      name: me-following-contains
      description: REST surface for me-following-contains.
      operations:
      - method: GET
        name: checkcurrentuserfollows
        description: Check If User Follows Artists or Users
        call: spotify-artists.checkcurrentuserfollows
        with:
          type: rest.type
          ids: rest.ids
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: spotify-artists-mcp
    port: 9090
    transport: http
    description: MCP adapter for Spotify Web API — Artists. One tool per consumed operation, routed inline through this capability's
      consumes block.
    tools:
    - name: get-several-artists
      description: Get Several Artists
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: spotify-artists.getmultipleartists
      with:
        ids: tools.ids
      outputParameters:
      - type: object
        mapping: $.
    - name: get-artist
      description: Get Artist
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: spotify-artists.getanartist
      outputParameters:
      - type: object
        mapping: $.
    - name: get-artist-s-albums
      description: Get Artist's Albums
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: spotify-artists.getanartistsalbums
      with:
        limit: tools.limit
      outputParameters:
      - type: object
        mapping: $.
    - name: get-artist-s-related-artists
      description: Get Artist's Related Artists
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: spotify-artists.getanartistsrelatedartists
      outputParameters:
      - type: object
        mapping: $.
    - name: get-artist-s-top-tracks
      description: Get Artist's Top Tracks
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: spotify-artists.getanartiststoptracks
      outputParameters:
      - type: object
        mapping: $.
    - name: get-followed-artists
      description: Get Followed Artists
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: spotify-artists.getfollowed
      with:
        type: tools.type
        after: tools.after
        limit: tools.limit
      outputParameters:
      - type: object
        mapping: $.
    - name: follow-artists-users
      description: Follow Artists or Users
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: spotify-artists.followartistsusers
      with:
        type: tools.type
        ids: tools.ids
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: unfollow-artists-users
      description: Unfollow Artists or Users
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: spotify-artists.unfollowartistsusers
      with:
        type: tools.type
        ids: tools.ids
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: check-if-user-follows-artists
      description: Check If User Follows Artists or Users
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: spotify-artists.checkcurrentuserfollows
      with:
        type: tools.type
        ids: tools.ids
      outputParameters:
      - type: object
        mapping: $.