naftiko: 1.0.0-alpha2 info: label: 7digital / MassiveMusic Streaming Platform API — Catalogue description: '7digital / MassiveMusic Streaming Platform API — Catalogue. 13 operations. Lead operation: 7digital Browse Artists By Name. Self-contained Naftiko capability covering one 7digital / MassiveMusic business surface.' tags: - 7digital / MassiveMusic - Music - Catalogue created: '2026-05-28' modified: '2026-05-28' binds: - namespace: env keys: SEVENDIGITAL_CONSUMER_KEY: SEVENDIGITAL_CONSUMER_KEY SEVENDIGITAL_CONSUMER_SECRET: SEVENDIGITAL_CONSUMER_SECRET capability: consumes: - type: http namespace: streaming-platform-catalogue baseUri: https://api.7digital.com description: 7digital / MassiveMusic Streaming Platform API — Catalogue business capability. Self-contained, no shared references. authentication: type: apikey key: oauth_consumer_key value: '{{env.SEVENDIGITAL_CONSUMER_KEY}}' placement: query resources: - name: artists-browse path: /artists/browse operations: - name: browseArtistsByName method: GET description: 7digital Browse Artists By Name inputParameters: - name: letter in: query type: string required: true description: One or more starting letters to filter artists by. - name: page in: query type: integer required: false description: 1-based page number. - name: pageSize in: query type: integer required: false description: Number of items per page. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: artists-artistid-details path: /artists/{artistId}/details operations: - name: getArtistDetails method: GET description: 7digital Get Artist Details inputParameters: - name: artistId in: path type: string required: true description: 7digital artist id. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: artists-artistid-releases path: /artists/{artistId}/releases operations: - name: getArtistReleases method: GET description: 7digital Get Artist Releases inputParameters: - name: artistId in: path type: string required: true description: 7digital artist id. - name: type in: query type: string required: false description: Release type filter. - name: page in: query type: integer required: false description: 1-based page number. - name: pageSize in: query type: integer required: false description: Number of items per page. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: artists-search path: /artists/search operations: - name: searchArtists method: GET description: 7digital Search Artists inputParameters: - name: q in: query type: string required: true description: Free-text search query. - name: page in: query type: integer required: false description: 1-based page number. - name: pageSize in: query type: integer required: false description: Number of items per page. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: releases-details-batch path: /releases/details/batch operations: - name: getReleasesBatchDetails method: POST description: 7digital Get Releases Batch Details inputParameters: - name: body in: body type: object required: true description: Request body payload. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: releases-releaseid-details path: /releases/{releaseId}/details operations: - name: getReleaseDetails method: GET description: 7digital Get Release Details inputParameters: - name: releaseId in: path type: string required: true description: 7digital release id. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: releases-releaseid-tracks path: /releases/{releaseId}/tracks operations: - name: getReleaseTrackListing method: GET description: 7digital Get Release Track Listing inputParameters: - name: releaseId in: path type: string required: true description: 7digital release id. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: releases-search path: /releases/search operations: - name: searchReleases method: GET description: 7digital Search Releases inputParameters: - name: q in: query type: string required: true description: Free-text search query. - name: page in: query type: integer required: false description: 1-based page number. - name: pageSize in: query type: integer required: false description: Number of items per page. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: tracks-search path: /tracks/search operations: - name: searchTracks method: GET description: 7digital Search Tracks inputParameters: - name: q in: query type: string required: true description: Free-text search query. - name: page in: query type: integer required: false description: 1-based page number. - name: pageSize in: query type: integer required: false description: Number of items per page. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: tracks-details-batch path: /tracks/details/batch operations: - name: getTracksBatchDetails method: POST description: 7digital Get Tracks Batch Details inputParameters: - name: body in: body type: object required: true description: Request body payload. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: tracks-trackid-details path: /tracks/{trackId}/details operations: - name: getTrackDetails method: GET description: 7digital Get Track Details inputParameters: - name: trackId in: path type: string required: true description: 7digital track id. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: tracks-trackid-download path: /tracks/{trackId}/download operations: - name: downloadTrack method: GET description: 7digital Download Track inputParameters: - name: trackId in: path type: string required: true description: 7digital track id. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: usage-types path: /usage-types operations: - name: getUsageTypeInformation method: GET description: 7digital Get Usage Type Information inputParameters: [] outputRawFormat: json outputParameters: - name: result type: object value: $. exposes: - type: rest namespace: streaming-platform-catalogue-rest port: 8080 description: REST adapter for 7digital / MassiveMusic Streaming Platform API — Catalogue. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/artists/browse name: artists-browse description: REST surface for artists-browse. operations: - method: GET name: browseArtistsByName description: 7digital Browse Artists By Name call: streaming-platform-catalogue.browseArtistsByName with: letter: rest.letter page: rest.page pageSize: rest.pageSize outputParameters: - type: object mapping: $. - path: /v1/artists/{artist-id}/details name: artists-artist-id-details description: REST surface for artists-artist-id-details. operations: - method: GET name: getArtistDetails description: 7digital Get Artist Details call: streaming-platform-catalogue.getArtistDetails with: artistId: rest.artistId outputParameters: - type: object mapping: $. - path: /v1/artists/{artist-id}/releases name: artists-artist-id-releases description: REST surface for artists-artist-id-releases. operations: - method: GET name: getArtistReleases description: 7digital Get Artist Releases call: streaming-platform-catalogue.getArtistReleases with: artistId: rest.artistId type: rest.type page: rest.page pageSize: rest.pageSize outputParameters: - type: object mapping: $. - path: /v1/artists/search name: artists-search description: REST surface for artists-search. operations: - method: GET name: searchArtists description: 7digital Search Artists call: streaming-platform-catalogue.searchArtists with: q: rest.q page: rest.page pageSize: rest.pageSize outputParameters: - type: object mapping: $. - path: /v1/releases/details/batch name: releases-details-batch description: REST surface for releases-details-batch. operations: - method: POST name: getReleasesBatchDetails description: 7digital Get Releases Batch Details call: streaming-platform-catalogue.getReleasesBatchDetails with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/releases/{release-id}/details name: releases-release-id-details description: REST surface for releases-release-id-details. operations: - method: GET name: getReleaseDetails description: 7digital Get Release Details call: streaming-platform-catalogue.getReleaseDetails with: releaseId: rest.releaseId outputParameters: - type: object mapping: $. - path: /v1/releases/{release-id}/tracks name: releases-release-id-tracks description: REST surface for releases-release-id-tracks. operations: - method: GET name: getReleaseTrackListing description: 7digital Get Release Track Listing call: streaming-platform-catalogue.getReleaseTrackListing with: releaseId: rest.releaseId outputParameters: - type: object mapping: $. - path: /v1/releases/search name: releases-search description: REST surface for releases-search. operations: - method: GET name: searchReleases description: 7digital Search Releases call: streaming-platform-catalogue.searchReleases with: q: rest.q page: rest.page pageSize: rest.pageSize outputParameters: - type: object mapping: $. - path: /v1/tracks/search name: tracks-search description: REST surface for tracks-search. operations: - method: GET name: searchTracks description: 7digital Search Tracks call: streaming-platform-catalogue.searchTracks with: q: rest.q page: rest.page pageSize: rest.pageSize outputParameters: - type: object mapping: $. - path: /v1/tracks/details/batch name: tracks-details-batch description: REST surface for tracks-details-batch. operations: - method: POST name: getTracksBatchDetails description: 7digital Get Tracks Batch Details call: streaming-platform-catalogue.getTracksBatchDetails with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/tracks/{track-id}/details name: tracks-track-id-details description: REST surface for tracks-track-id-details. operations: - method: GET name: getTrackDetails description: 7digital Get Track Details call: streaming-platform-catalogue.getTrackDetails with: trackId: rest.trackId outputParameters: - type: object mapping: $. - path: /v1/tracks/{track-id}/download name: tracks-track-id-download description: REST surface for tracks-track-id-download. operations: - method: GET name: downloadTrack description: 7digital Download Track call: streaming-platform-catalogue.downloadTrack with: trackId: rest.trackId outputParameters: - type: object mapping: $. - path: /v1/usage-types name: usage-types description: REST surface for usage-types. operations: - method: GET name: getUsageTypeInformation description: 7digital Get Usage Type Information call: streaming-platform-catalogue.getUsageTypeInformation with: {} outputParameters: - type: object mapping: $. - type: mcp namespace: streaming-platform-catalogue-mcp port: 9090 transport: http description: MCP adapter for 7digital / MassiveMusic Streaming Platform API — Catalogue. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: browse-artists-name description: 7digital Browse Artists By Name hints: readOnly: true destructive: false idempotent: true call: streaming-platform-catalogue.browseArtistsByName with: letter: tools.letter page: tools.page pageSize: tools.pageSize outputParameters: - type: object mapping: $. - name: get-artist-details description: 7digital Get Artist Details hints: readOnly: true destructive: false idempotent: true call: streaming-platform-catalogue.getArtistDetails with: artistId: tools.artistId outputParameters: - type: object mapping: $. - name: get-artist-releases description: 7digital Get Artist Releases hints: readOnly: true destructive: false idempotent: true call: streaming-platform-catalogue.getArtistReleases with: artistId: tools.artistId type: tools.type page: tools.page pageSize: tools.pageSize outputParameters: - type: object mapping: $. - name: search-artists description: 7digital Search Artists hints: readOnly: true destructive: false idempotent: true call: streaming-platform-catalogue.searchArtists with: q: tools.q page: tools.page pageSize: tools.pageSize outputParameters: - type: object mapping: $. - name: get-releases-batch-details description: 7digital Get Releases Batch Details hints: readOnly: true destructive: false idempotent: false call: streaming-platform-catalogue.getReleasesBatchDetails with: body: tools.body outputParameters: - type: object mapping: $. - name: get-release-details description: 7digital Get Release Details hints: readOnly: true destructive: false idempotent: true call: streaming-platform-catalogue.getReleaseDetails with: releaseId: tools.releaseId outputParameters: - type: object mapping: $. - name: get-release-track-listing description: 7digital Get Release Track Listing hints: readOnly: true destructive: false idempotent: true call: streaming-platform-catalogue.getReleaseTrackListing with: releaseId: tools.releaseId outputParameters: - type: object mapping: $. - name: search-releases description: 7digital Search Releases hints: readOnly: true destructive: false idempotent: true call: streaming-platform-catalogue.searchReleases with: q: tools.q page: tools.page pageSize: tools.pageSize outputParameters: - type: object mapping: $. - name: search-tracks description: 7digital Search Tracks hints: readOnly: true destructive: false idempotent: true call: streaming-platform-catalogue.searchTracks with: q: tools.q page: tools.page pageSize: tools.pageSize outputParameters: - type: object mapping: $. - name: get-tracks-batch-details description: 7digital Get Tracks Batch Details hints: readOnly: true destructive: false idempotent: false call: streaming-platform-catalogue.getTracksBatchDetails with: body: tools.body outputParameters: - type: object mapping: $. - name: get-track-details description: 7digital Get Track Details hints: readOnly: true destructive: false idempotent: true call: streaming-platform-catalogue.getTrackDetails with: trackId: tools.trackId outputParameters: - type: object mapping: $. - name: download-track description: 7digital Download Track hints: readOnly: true destructive: false idempotent: true call: streaming-platform-catalogue.downloadTrack with: trackId: tools.trackId outputParameters: - type: object mapping: $. - name: get-usage-type-information description: 7digital Get Usage Type Information hints: readOnly: true destructive: false idempotent: true call: streaming-platform-catalogue.getUsageTypeInformation with: {} outputParameters: - type: object mapping: $.