Amazon Music Web API
Web API User Library V2.0
User Library
- Get current user's profile
- Update current user's profile
- Get recently played tracks
- Get recently played entities (artists, albums, playlists)
- Get liked tracks
- Set track like state
- Get library tracks
- Save track to library
- Remove track from library
- Get followed artists
- Follow an artist
- Unfollow an artist
- Get saved podcast episodes
- Save podcast episode to library
- Remove podcast episode from library
- Get followed podcast shows
- Follow a podcast show
- Unfollow a podcast show
- Get account preferences
- Set account preferences
- Get followed users
- Follow a user
- Unfollow a user
- Get followers
- Get owned playlists
- Get followed playlists
- Follow a playlist
- Unfollow a playlist
- Get library albums
- Save album to library
- Remove album from library
Get current user's profile
Supports sparse fieldsets via query parameters:
fields[user]— Comma-separated user fields (e.g. tier,visibility,playbackVisibility,countryCode,images)fields[image]— Comma-separated image fields (e.g. url,width,height)
Response 200
Successful response
Response Schema
Example
Current user's profile with full User fields
{
"id": "B0DCXMPL01",
"name": "Joaquin",
"handle": "joaquin123",
"url": "https://music.amazon.com/users/B0DCXMPL01",
"visibility": "PUBLIC",
"playbackVisibility": "PRIVATE",
"countryCode": "US",
"tier": "UNLIMITED",
"images": [
{
"url": "https://m.media-amazon.com/images/I/user-profile-400.jpg",
"width": 400,
"height": 400
},
{
"url": "https://m.media-amazon.com/images/I/user-profile-150.jpg",
"width": 150,
"height": 150
}
]
}
Sparse Fieldsets Example
Sparse fieldsets — fields[user]=id,name,handle,visibility
{
"id": "B0DCXMPL01",
"name": "Joaquin",
"handle": "joaquin123",
"visibility": "PUBLIC"
}
Error Responses
| Response | Code | Status | Message |
|---|---|---|---|
| 401 | UNAUTHORIZED | 401 | Authentication required |
| 404 | NOT_FOUND | 404 | User not found |
401 Example
{
"error": {
"code": "UNAUTHORIZED",
"message": "Authentication required",
"traceId": "1-abc-def"
}
}
404 Example
{
"error": {
"code": "NOT_FOUND",
"message": "User not found",
"traceId": "1-abc-def"
}
}
Update current user's profile
Request Body
Request Schema
Request Example
{
"name": "Joaquin",
"visibility": "PUBLIC",
"playbackVisibility": "PRIVATE"
}
Response 200
Profile updated successfully
Response Schema
Example
{
"id": "B0DCXMPL01",
"name": "Joaquin",
"handle": "joaquin123",
"url": "https://music.amazon.com/users/B0DCXMPL01",
"visibility": "PUBLIC",
"playbackVisibility": "PRIVATE"
}
Error Responses
| Response | Code | Status | Message |
|---|---|---|---|
| 400 | BAD_REQUEST | 400 | visibility must be one of [PUBLIC, PRIVATE] |
| 401 | UNAUTHORIZED | 401 | Authentication required |
| 404 | NOT_FOUND | 404 | User not found |
400 Example
{
"error": {
"code": "BAD_REQUEST",
"message": "visibility must be one of [PUBLIC, PRIVATE]",
"traceId": "1-abc-def"
}
}
401 Example
{
"error": {
"code": "UNAUTHORIZED",
"message": "Authentication required",
"traceId": "1-abc-def"
}
}
404 Example
{
"error": {
"code": "NOT_FOUND",
"message": "User not found",
"traceId": "1-abc-def"
}
}
Get recently played tracks
Paginated with forward-only cursor navigation. Default page size is
20 items; maximum is 100. Use the nextToken from the response to
fetch the next page via the after query parameter.
Supports sparse fieldsets via query parameters:
fields[track]— Comma-separated track fields (e.g. title,id,duration)fields[album]— Comma-separated album fields (e.g. title,id)fields[artist]— Comma-separated artist fields (e.g. name)
Query Parameters
| Name | Data Type | Required | Description |
|---|---|---|---|
| first | integer | No | Number of items to return |
| after | string | No | Cursor to start after |
Response 200
Successful response
Response Schema
Example
Recently played tracks for the calling user with full Track fields
{
"items": [
{
"id": "B084KPC3Q7",
"title": "Selfless",
"duration": 222,
"isrc": "USRC11902727",
"audioQualities": [
"HD"
],
"mediaType": "audio",
"releaseDate": "2020-04-10T00:00:00.000Z",
"label": "Cult",
"url": "https://music.amazon.com/albums/B084KP4NBH/?trackAsin=B084KPC3Q7",
"album": {
"id": "B084KP4NBH",
"title": "The New Abnormal"
},
"artists": [
{
"id": "B00G70DLAS",
"name": "the-strokes"
}
],
"parentalSettings": {
"hasExplicitLanguage": false
}
},
{
"id": "B004S8NBPG",
"title": "Metabolism",
"duration": 181,
"isrc": "USRC10500421",
"audioQualities": [
"HD"
],
"mediaType": "audio",
"releaseDate": "2006-01-03T00:00:00.000Z",
"label": "Cult",
"url": "https://music.amazon.com/albums/B084KP4NBH/?trackAsin=B004S8NBPG",
"album": {
"id": "B084KP4NBH",
"title": "The New Abnormal"
},
"artists": [
{
"id": "B00G70DLAS",
"name": "the-strokes"
}
],
"parentalSettings": {
"hasExplicitLanguage": false
}
}
],
"nextToken": "B0EXAMP310"
}
Sparse Fieldsets Example
Sparse fieldsets — fields[track]=title,id,duration,artists&fields[artist]=name
{
"items": [
{
"id": "B084KPC3Q7",
"title": "Selfless",
"duration": 222,
"artists": [
{
"id": "B00G70DLAS",
"name": "the-strokes"
}
]
},
{
"id": "B004S8NBPG",
"title": "Metabolism",
"duration": 181,
"artists": [
{
"id": "B00G70DLAS",
"name": "the-strokes"
}
]
}
],
"nextToken": "B0EXAMP310"
}
Error Responses
| Response | Code | Status | Message |
|---|---|---|---|
| 400 | BAD_REQUEST | 400 | first parameter must be between 1 and 100 |
400 Example
{
"error": {
"code": "BAD_REQUEST",
"message": "first parameter must be between 1 and 100",
"traceId": "1-abc-def"
}
}
Get recently played entities (artists, albums, playlists)
Each item is one of EntityArtist, EntityAlbum, or
EntityPlaylist, identified by the _type discriminator.
Partners should switch on _type to interpret each item;
unknown values must be treated as opaque and skipped.
Paginated with forward-only cursor navigation. Default page
size is 20 items; maximum is 100. Use the nextToken from
the response to fetch the next page via the after query
parameter.
Use entityTypes to scope the response to a subset of types.
Allowed values: ARTIST, ALBUM, PLAYLIST. When omitted,
all three types are returned.
Supports sparse fieldsets via query parameters:
fields[artist]— Comma-separated artist fields (e.g. id,name,images)fields[album]— Comma-separated album fields (e.g. id,title,releaseDate)fields[playlist]— Comma-separated playlist fields (e.g. id,title,trackCount)fields[image]— Comma-separated image fields (e.g. url,width,height)
Query Parameters
| Name | Data Type | Required | Description |
|---|---|---|---|
| entityTypes | string (ARTIST|ALBUM|PLAYLIST)[] | No | Optional comma-separated list of entity types to include in the response. Allowed values are ARTIST, ALBUM, PLAYLIST. |
| first | integer | No | Number of items to return |
| after | string | No | Cursor to start after |
Response 200
Successful response
Response Schema
Example
Recently played entities — mixed artists, albums, and playlists
{
"items": [
{
"_type": "Artist",
"id": "B00G70DLAS",
"name": "the-strokes",
"url": "https://music.amazon.com/artists/B00G70DLAS",
"images": [
{
"url": "https://m.media-amazon.com/images/I/artist-the-strokes.jpg",
"width": 600,
"height": 600
}
]
},
{
"_type": "Album",
"id": "B084KP4NBH",
"title": "The New Abnormal",
"releaseDate": "2020-04-10T00:00:00.000Z",
"trackCount": 9,
"url": "https://music.amazon.com/albums/B084KP4NBH"
},
{
"_type": "Playlist",
"id": "B0EXAMP701",
"title": "Rainy Day Indie",
"trackCount": 42,
"url": "https://music.amazon.com/playlists/B0EXAMP701"
}
],
"nextToken": "B0EXAMP311"
}
Sparse Fieldsets Example
Sparse fieldsets — fields[artist]=id,name&fields[album]=id,title&fields[playlist]=id,title
{
"items": [
{
"_type": "Artist",
"id": "B00G70DLAS",
"name": "the-strokes"
},
{
"_type": "Album",
"id": "B084KP4NBH",
"title": "The New Abnormal"
},
{
"_type": "Playlist",
"id": "B0EXAMP701",
"title": "Rainy Day Indie"
}
],
"nextToken": "B0EXAMP311"
}
Error Responses
| Response | Code | Status | Message |
|---|---|---|---|
| 400 | BAD_REQUEST | 400 | entityTypes must be a subset of [ARTIST, ALBUM, PLAYLIST] |
| 401 | UNAUTHORIZED | 401 | Authentication required |
| 404 | NOT_FOUND | 404 | User not found |
400 Example
{
"error": {
"code": "BAD_REQUEST",
"message": "entityTypes must be a subset of [ARTIST, ALBUM, PLAYLIST]",
"traceId": "1-abc-def"
}
}
401 Example
{
"error": {
"code": "UNAUTHORIZED",
"message": "Authentication required",
"traceId": "1-abc-def"
}
}
404 Example
{
"error": {
"code": "NOT_FOUND",
"message": "User not found",
"traceId": "1-abc-def"
}
}
Get liked tracks
Paginated with forward-only cursor navigation. Default page size is
20 items; maximum is 100. Use the nextToken from the response to
fetch the next page via the after query parameter.
Supports sparse fieldsets via query parameters:
fields[track]— Comma-separated track fields (e.g. title,id,duration)fields[album]— Comma-separated album fields (e.g. title,id)fields[artist]— Comma-separated artist fields (e.g. name)
Query Parameters
| Name | Data Type | Required | Description |
|---|---|---|---|
| trackIds | string | No | Comma-separated track IDs to filter results |
| first | integer | No | Number of items to return |
| after | string | No | Cursor to start after |
Response 200
Successful response
Response Schema
Example
Liked tracks for the calling user with full Track fields
{
"items": [
{
"id": "B084KPC3Q7",
"title": "Selfless",
"duration": 222,
"isrc": "USRC11902727",
"audioQualities": [
"HD"
],
"mediaType": "audio",
"releaseDate": "2020-04-10T00:00:00.000Z",
"label": "Cult",
"url": "https://music.amazon.com/albums/B084KP4NBH/?trackAsin=B084KPC3Q7",
"album": {
"id": "B084KP4NBH",
"title": "The New Abnormal"
},
"artists": [
{
"id": "B00G70DLAS",
"name": "the-strokes"
}
],
"parentalSettings": {
"hasExplicitLanguage": false
}
},
{
"id": "B004S8NBPG",
"title": "Metabolism",
"duration": 181,
"isrc": "USRC10500421",
"audioQualities": [
"HD"
],
"mediaType": "audio",
"releaseDate": "2006-01-03T00:00:00.000Z",
"label": "Cult",
"url": "https://music.amazon.com/albums/B084KP4NBH/?trackAsin=B004S8NBPG",
"album": {
"id": "B084KP4NBH",
"title": "The New Abnormal"
},
"artists": [
{
"id": "B00G70DLAS",
"name": "the-strokes"
}
],
"parentalSettings": {
"hasExplicitLanguage": false
}
}
],
"nextToken": "B0EXAMP320"
}
Sparse Fieldsets Example
Sparse fieldsets — fields[track]=title,id,duration,artists&fields[artist]=name
{
"items": [
{
"id": "B084KPC3Q7",
"title": "Selfless",
"duration": 222,
"artists": [
{
"id": "B00G70DLAS",
"name": "the-strokes"
}
]
},
{
"id": "B004S8NBPG",
"title": "Metabolism",
"duration": 181,
"artists": [
{
"id": "B00G70DLAS",
"name": "the-strokes"
}
]
}
],
"nextToken": "B0EXAMP320"
}
Error Responses
| Response | Code | Status | Message |
|---|---|---|---|
| 400 | BAD_REQUEST | 400 | first parameter must be between 1 and 100 |
400 Example
{
"error": {
"code": "BAD_REQUEST",
"message": "first parameter must be between 1 and 100",
"traceId": "1-abc-def"
}
}
Set track like state
Path Parameters
| Name | Data Type | Required | Description |
|---|---|---|---|
| id | string | Yes | Unique identifier for the resource |
Request Body
Request Schema
Request Example
{
"likeState": "LIKE"
}
Response 200
Successful response
Response Schema
Example
{
"track": {
"id": "B084KPC3Q7",
"title": "Selfless",
"duration": 222
},
"likeState": "LIKE"
}
Error Responses
| Response | Code | Status | Message |
|---|---|---|---|
| 404 | NOT_FOUND | 404 | Track not found |
404 Example
{
"error": {
"code": "NOT_FOUND",
"message": "Track not found",
"traceId": "1-abc-def"
}
}
Get library tracks
Paginated with forward-only cursor navigation. Default page size is
20 items; maximum is 100. Use the nextToken from the response to
fetch the next page via the after query parameter.
Supports sparse fieldsets via query parameters:
fields[track]— Comma-separated track fields (e.g. title,id,duration)fields[album]— Comma-separated album fields (e.g. title,id)fields[artist]— Comma-separated artist fields (e.g. name)
Query Parameters
| Name | Data Type | Required | Description |
|---|---|---|---|
| trackIds | string | No | Comma-separated track IDs to filter results |
| first | integer | No | Number of items to return |
| after | string | No | Cursor to start after |
Response 200
Successful response
Response Schema
Example
Library tracks with full Track fields populated
{
"items": [
{
"id": "B084KPC3Q7",
"title": "Selfless",
"duration": 222,
"isrc": "USRC11902727",
"audioQualities": [
"HD"
],
"mediaType": "audio",
"releaseDate": "2020-04-10T00:00:00.000Z",
"label": "Cult",
"url": "https://music.amazon.com/albums/B084KP4NBH/?trackAsin=B084KPC3Q7",
"album": {
"id": "B084KP4NBH",
"title": "The New Abnormal"
},
"artists": [
{
"id": "B00G70DLAS",
"name": "the-strokes"
}
],
"parentalSettings": {
"hasExplicitLanguage": false
}
},
{
"id": "B004S8NBPG",
"title": "Metabolism",
"duration": 181,
"isrc": "USRC10500421",
"audioQualities": [
"HD"
],
"mediaType": "audio",
"releaseDate": "2006-01-03T00:00:00.000Z",
"label": "Cult",
"url": "https://music.amazon.com/albums/B084KP4NBH/?trackAsin=B004S8NBPG",
"album": {
"id": "B084KP4NBH",
"title": "The New Abnormal"
},
"artists": [
{
"id": "B00G70DLAS",
"name": "the-strokes"
}
],
"parentalSettings": {
"hasExplicitLanguage": false
}
}
],
"nextToken": "B0EXAMP300"
}
Sparse Fieldsets Example
Sparse fieldsets — fields[track]=title,id,duration,artists&fields[artist]=name
{
"items": [
{
"id": "B084KPC3Q7",
"title": "Selfless",
"duration": 222,
"artists": [
{
"id": "B00G70DLAS",
"name": "the-strokes"
}
]
},
{
"id": "B004S8NBPG",
"title": "Metabolism",
"duration": 181,
"artists": [
{
"id": "B00G70DLAS",
"name": "the-strokes"
}
]
}
],
"nextToken": "B0EXAMP300"
}
Error Responses
| Response | Code | Status | Message |
|---|---|---|---|
| 400 | BAD_REQUEST | 400 | first parameter must be between 1 and 100 |
400 Example
{
"error": {
"code": "BAD_REQUEST",
"message": "first parameter must be between 1 and 100",
"traceId": "1-abc-def"
}
}
Save track to library
Path Parameters
| Name | Data Type | Required | Description |
|---|---|---|---|
| id | string | Yes | Unique identifier for the resource |
Response 200
Successful response
Response Schema
Example
{
"track": {
"id": "B084KPC3Q7",
"title": "Selfless",
"duration": 222
},
"saved": true
}
Error Responses
| Response | Code | Status | Message |
|---|---|---|---|
| 404 | NOT_FOUND | 404 | Track not found |
404 Example
{
"error": {
"code": "NOT_FOUND",
"message": "Track not found",
"traceId": "1-abc-def"
}
}
Remove track from library
Path Parameters
| Name | Data Type | Required | Description |
|---|---|---|---|
| id | string | Yes | Unique identifier for the resource |
Response 200
Successful response
Response Schema
Example
{
"track": {
"id": "B084KPC3Q7",
"title": "Selfless",
"duration": 222
},
"saved": false
}
Error Responses
| Response | Code | Status | Message |
|---|---|---|---|
| 404 | NOT_FOUND | 404 | Track not found |
404 Example
{
"error": {
"code": "NOT_FOUND",
"message": "Track not found",
"traceId": "1-abc-def"
}
}
Get followed artists
Paginated with forward-only cursor navigation. Default page
size is 20 items; maximum is 100. Use the nextToken from
the response to fetch the next page via the after query
parameter.
Supports sparse fieldsets via query parameters:
fields[artist]— Comma-separated artist fields (e.g. name,id,images)fields[image]— Comma-separated image fields (e.g. url)
Query Parameters
| Name | Data Type | Required | Description |
|---|---|---|---|
| artistIds | string | No | Comma-separated artist IDs to filter results (max 100) |
| first | integer | No | Number of items to return |
| after | string | No | Cursor to start after |
Response 200
Successful response
Response Schema
Example
Followed artists with full Artist fields
{
"items": [
{
"id": "B000X6FP38",
"name": "Karnivool",
"followerCount": 123456,
"url": "https://music.amazon.com/artists/B000X6FP38",
"images": [
{
"url": "https://m.media-amazon.com/images/I/B000X6FP38-1200.jpg",
"width": 1200,
"height": 1200,
"imageType": "PRIMARY"
}
]
},
{
"id": "B001ARTST2",
"name": "Periphery",
"followerCount": 654321,
"url": "https://music.amazon.com/artists/B001ARTST2",
"images": [
{
"url": "https://m.media-amazon.com/images/I/B001ARTST2-1200.jpg",
"width": 1200,
"height": 1200,
"imageType": "PRIMARY"
}
]
}
],
"nextToken": "B0NEXTPG04"
}
Sparse Fieldsets Example
Sparse fieldsets — fields[artist]=name,id,images&fields[image]=url
{
"items": [
{
"id": "B000X6FP38",
"name": "Karnivool",
"images": [
{
"url": "https://m.media-amazon.com/images/I/B000X6FP38-1200.jpg"
}
]
},
{
"id": "B001ARTST2",
"name": "Periphery",
"images": [
{
"url": "https://m.media-amazon.com/images/I/B001ARTST2-1200.jpg"
}
]
}
],
"nextToken": "B0NEXTPG04"
}
Error Responses
| Response | Code | Status | Message |
|---|---|---|---|
| 400 | BAD_REQUEST | 400 | first parameter must be between 1 and 100 |
400 Example
{
"error": {
"code": "BAD_REQUEST",
"message": "first parameter must be between 1 and 100",
"traceId": "1-abc-def"
}
}
Follow an artist
Path Parameters
| Name | Data Type | Required | Description |
|---|---|---|---|
| id | string | Yes | Unique identifier for the resource |
Response 200
Successful response
Response Schema
Example
{
"artist": {
"id": "B000X6FP38",
"name": "Karnivool"
},
"followState": "FOLLOWING"
}
Error Responses
| Response | Code | Status | Message |
|---|---|---|---|
| 404 | NOT_FOUND | 404 | Artist not found |
404 Example
{
"error": {
"code": "NOT_FOUND",
"message": "Artist not found",
"traceId": "1-abc-def"
}
}
Unfollow an artist
Path Parameters
| Name | Data Type | Required | Description |
|---|---|---|---|
| id | string | Yes | Unique identifier for the resource |
Response 200
Successful response
Response Schema
Example
{
"artist": {
"id": "B000X6FP38",
"name": "Karnivool"
},
"followState": "NOT_FOLLOWING"
}
Error Responses
| Response | Code | Status | Message |
|---|---|---|---|
| 404 | NOT_FOUND | 404 | Artist not found |
404 Example
{
"error": {
"code": "NOT_FOUND",
"message": "Artist not found",
"traceId": "1-abc-def"
}
}
Get saved podcast episodes
Paginated with forward-only cursor navigation. Default page
size is 20 items; maximum is 100. Use the nextToken from
the response to fetch the next page via the after query
parameter.
Supports sparse fieldsets via query parameters:
fields[podcastEpisode]— Comma-separated episode fields (e.g. title,id,duration,podcastShow)fields[podcastShow]— Comma-separated show fields (e.g. title,id)fields[image]— Comma-separated image fields (e.g. url)
Query Parameters
| Name | Data Type | Required | Description |
|---|---|---|---|
| podcastEpisodeIds | string | No | Comma-separated podcast episode IDs to filter results (max 100) |
| first | integer | No | Number of items to return |
| after | string | No | Cursor to start after |
Response 200
Successful response
Response Schema
Example
Saved podcast episodes with full PodcastEpisode fields
{
"items": [
{
"id": "B0EXAMP610",
"title": "Episode 42 — The Halting Problem in Practice",
"type": "FULL",
"description": "Why undecidability shows up in production runbooks more often than you think.",
"author": "Synthetic Studios",
"seasonNumber": 1,
"episodeNumber": 42,
"duration": 2640,
"releaseDate": "2025-04-12T00:00:00.000Z",
"url": "https://music.amazon.com/podcasts/B0EXAMP600/episodes/B0EXAMP610",
"images": [
{
"url": "https://m.media-amazon.com/images/I/B0EXAMP610-1400.jpg",
"width": 1400,
"height": 1400,
"imageType": "PRIMARY"
}
],
"parentalSettings": {
"hasExplicitLanguage": false
},
"podcastShow": {
"id": "B0EXAMP600",
"title": "Tech Frontiers Daily",
"type": "EPISODIC",
"author": "Synthetic Studios",
"url": "https://music.amazon.com/podcasts/B0EXAMP600"
}
},
{
"id": "B0EXAMP611",
"title": "Episode 43 — From Big-O to Bigger Outcomes",
"type": "FULL",
"description": "A field guide to translating algorithmic wins into product outcomes.",
"author": "Synthetic Studios",
"seasonNumber": 1,
"episodeNumber": 43,
"duration": 2820,
"releaseDate": "2025-04-13T00:00:00.000Z",
"url": "https://music.amazon.com/podcasts/B0EXAMP600/episodes/B0EXAMP611",
"images": [
{
"url": "https://m.media-amazon.com/images/I/B0EXAMP611-1400.jpg",
"width": 1400,
"height": 1400,
"imageType": "PRIMARY"
}
],
"parentalSettings": {
"hasExplicitLanguage": false
},
"podcastShow": {
"id": "B0EXAMP600",
"title": "Tech Frontiers Daily",
"type": "EPISODIC",
"author": "Synthetic Studios",
"url": "https://music.amazon.com/podcasts/B0EXAMP600"
}
}
],
"nextToken": "B0EXAMP630"
}
Sparse Fieldsets Example
Sparse fieldsets — fields[podcastEpisode]=title,id,duration,podcastShow&fields[podcastShow]=title,id
{
"items": [
{
"id": "B0EXAMP610",
"title": "Episode 42 — The Halting Problem in Practice",
"duration": 2640,
"podcastShow": {
"id": "B0EXAMP600",
"title": "Tech Frontiers Daily"
}
},
{
"id": "B0EXAMP611",
"title": "Episode 43 — From Big-O to Bigger Outcomes",
"duration": 2820,
"podcastShow": {
"id": "B0EXAMP600",
"title": "Tech Frontiers Daily"
}
}
],
"nextToken": "B0EXAMP630"
}
Error Responses
| Response | Code | Status | Message |
|---|---|---|---|
| 400 | BAD_REQUEST | 400 | first parameter must be between 1 and 100 |
400 Example
{
"error": {
"code": "BAD_REQUEST",
"message": "first parameter must be between 1 and 100",
"traceId": "1-abc-def"
}
}
Save podcast episode to library
Path Parameters
| Name | Data Type | Required | Description |
|---|---|---|---|
| id | string | Yes | Unique identifier for the resource |
Response 200
Successful response
Response Schema
Example
{
"podcastEpisode": {
"id": "B0EXAMP610",
"title": "Episode 42 — The Halting Problem in Practice",
"duration": 2640
},
"saved": true
}
Error Responses
| Response | Code | Status | Message |
|---|---|---|---|
| 404 | NOT_FOUND | 404 | Podcast episode not found |
404 Example
{
"error": {
"code": "NOT_FOUND",
"message": "Podcast episode not found",
"traceId": "1-abc-def"
}
}
Remove podcast episode from library
Path Parameters
| Name | Data Type | Required | Description |
|---|---|---|---|
| id | string | Yes | Unique identifier for the resource |
Response 200
Successful response
Response Schema
Example
{
"podcastEpisode": {
"id": "B0EXAMP610",
"title": "Episode 42 — The Halting Problem in Practice",
"duration": 2640
},
"saved": false
}
Error Responses
| Response | Code | Status | Message |
|---|---|---|---|
| 404 | NOT_FOUND | 404 | Podcast episode not found |
404 Example
{
"error": {
"code": "NOT_FOUND",
"message": "Podcast episode not found",
"traceId": "1-abc-def"
}
}
Get followed podcast shows
Paginated with forward-only cursor navigation. Default page
size is 20 items; maximum is 100. Use the nextToken from
the response to fetch the next page via the after query
parameter.
Supports sparse fieldsets via query parameters:
fields[podcastShow]— Comma-separated show fields (e.g. title,id,images)fields[image]— Comma-separated image fields (e.g. url)
Query Parameters
| Name | Data Type | Required | Description |
|---|---|---|---|
| first | integer | No | Number of items to return |
| after | string | No | Cursor to start after |
Response 200
Successful response
Response Schema
Example
Followed podcast shows with full PodcastShow fields
{
"items": [
{
"id": "B0EXAMP600",
"title": "Tech Frontiers Daily",
"type": "EPISODIC",
"description": "Daily conversations about software, systems, and the people who build them.",
"author": "Synthetic Studios",
"url": "https://music.amazon.com/podcasts/B0EXAMP600",
"images": [
{
"url": "https://m.media-amazon.com/images/I/B0EXAMP600-1400.jpg",
"width": 1400,
"height": 1400,
"imageType": "PRIMARY"
},
{
"url": "https://m.media-amazon.com/images/I/B0EXAMP600-640.jpg",
"width": 640,
"height": 640,
"imageType": "PRIMARY"
}
],
"parentalSettings": {
"hasExplicitLanguage": false
}
},
{
"id": "B0EXAMP601",
"title": "Algorithm Avenue",
"type": "SERIAL",
"description": "A serialised tour of the algorithms that quietly run the modern internet.",
"author": "Synthetic Studios",
"url": "https://music.amazon.com/podcasts/B0EXAMP601",
"images": [
{
"url": "https://m.media-amazon.com/images/I/B0EXAMP601-1400.jpg",
"width": 1400,
"height": 1400,
"imageType": "PRIMARY"
}
],
"parentalSettings": {
"hasExplicitLanguage": false
}
}
],
"nextToken": "B0EXAMP640"
}
Sparse Fieldsets Example
Sparse fieldsets — fields[podcastShow]=title,id,author,images&fields[image]=url
{
"items": [
{
"id": "B0EXAMP600",
"title": "Tech Frontiers Daily",
"author": "Synthetic Studios",
"images": [
{
"url": "https://m.media-amazon.com/images/I/B0EXAMP600-640.jpg"
}
]
},
{
"id": "B0EXAMP601",
"title": "Algorithm Avenue",
"author": "Synthetic Studios",
"images": [
{
"url": "https://m.media-amazon.com/images/I/B0EXAMP601-640.jpg"
}
]
}
],
"nextToken": "B0EXAMP640"
}
Error Responses
| Response | Code | Status | Message |
|---|---|---|---|
| 400 | BAD_REQUEST | 400 | first parameter must be between 1 and 100 |
400 Example
{
"error": {
"code": "BAD_REQUEST",
"message": "first parameter must be between 1 and 100",
"traceId": "1-abc-def"
}
}
Follow a podcast show
Path Parameters
| Name | Data Type | Required | Description |
|---|---|---|---|
| id | string | Yes | Unique identifier for the resource |
Response 200
Successful response
Response Schema
Example
{
"podcastShow": {
"id": "B0EXAMP600",
"title": "Tech Frontiers Daily"
},
"followState": "FOLLOWING"
}
Error Responses
| Response | Code | Status | Message |
|---|---|---|---|
| 404 | NOT_FOUND | 404 | Podcast show not found |
404 Example
{
"error": {
"code": "NOT_FOUND",
"message": "Podcast show not found",
"traceId": "1-abc-def"
}
}
Unfollow a podcast show
Path Parameters
| Name | Data Type | Required | Description |
|---|---|---|---|
| id | string | Yes | Unique identifier for the resource |
Response 200
Successful response
Response Schema
Example
{
"podcastShow": {
"id": "B0EXAMP600",
"title": "Tech Frontiers Daily"
},
"followState": "NOT_FOLLOWING"
}
Error Responses
| Response | Code | Status | Message |
|---|---|---|---|
| 404 | NOT_FOUND | 404 | Podcast show not found |
404 Example
{
"error": {
"code": "NOT_FOUND",
"message": "Podcast show not found",
"traceId": "1-abc-def"
}
}
Get account preferences
Response 200
Successful response
Response Schema
Example
{
"isExplicitLanguageAllowed": true
}
Error Responses
| Response | Code | Status | Message |
|---|---|---|---|
| 401 | UNAUTHORIZED | 401 | Authentication required |
401 Example
{
"error": {
"code": "UNAUTHORIZED",
"message": "Authentication required",
"traceId": "1-abc-def"
}
}
Set account preferences
Request Body
Request Schema
Request Example
{
"isExplicitLanguageAllowed": true
}
Response 200
Successful response
Response Schema
Example
{
"isExplicitLanguageAllowed": true
}
Error Responses
| Response | Code | Status | Message |
|---|---|---|---|
| 400 | BAD_REQUEST | 400 | isExplicitLanguageAllowed must be a boolean |
| 401 | UNAUTHORIZED | 401 | Authentication required |
400 Example
{
"error": {
"code": "BAD_REQUEST",
"message": "isExplicitLanguageAllowed must be a boolean",
"traceId": "1-abc-def"
}
}
401 Example
{
"error": {
"code": "UNAUTHORIZED",
"message": "Authentication required",
"traceId": "1-abc-def"
}
}
Get followed users
Paginated with forward-only cursor navigation. Default page
size is 20 items; maximum is 100. Use the nextToken from
the response to fetch the next page via the after query
parameter.
Supports sparse fieldsets via query parameters:
fields[user]— Comma-separated user fields (e.g. name,handle,images)fields[image]— Comma-separated image fields (e.g. url)
Query Parameters
| Name | Data Type | Required | Description |
|---|---|---|---|
| first | integer | No | Number of items to return |
| after | string | No | Cursor to start after |
Response 200
Successful response
Response Schema
Example
Followed users with full User fields
{
"items": [
{
"id": "B0EXAMPL01",
"name": "Mira Hayashi",
"handle": "mira-hayashi",
"url": "https://music.amazon.com/users/B0EXAMPL01",
"visibility": "PUBLIC",
"playbackVisibility": "PUBLIC",
"images": [
{
"url": "https://m.media-amazon.com/images/I/B0EXAMPL01-640.jpg",
"width": 640,
"height": 640,
"imageType": "PROFILE"
}
]
},
{
"id": "B0EXAMPL02",
"name": "Daniel Okafor",
"handle": "d-okafor",
"url": "https://music.amazon.com/users/B0EXAMPL02",
"visibility": "PUBLIC",
"playbackVisibility": "PRIVATE",
"images": [
{
"url": "https://m.media-amazon.com/images/I/B0EXAMPL02-640.jpg",
"width": 640,
"height": 640,
"imageType": "PROFILE"
}
]
}
],
"nextToken": "B0NEXTPG01"
}
Sparse Fieldsets Example
Sparse fieldsets — fields[user]=name,handle,images&fields[image]=url
{
"items": [
{
"id": "B0EXAMPL01",
"name": "Mira Hayashi",
"handle": "mira-hayashi",
"images": [
{
"url": "https://m.media-amazon.com/images/I/B0EXAMPL01-640.jpg"
}
]
},
{
"id": "B0EXAMPL02",
"name": "Daniel Okafor",
"handle": "d-okafor",
"images": [
{
"url": "https://m.media-amazon.com/images/I/B0EXAMPL02-640.jpg"
}
]
}
],
"nextToken": "B0NEXTPG01"
}
Error Responses
| Response | Code | Status | Message |
|---|---|---|---|
| 400 | BAD_REQUEST | 400 | first parameter must be between 1 and 100 |
400 Example
{
"error": {
"code": "BAD_REQUEST",
"message": "first parameter must be between 1 and 100",
"traceId": "1-abc-def"
}
}
Follow a user
Path Parameters
| Name | Data Type | Required | Description |
|---|---|---|---|
| id | string | Yes | Unique identifier for the resource |
Response 200
Successful response
Response Schema
Example
{
"user": {
"id": "B0EXAMPL01",
"name": "Mira Hayashi",
"handle": "mira-hayashi"
},
"followState": "FOLLOWING"
}
Error Responses
| Response | Code | Status | Message |
|---|---|---|---|
| 404 | NOT_FOUND | 404 | User not found |
404 Example
{
"error": {
"code": "NOT_FOUND",
"message": "User not found",
"traceId": "1-abc-def"
}
}
Unfollow a user
Path Parameters
| Name | Data Type | Required | Description |
|---|---|---|---|
| id | string | Yes | Unique identifier for the resource |
Response 200
Successful response
Response Schema
Example
{
"user": {
"id": "B0EXAMPL01",
"name": "Mira Hayashi",
"handle": "mira-hayashi"
},
"followState": "NOT_FOLLOWING"
}
Error Responses
| Response | Code | Status | Message |
|---|---|---|---|
| 404 | NOT_FOUND | 404 | User not found |
404 Example
{
"error": {
"code": "NOT_FOUND",
"message": "User not found",
"traceId": "1-abc-def"
}
}
Get followers
Paginated with forward-only cursor navigation. Default page
size is 20 items; maximum is 100. Use the nextToken from
the response to fetch the next page via the after query
parameter.
Supports sparse fieldsets via query parameters:
fields[user]— Comma-separated user fields (e.g. name,handle,images)fields[image]— Comma-separated image fields (e.g. url)
Query Parameters
| Name | Data Type | Required | Description |
|---|---|---|---|
| first | integer | No | Number of items to return |
| after | string | No | Cursor to start after |
Response 200
Successful response
Response Schema
Example
Followers with full User fields
{
"items": [
{
"id": "B0EXAMPL04",
"name": "Priya Mahajan",
"handle": "priya-m",
"url": "https://music.amazon.com/users/B0EXAMPL04",
"visibility": "PUBLIC",
"playbackVisibility": "PUBLIC",
"images": [
{
"url": "https://m.media-amazon.com/images/I/B0EXAMPL04-640.jpg",
"width": 640,
"height": 640,
"imageType": "PROFILE"
}
]
},
{
"id": "B0EXAMPL05",
"name": "Theo Lambert",
"handle": "t-lambert",
"url": "https://music.amazon.com/users/B0EXAMPL05",
"visibility": "PUBLIC",
"playbackVisibility": "PRIVATE",
"images": [
{
"url": "https://m.media-amazon.com/images/I/B0EXAMPL05-640.jpg",
"width": 640,
"height": 640,
"imageType": "PROFILE"
}
]
}
],
"nextToken": "B0NEXTPG05"
}
Sparse Fieldsets Example
Sparse fieldsets — fields[user]=name,handle,images&fields[image]=url
{
"items": [
{
"id": "B0EXAMPL04",
"name": "Priya Mahajan",
"handle": "priya-m",
"images": [
{
"url": "https://m.media-amazon.com/images/I/B0EXAMPL04-640.jpg"
}
]
},
{
"id": "B0EXAMPL05",
"name": "Theo Lambert",
"handle": "t-lambert",
"images": [
{
"url": "https://m.media-amazon.com/images/I/B0EXAMPL05-640.jpg"
}
]
}
],
"nextToken": "B0NEXTPG05"
}
Error Responses
| Response | Code | Status | Message |
|---|---|---|---|
| 400 | BAD_REQUEST | 400 | first parameter must be between 1 and 100 |
400 Example
{
"error": {
"code": "BAD_REQUEST",
"message": "first parameter must be between 1 and 100",
"traceId": "1-abc-def"
}
}
Get owned playlists
Paginated with forward-only cursor navigation. Default page
size is 20 items; maximum is 100. Use the nextToken from
the response to fetch the next page via the after query
parameter.
Supports an optional sortBy query parameter to control
the order of results, plus sparse fieldsets via:
fields[playlist]— Comma-separated playlist fields (e.g. title,id,trackCount)fields[image]— Comma-separated image fields (e.g. url)
Query Parameters
| Name | Data Type | Required | Description |
|---|---|---|---|
| first | integer | No | Number of items to return |
| after | string | No | Cursor to start after |
| sortBy | PlaylistSortBy | No | Field to sort by |
Response 200
Successful response
Response Schema
Example
Owned playlists with full Playlist fields
{
"items": [
{
"id": "B0PLAYLST1",
"title": "Late Night Coding",
"description": "Synthwave for shipping at 2am.",
"visibility": "PRIVATE",
"trackCount": 24,
"duration": 5760,
"url": "https://music.amazon.com/playlists/B0PLAYLST1",
"owner": {
"id": "B0EXAMPL01",
"name": "Mira Hayashi",
"handle": "mira-hayashi"
},
"images": [
{
"url": "https://m.media-amazon.com/images/I/B0PLAYLST1-640.jpg",
"width": 640,
"height": 640,
"imageType": "PRIMARY"
}
]
},
{
"id": "B0PLAYLST2",
"title": "Sunday Reset",
"description": "Acoustic mornings.",
"visibility": "PUBLIC",
"trackCount": 12,
"duration": 2880,
"url": "https://music.amazon.com/playlists/B0PLAYLST2",
"owner": {
"id": "B0EXAMPL01",
"name": "Mira Hayashi",
"handle": "mira-hayashi"
},
"images": [
{
"url": "https://m.media-amazon.com/images/I/B0PLAYLST2-640.jpg",
"width": 640,
"height": 640,
"imageType": "PRIMARY"
}
]
}
],
"nextToken": "B0NEXTPG02"
}
Sparse Fieldsets Example
Sparse fieldsets — fields[playlist]=title,id,trackCount&fields[image]=url
{
"items": [
{
"id": "B0PLAYLST1",
"title": "Late Night Coding",
"trackCount": 24
},
{
"id": "B0PLAYLST2",
"title": "Sunday Reset",
"trackCount": 12
}
],
"nextToken": "B0NEXTPG02"
}
Error Responses
| Response | Code | Status | Message |
|---|---|---|---|
| 400 | BAD_REQUEST | 400 | first parameter must be between 1 and 100 |
400 Example
{
"error": {
"code": "BAD_REQUEST",
"message": "first parameter must be between 1 and 100",
"traceId": "1-abc-def"
}
}
Get followed playlists
Paginated with forward-only cursor navigation. Default page
size is 20 items; maximum is 100. Use the nextToken from
the response to fetch the next page via the after query
parameter.
Supports sparse fieldsets via query parameters:
fields[playlist]— Comma-separated playlist fields (e.g. title,id,images)fields[image]— Comma-separated image fields (e.g. url)
Query Parameters
| Name | Data Type | Required | Description |
|---|---|---|---|
| playlistIds | string | No | Comma-separated playlist IDs to filter results (max 100) |
| first | integer | No | Number of items to return |
| after | string | No | Cursor to start after |
Response 200
Successful response
Response Schema
Example
Followed playlists with full Playlist fields
{
"items": [
{
"id": "B0PLAYLST3",
"title": "Indie Discoveries",
"description": "Curated weekly drops from the indie scene.",
"visibility": "PUBLIC",
"trackCount": 50,
"duration": 12000,
"url": "https://music.amazon.com/playlists/B0PLAYLST3",
"owner": {
"id": "B0EXAMPL02",
"name": "Daniel Okafor",
"handle": "d-okafor"
},
"images": [
{
"url": "https://m.media-amazon.com/images/I/B0PLAYLST3-640.jpg",
"width": 640,
"height": 640,
"imageType": "PRIMARY"
}
]
},
{
"id": "B0PLAYLST4",
"title": "Mood: Focus",
"description": "Long-form ambient for deep work.",
"visibility": "PUBLIC",
"trackCount": 80,
"duration": 19200,
"url": "https://music.amazon.com/playlists/B0PLAYLST4",
"owner": {
"id": "B0EXAMPL03",
"name": "Sam Rivera",
"handle": "s-rivera"
},
"images": [
{
"url": "https://m.media-amazon.com/images/I/B0PLAYLST4-640.jpg",
"width": 640,
"height": 640,
"imageType": "PRIMARY"
}
]
}
],
"nextToken": "B0NEXTPG03"
}
Sparse Fieldsets Example
Sparse fieldsets — fields[playlist]=title,id,trackCount,images&fields[image]=url
{
"items": [
{
"id": "B0PLAYLST3",
"title": "Indie Discoveries",
"trackCount": 50,
"images": [
{
"url": "https://m.media-amazon.com/images/I/B0PLAYLST3-640.jpg"
}
]
},
{
"id": "B0PLAYLST4",
"title": "Mood: Focus",
"trackCount": 80,
"images": [
{
"url": "https://m.media-amazon.com/images/I/B0PLAYLST4-640.jpg"
}
]
}
],
"nextToken": "B0NEXTPG03"
}
Error Responses
| Response | Code | Status | Message |
|---|---|---|---|
| 400 | BAD_REQUEST | 400 | first parameter must be between 1 and 100 |
400 Example
{
"error": {
"code": "BAD_REQUEST",
"message": "first parameter must be between 1 and 100",
"traceId": "1-abc-def"
}
}
Follow a playlist
Path Parameters
| Name | Data Type | Required | Description |
|---|---|---|---|
| id | string | Yes | Unique identifier for the resource |
Response 200
Successful response
Response Schema
Example
{
"playlist": {
"id": "B0PLAYLST3",
"title": "Indie Discoveries"
},
"followState": "FOLLOWING"
}
Error Responses
| Response | Code | Status | Message |
|---|---|---|---|
| 404 | NOT_FOUND | 404 | Playlist not found |
404 Example
{
"error": {
"code": "NOT_FOUND",
"message": "Playlist not found",
"traceId": "1-abc-def"
}
}
Unfollow a playlist
Path Parameters
| Name | Data Type | Required | Description |
|---|---|---|---|
| id | string | Yes | Unique identifier for the resource |
Response 200
Successful response
Response Schema
Example
{
"playlist": {
"id": "B0PLAYLST3",
"title": "Indie Discoveries"
},
"followState": "NOT_FOLLOWING"
}
Error Responses
| Response | Code | Status | Message |
|---|---|---|---|
| 404 | NOT_FOUND | 404 | Playlist not found |
404 Example
{
"error": {
"code": "NOT_FOUND",
"message": "Playlist not found",
"traceId": "1-abc-def"
}
}
Get library albums
Query Parameters
| Name | Data Type | Required | Description |
|---|---|---|---|
| albumIds | string[] | No | Album IDs to filter results |
| first | integer | No | Number of items to return |
| after | string | No | Cursor to start after |
| sortBy | string (Relevance|Name|DateAdded) | No | Sort order for library albums |
Response 200
Successful response
Response Schema
Example (default)
Library albums response
{
"items": [
{
"id": "B0B97YW7G7",
"title": "Periphery III: Select Difficulty",
"releaseDate": "2016-07-22T00:00:00.000Z"
}
],
"nextToken": "abc123"
}
Sparse Fieldsets Example
Sparse fieldsets — fields[album]=title,id
{
"items": [
{
"id": "B0B97YW7G7",
"title": "Periphery III: Select Difficulty"
}
],
"nextToken": "abc123"
}
Error Responses
| Response | Code | Status | Message |
|---|---|---|---|
| 400 | BAD_REQUEST | 400 | first parameter must be between 1 and 100 |
400 Example
{
"error": {
"code": "BAD_REQUEST",
"message": "first parameter must be between 1 and 100",
"traceId": "1-abc-def"
}
}
Save album to library
Path Parameters
| Name | Data Type | Required | Description |
|---|---|---|---|
| id | string | Yes | Unique identifier for the resource |
Response 200
Successful response
Response Schema
Example (default)
Saved album
{
"album": {
"id": "B0B97YW7G7",
"title": "Periphery III: Select Difficulty",
"releaseDate": "2016-07-22T00:00:00.000Z"
}
}
Error Responses
| Response | Code | Status | Message |
|---|---|---|---|
| 404 | NOT_FOUND | 404 | Album not found |
404 Example
{
"error": {
"code": "NOT_FOUND",
"message": "Album not found",
"traceId": "1-abc-def"
}
}
Remove album from library
Path Parameters
| Name | Data Type | Required | Description |
|---|---|---|---|
| id | string | Yes | Unique identifier for the resource |
Response 200
Successful response
Response Schema
Example (default)
Removed album
{
"album": {
"id": "B0B97YW7G7",
"title": "Periphery III: Select Difficulty",
"releaseDate": "2016-07-22T00:00:00.000Z"
}
}
Error Responses
| Response | Code | Status | Message |
|---|---|---|---|
| 404 | NOT_FOUND | 404 | Album not found |
404 Example
{
"error": {
"code": "NOT_FOUND",
"message": "Album not found",
"traceId": "1-abc-def"
}
}

