Amazon Music Web API
Web API Podcasts V2.0
Podcasts
- Get multiple podcast shows by IDs
- Get podcast show by ID
- Get multiple podcast episodes by IDs
- Get podcast episode by ID
Get multiple podcast shows by IDs
Each show carries a single embedded page of episodes
windowed by the first (1–100, default 20) and after
(opaque cursor) query parameters. The cursor scopes every
show in the batch — to page deeper into one specific show,
call GET /v2/podcasts/shows/{id} instead.
Supports sparse fieldsets via query parameters:
fields[podcastShow]— Comma-separated show fields (e.g. title,id,images,episodes)fields[podcastEpisode]— Comma-separated episode fields (e.g. title,id,duration)fields[image]— Comma-separated image fields (e.g. url)
Query Parameters
| Name | Data Type | Required | Description |
|---|---|---|---|
| ids | string[] | Yes | Comma-separated list of podcast show IDs (max 100) |
| first | integer | No | Number of episodes to embed per show |
| after | string | No | Cursor to start the embedded episode page after |
Response 200
Successful response
Response Schema
Example
Full response with every PodcastShow field populated
[
{
"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"
}
],
"parentalSettings": {
"hasExplicitLanguage": false
},
"episodes": [
{
"id": "B0EXAMP610",
"title": "Episode 42 — The Halting Problem in Practice",
"type": "FULL",
"seasonNumber": 1,
"episodeNumber": 42,
"duration": 2640,
"releaseDate": "2025-04-12T00:00:00.000Z",
"url": "https://music.amazon.com/podcasts/B0EXAMP600/episodes/B0EXAMP610"
},
{
"id": "B0EXAMP611",
"title": "Episode 43 — From Big-O to Bigger Outcomes",
"type": "FULL",
"seasonNumber": 1,
"episodeNumber": 43,
"duration": 2820,
"releaseDate": "2025-04-13T00:00:00.000Z",
"url": "https://music.amazon.com/podcasts/B0EXAMP600/episodes/B0EXAMP611"
}
]
},
{
"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
},
"episodes": [
{
"id": "B0EXAMP620",
"title": "Episode 1 — The Page-Rank Origin Story",
"type": "FULL",
"seasonNumber": 1,
"episodeNumber": 1,
"duration": 1980,
"releaseDate": "2024-09-05T00:00:00.000Z",
"url": "https://music.amazon.com/podcasts/B0EXAMP601/episodes/B0EXAMP620"
}
]
}
]
Sparse Fieldsets Example
Sparse fieldsets — fields[podcastShow]=title,id,author&fields[podcastEpisode]=title,id
[
{
"id": "B0EXAMP600",
"title": "Tech Frontiers Daily",
"author": "Synthetic Studios"
},
{
"id": "B0EXAMP601",
"title": "Algorithm Avenue",
"author": "Synthetic Studios"
}
]
Error Responses
| Response | Code | Status | Message |
|---|---|---|---|
| 400 | BAD_REQUEST | 400 | ids parameter is required and must contain 1-100 comma-separated IDs |
| 404 | NOT_FOUND | 404 | One or more podcast shows not found |
400 Example
{
"error": {
"code": "BAD_REQUEST",
"message": "ids parameter is required and must contain 1-100 comma-separated IDs",
"traceId": "1-abc-def"
}
}
404 Example
{
"error": {
"code": "NOT_FOUND",
"message": "One or more podcast shows not found",
"traceId": "1-abc-def"
}
}
Get podcast show by ID
The embedded episodes array is windowed by the
first (1–100, default 20) and after (opaque cursor)
query parameters. Use the standalone episode endpoints
(GET /v2/podcasts/episodes or
GET /v2/podcasts/episodes/{id}) to retrieve episodes
outside that window.
Supports sparse fieldsets via query parameters:
fields[podcastShow]— Comma-separated show fields (e.g. title,id,images,episodes)fields[podcastEpisode]— Comma-separated episode fields (e.g. title,id,duration)fields[image]— Comma-separated image fields (e.g. url)
Path Parameters
| Name | Data Type | Required | Description |
|---|---|---|---|
| id | string | Yes | Unique identifier for the resource |
Query Parameters
| Name | Data Type | Required | Description |
|---|---|---|---|
| first | integer | No | Number of episodes to embed on the show response |
| after | string | No | Cursor to start the embedded episode page after |
Response 200
Successful response
Response Schema
Example
Full podcast show response with embedded episode page
{
"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
},
"episodes": [
{
"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"
},
{
"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"
}
]
}
Sparse Fieldsets Example
Sparse fieldsets — fields[podcastShow]=title,id,author,episodes&fields[podcastEpisode]=title,id,duration
{
"id": "B0EXAMP600",
"title": "Tech Frontiers Daily",
"author": "Synthetic Studios",
"episodes": [
{
"id": "B0EXAMP610",
"title": "Episode 42 — The Halting Problem in Practice",
"duration": 2640
},
{
"id": "B0EXAMP611",
"title": "Episode 43 — From Big-O to Bigger Outcomes",
"duration": 2820
}
]
}
Error Responses
| Response | Code | Status | Message |
|---|---|---|---|
| 400 | BAD_REQUEST | 400 | first parameter must be between 1 and 100 |
| 404 | NOT_FOUND | 404 | Podcast show not found |
400 Example
{
"error": {
"code": "BAD_REQUEST",
"message": "first parameter must be between 1 and 100",
"traceId": "1-abc-def"
}
}
404 Example
{
"error": {
"code": "NOT_FOUND",
"message": "Podcast show not found",
"traceId": "1-abc-def"
}
}
Get multiple podcast episodes by IDs
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 |
|---|---|---|---|
| ids | string[] | Yes | Comma-separated list of podcast episode IDs (max 100) |
Response 200
Successful response
Response Schema
Example
Full response with every PodcastEpisode field populated
[
{
"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"
}
}
]
Sparse Fieldsets Example
Sparse fieldsets — fields[podcastEpisode]=title,id,duration,podcastShow&fields[podcastShow]=title,id
[
{
"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"
}
}
]
Error Responses
| Response | Code | Status | Message |
|---|---|---|---|
| 400 | BAD_REQUEST | 400 | ids parameter is required and must contain 1-100 comma-separated IDs |
| 404 | NOT_FOUND | 404 | One or more podcast episodes not found |
400 Example
{
"error": {
"code": "BAD_REQUEST",
"message": "ids parameter is required and must contain 1-100 comma-separated IDs",
"traceId": "1-abc-def"
}
}
404 Example
{
"error": {
"code": "NOT_FOUND",
"message": "One or more podcast episodes not found",
"traceId": "1-abc-def"
}
}
Get podcast episode by ID
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)
Path Parameters
| Name | Data Type | Required | Description |
|---|---|---|---|
| id | string | Yes | Unique identifier for the resource |
Response 200
Successful response
Response Schema
Example
Full podcast episode response with show reference
{
"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"
},
{
"url": "https://m.media-amazon.com/images/I/B0EXAMP610-640.jpg",
"width": 640,
"height": 640,
"imageType": "PRIMARY"
}
],
"parentalSettings": {
"hasExplicitLanguage": false
},
"podcastShow": {
"id": "B0EXAMP600",
"title": "Tech Frontiers Daily",
"type": "EPISODIC",
"author": "Synthetic Studios",
"url": "https://music.amazon.com/podcasts/B0EXAMP600"
}
}
Sparse Fieldsets Example
Sparse fieldsets — fields[podcastEpisode]=title,id,duration,podcastShow&fields[podcastShow]=title,id
{
"id": "B0EXAMP610",
"title": "Episode 42 — The Halting Problem in Practice",
"duration": 2640,
"podcastShow": {
"id": "B0EXAMP600",
"title": "Tech Frontiers Daily"
}
}
Error Responses
| Response | Code | Status | Message |
|---|---|---|---|
| 400 | BAD_REQUEST | 400 | Invalid field 'nonexistent' for type 'podcastEpisode' |
| 404 | NOT_FOUND | 404 | Podcast episode not found |
400 Example
{
"error": {
"code": "BAD_REQUEST",
"message": "Invalid field 'nonexistent' for type 'podcastEpisode'",
"traceId": "1-abc-def"
}
}
404 Example
{
"error": {
"code": "NOT_FOUND",
"message": "Podcast episode not found",
"traceId": "1-abc-def"
}
}

