naftiko: 1.0.0-alpha2 info: label: TIDAL Playback API — Track Manifests and Files description: TIDAL Playback API — Track Manifests and Files. 6 operations. Self-contained Naftiko capability covering one TIDAL business surface. tags: - TIDAL - Music - trackManifests - trackFiles - trackSourceFiles created: '2026-05-25' modified: '2026-05-25' binds: - namespace: env keys: TIDAL_ACCESS_TOKEN: TIDAL_ACCESS_TOKEN capability: consumes: - type: http namespace: playback-track-manifests baseUri: https://openapi.tidal.com description: TIDAL Playback API — Track Manifests and Files business capability. Self-contained, no shared references. resources: - name: trackFiles-id path: /trackFiles/{id} operations: - name: gettrackfiles method: GET description: Get single trackFile. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: Track file id required: true - name: formats in: query type: array description: '' required: true - name: usage in: query type: string description: '' required: true - name: trackManifests-id path: /trackManifests/{id} operations: - name: gettrackmanifests method: GET description: Get single trackManifest. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: Track manifest id required: true - name: manifestType in: query type: string description: '' required: true - name: formats in: query type: array description: '' required: true - name: uriScheme in: query type: string description: '' required: true - name: usage in: query type: string description: '' required: true - name: adaptive in: query type: boolean description: '' required: true - name: shareCode in: query type: string description: Share code that grants access to UNLISTED resources. When provided, allows non-owners to access resources that would otherwise be restricted. required: false - name: trackSourceFiles path: /trackSourceFiles operations: - name: gettracksourcefiles method: GET description: Get multiple trackSourceFiles. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: include in: query type: array description: 'Allows the client to customize which related resources should be returned. Available options: owners' required: false - name: filter[id] in: query type: array description: Track source file id (e.g. `a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11`) required: false - name: posttracksourcefiles method: POST description: Create single trackSourceFile. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: JSON:API document request body. required: true - name: trackSourceFiles-id path: /trackSourceFiles/{id} operations: - name: gettracksourcefiles method: GET description: Get single trackSourceFile. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: Track source file id required: true - name: include in: query type: array description: 'Allows the client to customize which related resources should be returned. Available options: owners' required: false - name: trackSourceFiles-id-relationships-owners path: /trackSourceFiles/{id}/relationships/owners operations: - name: gettracksourcefiles method: GET description: Get owners relationship ("to-many"). outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: Track source file id required: true - name: include in: query type: array description: 'Allows the client to customize which related resources should be returned. Available options: owners' required: false - name: page[cursor] in: query type: string description: Server-generated cursor value pointing a certain page of items. Optional, targets first page if not specified required: false authentication: type: bearer value: '{{env.TIDAL_ACCESS_TOKEN}}' placement: header header: Authorization prefix: 'Bearer ' exposes: - type: rest namespace: playback-track-manifests-rest port: 8080 description: REST adapter for TIDAL Playback API — Track Manifests and Files. One Spectral-compliant resource per consumed operation, prefixed with /v2. resources: - path: /v2/trackFiles/{id} name: trackFiles-id description: REST surface for trackFiles-id. operations: - method: GET name: gettrackfiles description: Get single trackFile. call: playback-track-manifests.gettrackfiles with: id: rest.path.id formats: rest.query.formats usage: rest.query.usage outputParameters: - type: object mapping: $. - path: /v2/trackManifests/{id} name: trackManifests-id description: REST surface for trackManifests-id. operations: - method: GET name: gettrackmanifests description: Get single trackManifest. call: playback-track-manifests.gettrackmanifests with: id: rest.path.id manifestType: rest.query.manifestType formats: rest.query.formats uriScheme: rest.query.uriScheme usage: rest.query.usage adaptive: rest.query.adaptive shareCode: rest.query.shareCode outputParameters: - type: object mapping: $. - path: /v2/trackSourceFiles name: trackSourceFiles description: REST surface for trackSourceFiles. operations: - method: GET name: gettracksourcefiles description: Get multiple trackSourceFiles. call: playback-track-manifests.gettracksourcefiles with: include: rest.query.include filter[id]: rest.query.filter[id] outputParameters: - type: object mapping: $. - method: POST name: posttracksourcefiles description: Create single trackSourceFile. call: playback-track-manifests.posttracksourcefiles with: body: rest.body outputParameters: - type: object mapping: $. - path: /v2/trackSourceFiles/{id} name: trackSourceFiles-id description: REST surface for trackSourceFiles-id. operations: - method: GET name: gettracksourcefiles description: Get single trackSourceFile. call: playback-track-manifests.gettracksourcefiles with: id: rest.path.id include: rest.query.include outputParameters: - type: object mapping: $. - path: /v2/trackSourceFiles/{id}/relationships/owners name: trackSourceFiles-id-relationships-owners description: REST surface for trackSourceFiles-id-relationships-owners. operations: - method: GET name: gettracksourcefiles description: Get owners relationship ("to-many"). call: playback-track-manifests.gettracksourcefiles with: id: rest.path.id include: rest.query.include page[cursor]: rest.query.page[cursor] outputParameters: - type: object mapping: $. - type: mcp namespace: playback-track-manifests-mcp port: 9090 transport: http description: MCP adapter for TIDAL Playback API — Track Manifests and Files. One tool per consumed operation. tools: - name: tidal-gettrackfiles description: Get single trackFile. hints: readOnly: true destructive: false idempotent: true call: playback-track-manifests.gettrackfiles with: id: tools.id formats: tools.formats usage: tools.usage outputParameters: - type: object mapping: $. - name: tidal-gettrackmanifests description: Get single trackManifest. hints: readOnly: true destructive: false idempotent: true call: playback-track-manifests.gettrackmanifests with: id: tools.id manifestType: tools.manifestType formats: tools.formats uriScheme: tools.uriScheme usage: tools.usage adaptive: tools.adaptive shareCode: tools.shareCode outputParameters: - type: object mapping: $. - name: tidal-gettracksourcefiles description: Get multiple trackSourceFiles. hints: readOnly: true destructive: false idempotent: true call: playback-track-manifests.gettracksourcefiles with: include: tools.include filter[id]: tools.filter[id] outputParameters: - type: object mapping: $. - name: tidal-posttracksourcefiles description: Create single trackSourceFile. hints: readOnly: false destructive: false idempotent: false call: playback-track-manifests.posttracksourcefiles with: body: tools.body outputParameters: - type: object mapping: $. - name: tidal-gettracksourcefiles description: Get single trackSourceFile. hints: readOnly: true destructive: false idempotent: true call: playback-track-manifests.gettracksourcefiles with: id: tools.id include: tools.include outputParameters: - type: object mapping: $. - name: tidal-gettracksourcefiles description: Get owners relationship ("to-many"). hints: readOnly: true destructive: false idempotent: true call: playback-track-manifests.gettracksourcefiles with: id: tools.id include: tools.include page[cursor]: tools.page[cursor] outputParameters: - type: object mapping: $.