naftiko: 1.0.0-alpha2 info: label: TIDAL Recommendations API — User Recommendations description: TIDAL Recommendations API — User Recommendations. 5 operations. Self-contained Naftiko capability covering one TIDAL business surface. tags: - TIDAL - Music - userRecommendations created: '2026-05-25' modified: '2026-05-25' binds: - namespace: env keys: TIDAL_ACCESS_TOKEN: TIDAL_ACCESS_TOKEN capability: consumes: - type: http namespace: recommendations-user-recommendations baseUri: https://openapi.tidal.com description: TIDAL Recommendations API — User Recommendations business capability. Self-contained, no shared references. resources: - name: userRecommendations-id path: /userRecommendations/{id} operations: - name: getuserrecommendations method: GET description: Get single userRecommendation. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: User recommendations id. Use `me` for the authenticated user's resource required: true - name: countryCode in: query type: string description: ISO 3166-1 alpha-2 country code required: false - name: locale in: query type: string description: BCP 47 locale (e.g., en-US, nb-NO, pt-BR). Defaults to en-US if not provided or unsupported. required: false - name: include in: query type: array description: 'Allows the client to customize which related resources should be returned. Available options: discoveryMixes, myMixes, newArrivalMixes, offlineMixes' required: false - name: userRecommendations-id-relationships-discoveryMixes path: /userRecommendations/{id}/relationships/discoveryMixes operations: - name: getuserrecommendations method: GET description: Get discoveryMixes relationship ("to-many"). outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: User recommendations id. Use `me` for the authenticated user's resource required: true - 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 - name: countryCode in: query type: string description: ISO 3166-1 alpha-2 country code required: false - name: locale in: query type: string description: BCP 47 locale (e.g., en-US, nb-NO, pt-BR). Defaults to en-US if not provided or unsupported. required: false - name: include in: query type: array description: 'Allows the client to customize which related resources should be returned. Available options: discoveryMixes' required: false - name: userRecommendations-id-relationships-myMixes path: /userRecommendations/{id}/relationships/myMixes operations: - name: getuserrecommendations method: GET description: Get myMixes relationship ("to-many"). outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: User recommendations id. Use `me` for the authenticated user's resource required: true - 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 - name: countryCode in: query type: string description: ISO 3166-1 alpha-2 country code required: false - name: locale in: query type: string description: BCP 47 locale (e.g., en-US, nb-NO, pt-BR). Defaults to en-US if not provided or unsupported. required: false - name: include in: query type: array description: 'Allows the client to customize which related resources should be returned. Available options: myMixes' required: false - name: userRecommendations-id-relationships-newArrivalMixes path: /userRecommendations/{id}/relationships/newArrivalMixes operations: - name: getuserrecommendations method: GET description: Get newArrivalMixes relationship ("to-many"). outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: User recommendations id. Use `me` for the authenticated user's resource required: true - 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 - name: countryCode in: query type: string description: ISO 3166-1 alpha-2 country code required: false - name: locale in: query type: string description: BCP 47 locale (e.g., en-US, nb-NO, pt-BR). Defaults to en-US if not provided or unsupported. required: false - name: include in: query type: array description: 'Allows the client to customize which related resources should be returned. Available options: newArrivalMixes' required: false - name: userRecommendations-id-relationships-offlineMixes path: /userRecommendations/{id}/relationships/offlineMixes operations: - name: getuserrecommendations method: GET description: Get offlineMixes relationship ("to-many"). outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: User recommendations id. Use `me` for the authenticated user's resource required: true - 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 - name: locale in: query type: string description: BCP 47 locale (e.g., en-US, nb-NO, pt-BR). Defaults to en-US if not provided or unsupported. required: false - name: include in: query type: array description: 'Allows the client to customize which related resources should be returned. Available options: offlineMixes' required: false authentication: type: bearer value: '{{env.TIDAL_ACCESS_TOKEN}}' placement: header header: Authorization prefix: 'Bearer ' exposes: - type: rest namespace: recommendations-user-recommendations-rest port: 8080 description: REST adapter for TIDAL Recommendations API — User Recommendations. One Spectral-compliant resource per consumed operation, prefixed with /v2. resources: - path: /v2/userRecommendations/{id} name: userRecommendations-id description: REST surface for userRecommendations-id. operations: - method: GET name: getuserrecommendations description: Get single userRecommendation. call: recommendations-user-recommendations.getuserrecommendations with: id: rest.path.id countryCode: rest.query.countryCode locale: rest.query.locale include: rest.query.include outputParameters: - type: object mapping: $. - path: /v2/userRecommendations/{id}/relationships/discoveryMixes name: userRecommendations-id-relationships-discoveryMixes description: REST surface for userRecommendations-id-relationships-discoveryMixes. operations: - method: GET name: getuserrecommendations description: Get discoveryMixes relationship ("to-many"). call: recommendations-user-recommendations.getuserrecommendations with: id: rest.path.id page[cursor]: rest.query.page[cursor] countryCode: rest.query.countryCode locale: rest.query.locale include: rest.query.include outputParameters: - type: object mapping: $. - path: /v2/userRecommendations/{id}/relationships/myMixes name: userRecommendations-id-relationships-myMixes description: REST surface for userRecommendations-id-relationships-myMixes. operations: - method: GET name: getuserrecommendations description: Get myMixes relationship ("to-many"). call: recommendations-user-recommendations.getuserrecommendations with: id: rest.path.id page[cursor]: rest.query.page[cursor] countryCode: rest.query.countryCode locale: rest.query.locale include: rest.query.include outputParameters: - type: object mapping: $. - path: /v2/userRecommendations/{id}/relationships/newArrivalMixes name: userRecommendations-id-relationships-newArrivalMixes description: REST surface for userRecommendations-id-relationships-newArrivalMixes. operations: - method: GET name: getuserrecommendations description: Get newArrivalMixes relationship ("to-many"). call: recommendations-user-recommendations.getuserrecommendations with: id: rest.path.id page[cursor]: rest.query.page[cursor] countryCode: rest.query.countryCode locale: rest.query.locale include: rest.query.include outputParameters: - type: object mapping: $. - path: /v2/userRecommendations/{id}/relationships/offlineMixes name: userRecommendations-id-relationships-offlineMixes description: REST surface for userRecommendations-id-relationships-offlineMixes. operations: - method: GET name: getuserrecommendations description: Get offlineMixes relationship ("to-many"). call: recommendations-user-recommendations.getuserrecommendations with: id: rest.path.id page[cursor]: rest.query.page[cursor] locale: rest.query.locale include: rest.query.include outputParameters: - type: object mapping: $. - type: mcp namespace: recommendations-user-recommendations-mcp port: 9090 transport: http description: MCP adapter for TIDAL Recommendations API — User Recommendations. One tool per consumed operation. tools: - name: tidal-getuserrecommendations description: Get single userRecommendation. hints: readOnly: true destructive: false idempotent: true call: recommendations-user-recommendations.getuserrecommendations with: id: tools.id countryCode: tools.countryCode locale: tools.locale include: tools.include outputParameters: - type: object mapping: $. - name: tidal-getuserrecommendations description: Get discoveryMixes relationship ("to-many"). hints: readOnly: true destructive: false idempotent: true call: recommendations-user-recommendations.getuserrecommendations with: id: tools.id page[cursor]: tools.page[cursor] countryCode: tools.countryCode locale: tools.locale include: tools.include outputParameters: - type: object mapping: $. - name: tidal-getuserrecommendations description: Get myMixes relationship ("to-many"). hints: readOnly: true destructive: false idempotent: true call: recommendations-user-recommendations.getuserrecommendations with: id: tools.id page[cursor]: tools.page[cursor] countryCode: tools.countryCode locale: tools.locale include: tools.include outputParameters: - type: object mapping: $. - name: tidal-getuserrecommendations description: Get newArrivalMixes relationship ("to-many"). hints: readOnly: true destructive: false idempotent: true call: recommendations-user-recommendations.getuserrecommendations with: id: tools.id page[cursor]: tools.page[cursor] countryCode: tools.countryCode locale: tools.locale include: tools.include outputParameters: - type: object mapping: $. - name: tidal-getuserrecommendations description: Get offlineMixes relationship ("to-many"). hints: readOnly: true destructive: false idempotent: true call: recommendations-user-recommendations.getuserrecommendations with: id: tools.id page[cursor]: tools.page[cursor] locale: tools.locale include: tools.include outputParameters: - type: object mapping: $.