generated: '2026-07-15' method: generated source: openapi/audiomack-data-api-openapi.yml description: Recommended x-agentic-access execution contracts, classified heuristically from the OpenAPI. A governance starting point for exposing this API to AI agents — review and bind audience per deployment. See research/curity/agentic-governance/. summary: operations: 58 by_action_class: acting: 25 connected: 33 by_consequence: write: 25 read: 33 human_in_the_loop_required: 0 operations: - path: /request_token method: post operationId: postRequestToken x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /access_token method: post operationId: postAccessToken x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /music/{id} method: get operationId: getMusicById x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /music/{type}/{artist}/{slug} method: get operationId: getMusicBySlug x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /music/{type}/{artist}/{slug} method: patch operationId: patchMusicBySlug x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /music/preview/{id} method: get operationId: getMusicPreview x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /music/recent method: get operationId: getRecentMusic x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /music/{genre}/recent method: get operationId: getRecentMusicByGenre x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /music/trending method: get operationId: getTrendingMusic x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /music/{genre}/trending method: get operationId: getTrendingMusicByGenre x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /music/{id}/play method: post operationId: postMusicPlay x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /music/{id}/ads method: post operationId: postMusicAd x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /music/{id}/favorite method: put operationId: favoriteMusic x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /music/{id}/favorite method: delete operationId: unfavoriteMusic x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /music/{id}/repost method: put operationId: repostMusic x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /music/{id}/repost method: delete operationId: deleteMusicRepost x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /music/{id}/metrics method: get operationId: getMusicMetrics x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /artist/{slug} method: get operationId: getArtist x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /artist/{slug}/uploads method: get operationId: getArtistUploads x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /artist/{slug}/favorites method: get operationId: getArtistFavorites x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /artist/{slug}/favorites/search method: get operationId: searchArtistFavorites x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /artist/{slug}/playlists method: get operationId: getArtistPlaylists x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /artist/{slug}/follow method: put operationId: followArtist x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /artist/{slug}/follow method: delete operationId: unfollowArtist x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /artist/{slug}/following method: get operationId: getArtistFollowing x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /artist/{slug}/follows method: get operationId: getArtistFollowers x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /artist/{slug}/feed method: get operationId: getArtistFeed x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /artist/{id}/metrics method: get operationId: getArtistMetrics x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /artist/{slug}/pinned method: get operationId: getArtistPinned x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /artist/{slug}/pinned method: post operationId: addArtistPinned x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /artist/{slug}/pinned method: put operationId: updateArtistPinned x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /artist/{slug}/pinned method: delete operationId: removeArtistPinned x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /chart/{kind}/{type} method: get operationId: getChart x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /{genre}/chart/{kind}/{type} method: get operationId: getChartByGenre x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /playlist/{genre}/trending method: get operationId: getTrendingPlaylistsByGenre x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /playlist method: post operationId: createPlaylist x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /playlist/{id} method: get operationId: getPlaylist x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /playlist/{id} method: put operationId: updatePlaylist x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /playlist/{id} method: delete operationId: deletePlaylist x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /playlist/{id}/track method: post operationId: addPlaylistTrack x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /playlist/{id}/{music_id} method: delete operationId: deletePlaylistTrack x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /playlist/{artistSlug}/{playlistSlug} method: get operationId: getPlaylistBySlug x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /playlist/{id}/favorite method: put operationId: favoritePlaylist x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /playlist/{id}/favorite method: delete operationId: unfavoritePlaylist x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /playlist/{id}/metrics method: get operationId: getPlaylistMetrics x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /search method: get operationId: search x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /search_autosuggest method: get operationId: searchAutosuggest x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /music/stats/token method: get operationId: getStatsToken x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /music/stats/{music_id} method: post operationId: postStatsEvent x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /user method: get operationId: getUser x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /user/register method: post operationId: registerUser x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /user/forgot-password method: post operationId: forgotPassword x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /user/playlists method: get operationId: getUserPlaylists x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /user/favorites method: get operationId: getUserFavorites x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /user/feed method: get operationId: getUserFeed x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /user/uploads method: get operationId: getUserUploads x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /user/native-notifications method: get operationId: getUserNotifications x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /user/native-notifications/seen method: post operationId: markNotificationsSeen x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required