naftiko: 1.0.0-alpha2 info: label: Spotify Web API — Audiobooks description: 'Spotify Web API — Audiobooks. 7 operations. Lead operation: Get Several Audiobooks. Self-contained Naftiko capability covering one Spotify business surface.' tags: - Spotify - Audiobooks created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: SPOTIFY_API_KEY: SPOTIFY_API_KEY capability: consumes: - type: http namespace: spotify-audiobooks baseUri: https://api.spotify.com/v1 description: Spotify Web API — Audiobooks business capability. Self-contained, no shared references. resources: - name: audiobooks path: /audiobooks operations: - name: getmultipleaudiobooks method: GET description: Get Several Audiobooks outputRawFormat: json outputParameters: - name: result type: object value: $. - name: audiobooks-id path: /audiobooks/{id} operations: - name: getanaudiobook method: GET description: Get an Audiobook outputRawFormat: json outputParameters: - name: result type: object value: $. - name: audiobooks-id-chapters path: /audiobooks/{id}/chapters operations: - name: getaudiobookchapters method: GET description: Get Audiobook Chapters outputRawFormat: json outputParameters: - name: result type: object value: $. - name: me-audiobooks path: /me/audiobooks operations: - name: getuserssavedaudiobooks method: GET description: Get User's Saved Audiobooks outputRawFormat: json outputParameters: - name: result type: object value: $. - name: saveaudiobooksuser method: PUT description: Save Audiobooks for Current User outputRawFormat: json outputParameters: - name: result type: object value: $. - name: removeaudiobooksuser method: DELETE description: Remove User's Saved Audiobooks outputRawFormat: json outputParameters: - name: result type: object value: $. - name: me-audiobooks-contains path: /me/audiobooks/contains operations: - name: checkuserssavedaudiobooks method: GET description: Check User's Saved Audiobooks outputRawFormat: json outputParameters: - name: result type: object value: $. authentication: type: bearer token: '{{env.SPOTIFY_API_KEY}}' exposes: - type: rest namespace: spotify-audiobooks-rest port: 8080 description: REST adapter for Spotify Web API — Audiobooks. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/audiobooks name: audiobooks description: REST surface for audiobooks. operations: - method: GET name: getmultipleaudiobooks description: Get Several Audiobooks call: spotify-audiobooks.getmultipleaudiobooks outputParameters: - type: object mapping: $. - path: /v1/audiobooks/{id} name: audiobooks-id description: REST surface for audiobooks-id. operations: - method: GET name: getanaudiobook description: Get an Audiobook call: spotify-audiobooks.getanaudiobook outputParameters: - type: object mapping: $. - path: /v1/audiobooks/{id}/chapters name: audiobooks-id-chapters description: REST surface for audiobooks-id-chapters. operations: - method: GET name: getaudiobookchapters description: Get Audiobook Chapters call: spotify-audiobooks.getaudiobookchapters outputParameters: - type: object mapping: $. - path: /v1/me/audiobooks name: me-audiobooks description: REST surface for me-audiobooks. operations: - method: GET name: getuserssavedaudiobooks description: Get User's Saved Audiobooks call: spotify-audiobooks.getuserssavedaudiobooks outputParameters: - type: object mapping: $. - method: PUT name: saveaudiobooksuser description: Save Audiobooks for Current User call: spotify-audiobooks.saveaudiobooksuser outputParameters: - type: object mapping: $. - method: DELETE name: removeaudiobooksuser description: Remove User's Saved Audiobooks call: spotify-audiobooks.removeaudiobooksuser outputParameters: - type: object mapping: $. - path: /v1/me/audiobooks/contains name: me-audiobooks-contains description: REST surface for me-audiobooks-contains. operations: - method: GET name: checkuserssavedaudiobooks description: Check User's Saved Audiobooks call: spotify-audiobooks.checkuserssavedaudiobooks outputParameters: - type: object mapping: $. - type: mcp namespace: spotify-audiobooks-mcp port: 9090 transport: http description: MCP adapter for Spotify Web API — Audiobooks. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: get-several-audiobooks description: Get Several Audiobooks hints: readOnly: true destructive: false idempotent: true call: spotify-audiobooks.getmultipleaudiobooks outputParameters: - type: object mapping: $. - name: get-audiobook description: Get an Audiobook hints: readOnly: true destructive: false idempotent: true call: spotify-audiobooks.getanaudiobook outputParameters: - type: object mapping: $. - name: get-audiobook-chapters description: Get Audiobook Chapters hints: readOnly: true destructive: false idempotent: true call: spotify-audiobooks.getaudiobookchapters outputParameters: - type: object mapping: $. - name: get-user-s-saved-audiobooks description: Get User's Saved Audiobooks hints: readOnly: true destructive: false idempotent: true call: spotify-audiobooks.getuserssavedaudiobooks outputParameters: - type: object mapping: $. - name: save-audiobooks-current-user description: Save Audiobooks for Current User hints: readOnly: false destructive: false idempotent: true call: spotify-audiobooks.saveaudiobooksuser outputParameters: - type: object mapping: $. - name: remove-user-s-saved-audiobooks description: Remove User's Saved Audiobooks hints: readOnly: false destructive: true idempotent: true call: spotify-audiobooks.removeaudiobooksuser outputParameters: - type: object mapping: $. - name: check-user-s-saved-audiobooks description: Check User's Saved Audiobooks hints: readOnly: true destructive: false idempotent: true call: spotify-audiobooks.checkuserssavedaudiobooks outputParameters: - type: object mapping: $.