Songstats · Capability

Songstats Enterprise API — Tracks

Songstats Enterprise API — Tracks. 8 operations. Lead operation: Get Track Activities. Self-contained Naftiko capability covering one Songstats business surface.

Run with Naftiko SongstatsTracks

What You Can Do

GET
Gettrackactivities — Get Track Activities
/v1/tracks/activities
GET
Gettrackhistoricstats — Get Track Historic Stats
/v1/tracks/historic-stats
GET
Gettrackinfo — Get Track Info
/v1/tracks/info
POST
Addtracklinkrequest — Add Track Link Request
/v1/tracks/link-request
DELETE
Removetracklinkrequest — Remove Track Link Request
/v1/tracks/link-request
GET
Gettracklocations — Get Track Locations
/v1/tracks/locations
GET
Searchtracks — Search Tracks
/v1/tracks/search
GET
Gettrackcurrentstats — Get Track Current Stats
/v1/tracks/stats

MCP Tools

get-track-activities

Get Track Activities

read-only idempotent
get-track-historic-stats

Get Track Historic Stats

read-only idempotent
get-track-info

Get Track Info

read-only idempotent
add-track-link-request

Add Track Link Request

remove-track-link-request

Remove Track Link Request

idempotent
get-track-locations

Get Track Locations

read-only idempotent
search-tracks

Search Tracks

read-only idempotent
get-track-current-stats

Get Track Current Stats

read-only idempotent

Capability Spec

