Songstats · Capability

Songstats Enterprise API — Artists

Songstats Enterprise API — Artists. 14 operations. Lead operation: Get Artist Activities. Self-contained Naftiko capability covering one Songstats business surface.

Run with Naftiko SongstatsArtists

What You Can Do

GET
Getartistactivities — Get Artist Activities
/v1/artists/activities
GET
Getartistaudience — Get Artist Audience
/v1/artists/audience
GET
Getartistaudiencedetails — Get Artist Audience Details
/v1/artists/audience/details
GET
Getartistcatalog — Get Artist Catalog
/v1/artists/catalog
GET
Getartisthistoricstats — Get Artist Historic Stats
/v1/artists/historic-stats
GET
Getartistinfo — Get Artist Info
/v1/artists/info
POST
Addartistlinkrequest — Add Artist Link Request
/v1/artists/link-request
DELETE
Removeartistlinkrequest — Remove Artist Link Request
/v1/artists/link-request
GET
Searchartists — Search Artists
/v1/artists/search
GET
Getartistcurrentstats — Get Artist Current Stats
/v1/artists/stats
GET
Getartisttopplaylists — Get Artist Top Playlists
/v1/artists/top-playlists
GET
Getartisttoptracks — Get Artist Top Tracks
/v1/artists/top-tracks
POST
Addartisttrackrequest — Add Artist Track Request
/v1/artists/track-request
DELETE
Removeartisttrackrequest — Remove Artist Track Request
/v1/artists/track-request

MCP Tools

get-artist-activities

Get Artist Activities

read-only idempotent
get-artist-audience

Get Artist Audience

read-only idempotent
get-artist-audience-details

Get Artist Audience Details

read-only idempotent
get-artist-catalog

Get Artist Catalog

read-only idempotent
get-artist-historic-stats

Get Artist Historic Stats

read-only idempotent
get-artist-info

Get Artist Info

read-only idempotent
add-artist-link-request

Add Artist Link Request

remove-artist-link-request

Remove Artist Link Request

idempotent
search-artists

Search Artists

read-only idempotent
get-artist-current-stats

Get Artist Current Stats

read-only idempotent
get-artist-top-playlists

Get Artist Top Playlists

read-only idempotent
get-artist-top-tracks

Get Artist Top Tracks

read-only idempotent
add-artist-track-request

Add Artist Track Request

remove-artist-track-request

Remove Artist Track Request

idempotent

Capability Spec