songstats-tracks.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Songstats Enterprise API — Tracks
  description: 'Songstats Enterprise API — Tracks. 8 operations. Lead operation: Get Track Activities. Self-contained Naftiko
    capability covering one Songstats business surface.'
  tags:
  - Songstats
  - Tracks
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    SONGSTATS_API_KEY: SONGSTATS_API_KEY
capability:
  consumes:
  - type: http
    namespace: songstats-tracks
    baseUri: https://api.songstats.com/enterprise/v1
    description: Songstats Enterprise API — Tracks business capability. Self-contained, no shared references.
    resources:
    - name: tracks-activities
      path: /tracks/activities
      operations:
      - name: gettrackactivities
        method: GET
        description: Get Track Activities
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: songstats_track_id
          in: query
          type: string
          description: Songstats track ID
          required: true
    - name: tracks-historic_stats
      path: /tracks/historic_stats
      operations:
      - name: gettrackhistoricstats
        method: GET
        description: Get Track Historic Stats
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: songstats_track_id
          in: query
          type: string
          description: Songstats track 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: tracks-info
      path: /tracks/info
      operations:
      - name: gettrackinfo
        method: GET
        description: Get Track Info
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: songstats_track_id
          in: query
          type: string
          description: Songstats track ID
        - name: isrc
          in: query
          type: string
          description: International Standard Recording Code
        - name: spotify_track_id
          in: query
          type: string
          description: Spotify track ID
    - name: tracks-link_request
      path: /tracks/link_request
      operations:
      - name: addtracklinkrequest
        method: POST
        description: Add Track Link Request
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: removetracklinkrequest
        method: DELETE
        description: Remove Track Link Request
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: songstats_track_id
          in: query
          type: string
          required: true
        - name: link
          in: query
          type: string
          required: true
    - name: tracks-locations
      path: /tracks/locations
      operations:
      - name: gettracklocations
        method: GET
        description: Get Track Locations
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: songstats_track_id
          in: query
          type: string
          description: Songstats track ID
          required: true
        - name: source
          in: query
          type: string
          description: Streaming platform source filter
    - name: tracks-search
      path: /tracks/search
      operations:
      - name: searchtracks
        method: GET
        description: Search Tracks
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: q
          in: query
          type: string
          description: Search query
          required: true
    - name: tracks-stats
      path: /tracks/stats
      operations:
      - name: gettrackcurrentstats
        method: GET
        description: Get Track Current Stats
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: songstats_track_id
          in: query
          type: string
          description: Songstats track ID
          required: true
        - name: source
          in: query
          type: string
          description: Streaming platform source filter
    authentication:
      type: apikey
      key: apikey
      value: '{{env.SONGSTATS_API_KEY}}'
      placement: header
  exposes:
  - type: rest
    namespace: songstats-tracks-rest
    port: 8080
    description: REST adapter for Songstats Enterprise API — Tracks. One Spectral-compliant resource per consumed operation,
      prefixed with /v1.
    resources:
    - path: /v1/tracks/activities
      name: tracks-activities
      description: REST surface for tracks-activities.
      operations:
      - method: GET
        name: gettrackactivities
        description: Get Track Activities
        call: songstats-tracks.gettrackactivities
        with:
          songstats_track_id: rest.songstats_track_id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/tracks/historic-stats
      name: tracks-historic-stats
      description: REST surface for tracks-historic_stats.
      operations:
      - method: GET
        name: gettrackhistoricstats
        description: Get Track Historic Stats
        call: songstats-tracks.gettrackhistoricstats
        with:
          songstats_track_id: rest.songstats_track_id
          source: rest.source
          start_date: rest.start_date
          end_date: rest.end_date
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/tracks/info
      name: tracks-info
      description: REST surface for tracks-info.
      operations:
      - method: GET
        name: gettrackinfo
        description: Get Track Info
        call: songstats-tracks.gettrackinfo
        with:
          songstats_track_id: rest.songstats_track_id
          isrc: rest.isrc
          spotify_track_id: rest.spotify_track_id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/tracks/link-request
      name: tracks-link-request
      description: REST surface for tracks-link_request.
      operations:
      - method: POST
        name: addtracklinkrequest
        description: Add Track Link Request
        call: songstats-tracks.addtracklinkrequest
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: removetracklinkrequest
        description: Remove Track Link Request
        call: songstats-tracks.removetracklinkrequest
        with:
          songstats_track_id: rest.songstats_track_id
          link: rest.link
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/tracks/locations
      name: tracks-locations
      description: REST surface for tracks-locations.
      operations:
      - method: GET
        name: gettracklocations
        description: Get Track Locations
        call: songstats-tracks.gettracklocations
        with:
          songstats_track_id: rest.songstats_track_id
          source: rest.source
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/tracks/search
      name: tracks-search
      description: REST surface for tracks-search.
      operations:
      - method: GET
        name: searchtracks
        description: Search Tracks
        call: songstats-tracks.searchtracks
        with:
          q: rest.q
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/tracks/stats
      name: tracks-stats
      description: REST surface for tracks-stats.
      operations:
      - method: GET
        name: gettrackcurrentstats
        description: Get Track Current Stats
        call: songstats-tracks.gettrackcurrentstats
        with:
          songstats_track_id: rest.songstats_track_id
          source: rest.source
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: songstats-tracks-mcp
    port: 9090
    transport: http
    description: MCP adapter for Songstats Enterprise API — Tracks. One tool per consumed operation, routed inline through
      this capability's consumes block.
    tools:
    - name: get-track-activities
      description: Get Track Activities
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: songstats-tracks.gettrackactivities
      with:
        songstats_track_id: tools.songstats_track_id
      outputParameters:
      - type: object
        mapping: $.
    - name: get-track-historic-stats
      description: Get Track Historic Stats
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: songstats-tracks.gettrackhistoricstats
      with:
        songstats_track_id: tools.songstats_track_id
        source: tools.source
        start_date: tools.start_date
        end_date: tools.end_date
      outputParameters:
      - type: object
        mapping: $.
    - name: get-track-info
      description: Get Track Info
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: songstats-tracks.gettrackinfo
      with:
        songstats_track_id: tools.songstats_track_id
        isrc: tools.isrc
        spotify_track_id: tools.spotify_track_id
      outputParameters:
      - type: object
        mapping: $.
    - name: add-track-link-request
      description: Add Track Link Request
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: songstats-tracks.addtracklinkrequest
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: remove-track-link-request
      description: Remove Track Link Request
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: songstats-tracks.removetracklinkrequest
      with:
        songstats_track_id: tools.songstats_track_id
        link: tools.link
      outputParameters:
      - type: object
        mapping: $.
    - name: get-track-locations
      description: Get Track Locations
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: songstats-tracks.gettracklocations
      with:
        songstats_track_id: tools.songstats_track_id
        source: tools.source
      outputParameters:
      - type: object
        mapping: $.
    - name: search-tracks
      description: Search Tracks
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: songstats-tracks.searchtracks
      with:
        q: tools.q
      outputParameters:
      - type: object
        mapping: $.
    - name: get-track-current-stats
      description: Get Track Current Stats
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: songstats-tracks.gettrackcurrentstats
      with:
        songstats_track_id: tools.songstats_track_id
        source: tools.source
      outputParameters:
      - type: object
        mapping: $.