songstats-artists.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Songstats Enterprise API — Artists
  description: 'Songstats Enterprise API — Artists. 14 operations. Lead operation: Get Artist Activities. Self-contained Naftiko
    capability covering one Songstats business surface.'
  tags:
  - Songstats
  - Artists
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    SONGSTATS_API_KEY: SONGSTATS_API_KEY
capability:
  consumes:
  - type: http
    namespace: songstats-artists
    baseUri: https://api.songstats.com/enterprise/v1
    description: Songstats Enterprise API — Artists business capability. Self-contained, no shared references.
    resources:
    - name: artists-activities
      path: /artists/activities
      operations:
      - name: getartistactivities
        method: GET
        description: Get Artist Activities
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: songstats_artist_id
          in: query
          type: string
          description: Songstats artist ID
          required: true
    - name: artists-audience
      path: /artists/audience
      operations:
      - name: getartistaudience
        method: GET
        description: Get Artist Audience
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: songstats_artist_id
          in: query
          type: string
          description: Songstats artist ID
          required: true
        - name: source
          in: query
          type: string
          description: Streaming platform source filter
    - name: artists-audience-details
      path: /artists/audience/details
      operations:
      - name: getartistaudiencedetails
        method: GET
        description: Get Artist Audience Details
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: songstats_artist_id
          in: query
          type: string
          description: Songstats artist ID
          required: true
        - name: source
          in: query
          type: string
          description: Streaming platform source filter
        - name: country_code
          in: query
          type: string
          description: ISO 3166-1 alpha-2 country code
          required: true
    - name: artists-catalog
      path: /artists/catalog
      operations:
      - name: getartistcatalog
        method: GET
        description: Get Artist Catalog
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: songstats_artist_id
          in: query
          type: string
          description: Songstats artist ID
          required: true
    - name: artists-historic_stats
      path: /artists/historic_stats
      operations:
      - name: getartisthistoricstats
        method: GET
        description: Get Artist Historic Stats
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: songstats_artist_id
          in: query
          type: string
          description: Songstats artist ID
          required: true
        - name: source
          in: query
          type: string
          description: Streaming platform source filter
        - name: start_date
          in: query
          type: string
          description: Start date for historical data
        - name: end_date
          in: query
          type: string
          description: End date for historical data
    - name: artists-info
      path: /artists/info
      operations:
      - name: getartistinfo
        method: GET
        description: Get Artist Info
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: songstats_artist_id
          in: query
          type: string
          description: Songstats artist ID
        - name: spotify_artist_id
          in: query
          type: string
          description: Spotify artist ID
        - name: apple_music_artist_id
          in: query
          type: string
          description: Apple Music artist ID
    - name: artists-link_request
      path: /artists/link_request
      operations:
      - name: addartistlinkrequest
        method: POST
        description: Add Artist Link Request
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: removeartistlinkrequest
        method: DELETE
        description: Remove Artist Link Request
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: songstats_artist_id
          in: query
          type: string
          required: true
        - name: link
          in: query
          type: string
          required: true
    - name: artists-search
      path: /artists/search
      operations:
      - name: searchartists
        method: GET
        description: Search Artists
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: q
          in: query
          type: string
          description: Search query
          required: true
    - name: artists-stats
      path: /artists/stats
      operations:
      - name: getartistcurrentstats
        method: GET
        description: Get Artist Current Stats
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: songstats_artist_id
          in: query
          type: string
          description: Songstats artist ID
          required: true
        - name: source
          in: query
          type: string
          description: Streaming platform source filter
    - name: artists-top_playlists
      path: /artists/top_playlists
      operations:
      - name: getartisttopplaylists
        method: GET
        description: Get Artist Top Playlists
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: songstats_artist_id
          in: query
          type: string
          description: Songstats artist ID
          required: true
        - name: source
          in: query
          type: string
          description: Streaming platform source filter
    - name: artists-top_tracks
      path: /artists/top_tracks
      operations:
      - name: getartisttoptracks
        method: GET
        description: Get Artist Top Tracks
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: songstats_artist_id
          in: query
          type: string
          description: Songstats artist ID
          required: true
        - name: source
          in: query
          type: string
          description: Streaming platform source filter
    - name: artists-track_request
      path: /artists/track_request
      operations:
      - name: addartisttrackrequest
        method: POST
        description: Add Artist Track Request
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: removeartisttrackrequest
        method: DELETE
        description: Remove Artist Track Request
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: songstats_artist_id
          in: query
          type: string
          required: true
        - name: songstats_track_id
          in: query
          type: string
          required: true
    authentication:
      type: apikey
      key: apikey
      value: '{{env.SONGSTATS_API_KEY}}'
      placement: header
  exposes:
  - type: rest
    namespace: songstats-artists-rest
    port: 8080
    description: REST adapter for Songstats Enterprise API — Artists. One Spectral-compliant resource per consumed operation,
      prefixed with /v1.
    resources:
    - path: /v1/artists/activities
      name: artists-activities
      description: REST surface for artists-activities.
      operations:
      - method: GET
        name: getartistactivities
        description: Get Artist Activities
        call: songstats-artists.getartistactivities
        with:
          songstats_artist_id: rest.songstats_artist_id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/artists/audience
      name: artists-audience
      description: REST surface for artists-audience.
      operations:
      - method: GET
        name: getartistaudience
        description: Get Artist Audience
        call: songstats-artists.getartistaudience
        with:
          songstats_artist_id: rest.songstats_artist_id
          source: rest.source
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/artists/audience/details
      name: artists-audience-details
      description: REST surface for artists-audience-details.
      operations:
      - method: GET
        name: getartistaudiencedetails
        description: Get Artist Audience Details
        call: songstats-artists.getartistaudiencedetails
        with:
          songstats_artist_id: rest.songstats_artist_id
          source: rest.source
          country_code: rest.country_code
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/artists/catalog
      name: artists-catalog
      description: REST surface for artists-catalog.
      operations:
      - method: GET
        name: getartistcatalog
        description: Get Artist Catalog
        call: songstats-artists.getartistcatalog
        with:
          songstats_artist_id: rest.songstats_artist_id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/artists/historic-stats
      name: artists-historic-stats
      description: REST surface for artists-historic_stats.
      operations:
      - method: GET
        name: getartisthistoricstats
        description: Get Artist Historic Stats
        call: songstats-artists.getartisthistoricstats
        with:
          songstats_artist_id: rest.songstats_artist_id
          source: rest.source
          start_date: rest.start_date
          end_date: rest.end_date
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/artists/info
      name: artists-info
      description: REST surface for artists-info.
      operations:
      - method: GET
        name: getartistinfo
        description: Get Artist Info
        call: songstats-artists.getartistinfo
        with:
          songstats_artist_id: rest.songstats_artist_id
          spotify_artist_id: rest.spotify_artist_id
          apple_music_artist_id: rest.apple_music_artist_id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/artists/link-request
      name: artists-link-request
      description: REST surface for artists-link_request.
      operations:
      - method: POST
        name: addartistlinkrequest
        description: Add Artist Link Request
        call: songstats-artists.addartistlinkrequest
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: removeartistlinkrequest
        description: Remove Artist Link Request
        call: songstats-artists.removeartistlinkrequest
        with:
          songstats_artist_id: rest.songstats_artist_id
          link: rest.link
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/artists/search
      name: artists-search
      description: REST surface for artists-search.
      operations:
      - method: GET
        name: searchartists
        description: Search Artists
        call: songstats-artists.searchartists
        with:
          q: rest.q
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/artists/stats
      name: artists-stats
      description: REST surface for artists-stats.
      operations:
      - method: GET
        name: getartistcurrentstats
        description: Get Artist Current Stats
        call: songstats-artists.getartistcurrentstats
        with:
          songstats_artist_id: rest.songstats_artist_id
          source: rest.source
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/artists/top-playlists
      name: artists-top-playlists
      description: REST surface for artists-top_playlists.
      operations:
      - method: GET
        name: getartisttopplaylists
        description: Get Artist Top Playlists
        call: songstats-artists.getartisttopplaylists
        with:
          songstats_artist_id: rest.songstats_artist_id
          source: rest.source
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/artists/top-tracks
      name: artists-top-tracks
      description: REST surface for artists-top_tracks.
      operations:
      - method: GET
        name: getartisttoptracks
        description: Get Artist Top Tracks
        call: songstats-artists.getartisttoptracks
        with:
          songstats_artist_id: rest.songstats_artist_id
          source: rest.source
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/artists/track-request
      name: artists-track-request
      description: REST surface for artists-track_request.
      operations:
      - method: POST
        name: addartisttrackrequest
        description: Add Artist Track Request
        call: songstats-artists.addartisttrackrequest
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: removeartisttrackrequest
        description: Remove Artist Track Request
        call: songstats-artists.removeartisttrackrequest
        with:
          songstats_artist_id: rest.songstats_artist_id
          songstats_track_id: rest.songstats_track_id
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: songstats-artists-mcp
    port: 9090
    transport: http
    description: MCP adapter for Songstats Enterprise API — Artists. One tool per consumed operation, routed inline through
      this capability's consumes block.
    tools:
    - name: get-artist-activities
      description: Get Artist Activities
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: songstats-artists.getartistactivities
      with:
        songstats_artist_id: tools.songstats_artist_id
      outputParameters:
      - type: object
        mapping: $.
    - name: get-artist-audience
      description: Get Artist Audience
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: songstats-artists.getartistaudience
      with:
        songstats_artist_id: tools.songstats_artist_id
        source: tools.source
      outputParameters:
      - type: object
        mapping: $.
    - name: get-artist-audience-details
      description: Get Artist Audience Details
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: songstats-artists.getartistaudiencedetails
      with:
        songstats_artist_id: tools.songstats_artist_id
        source: tools.source
        country_code: tools.country_code
      outputParameters:
      - type: object
        mapping: $.
    - name: get-artist-catalog
      description: Get Artist Catalog
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: songstats-artists.getartistcatalog
      with:
        songstats_artist_id: tools.songstats_artist_id
      outputParameters:
      - type: object
        mapping: $.
    - name: get-artist-historic-stats
      description: Get Artist Historic Stats
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: songstats-artists.getartisthistoricstats
      with:
        songstats_artist_id: tools.songstats_artist_id
        source: tools.source
        start_date: tools.start_date
        end_date: tools.end_date
      outputParameters:
      - type: object
        mapping: $.
    - name: get-artist-info
      description: Get Artist Info
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: songstats-artists.getartistinfo
      with:
        songstats_artist_id: tools.songstats_artist_id
        spotify_artist_id: tools.spotify_artist_id
        apple_music_artist_id: tools.apple_music_artist_id
      outputParameters:
      - type: object
        mapping: $.
    - name: add-artist-link-request
      description: Add Artist Link Request
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: songstats-artists.addartistlinkrequest
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: remove-artist-link-request
      description: Remove Artist Link Request
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: songstats-artists.removeartistlinkrequest
      with:
        songstats_artist_id: tools.songstats_artist_id
        link: tools.link
      outputParameters:
      - type: object
        mapping: $.
    - name: search-artists
      description: Search Artists
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: songstats-artists.searchartists
      with:
        q: tools.q
      outputParameters:
      - type: object
        mapping: $.
    - name: get-artist-current-stats
      description: Get Artist Current Stats
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: songstats-artists.getartistcurrentstats
      with:
        songstats_artist_id: tools.songstats_artist_id
        source: tools.source
      outputParameters:
      - type: object
        mapping: $.
    - name: get-artist-top-playlists
      description: Get Artist Top Playlists
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: songstats-artists.getartisttopplaylists
      with:
        songstats_artist_id: tools.songstats_artist_id
        source: tools.source
      outputParameters:
      - type: object
        mapping: $.
    - name: get-artist-top-tracks
      description: Get Artist Top Tracks
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: songstats-artists.getartisttoptracks
      with:
        songstats_artist_id: tools.songstats_artist_id
        source: tools.source
      outputParameters:
      - type: object
        mapping: $.
    - name: add-artist-track-request
      description: Add Artist Track Request
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: songstats-artists.addartisttrackrequest
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: remove-artist-track-request
      description: Remove Artist Track Request
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: songstats-artists.removeartisttrackrequest
      with:
        songstats_artist_id: tools.songstats_artist_id
        songstats_track_id: tools.songstats_track_id
      outputParameters:
      - type: object
        mapping: $.