Amazon Music Web API
Web API Tracks V2.0
Tracks
Get multiple tracks by IDs
Pass a comma-separated list of track IDs via the ids query parameter.
Maximum 20 IDs per request. The response items are returned in the same
order as the requested IDs; IDs that cannot be resolved produce a 404
for the whole request.
Supports sparse fieldsets via query parameters:
fields[track]— Comma-separated track fields (e.g. title,id,duration,album,artists)fields[album]— Comma-separated album fields (e.g. title,id)fields[artist]— Comma-separated artist fields (e.g. name)fields[image]— Comma-separated image fields (e.g. url)
Query Parameters
| Name | Data Type | Required | Description |
|---|---|---|---|
| ids | string[] | Yes | Comma-separated list of track IDs (max 20) |
| territory | string | No | Territory code for content availability |
Response 200
Successful response
Response Schema
Example
Full response with every Track field populated
[
{
"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
},
"eligibility": {
"isDownloadable": true,
"isPurchaseable": true,
"isPreviewable": true,
"isPrimeEligible": true
}
},
{
"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
},
"eligibility": {
"isDownloadable": true,
"isPurchaseable": true,
"isPreviewable": true,
"isPrimeEligible": true
}
}
]
Sparse Fieldsets Example
Sparse fieldsets — fields[track]=title,id,duration,artists&fields[artist]=name
[
{
"id": "B084KPC3Q7",
"title": "Selfless",
"duration": 222,
"artists": [
{
"id": "B00G70DLAS",
"name": "the-strokes"
}
]
},
{
"id": "B004S8NBPG",
"title": "Metabolism",
"duration": 181,
"artists": [
{
"id": "B00G70DLAS",
"name": "the-strokes"
}
]
}
]
Error Responses
| Response | Code | Status | Message |
|---|---|---|---|
| 400 | BAD_REQUEST | 400 | ids parameter is required and must contain 1-20 comma-separated IDs |
| 404 | NOT_FOUND | 404 | One or more tracks not found |
400 Example
{
"error": {
"code": "BAD_REQUEST",
"message": "ids parameter is required and must contain 1-20 comma-separated IDs",
"traceId": "1-abc-def"
}
}
404 Example
{
"error": {
"code": "NOT_FOUND",
"message": "One or more tracks not found",
"traceId": "1-abc-def"
}
}
Get track by ID
Supports sparse fieldsets via query parameters:
fields[track]— Comma-separated track fields (e.g. title,id,duration,album,artists)fields[album]— Comma-separated album fields (e.g. title,id)fields[artist]— Comma-separated artist fields (e.g. name)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 |
|---|---|---|---|
| territory | string | No | Territory code for content availability |
| mediaType | string (audio|video) | No | Filter by media type (audio or video) |
Response 200
Successful response
Response Schema
Example
Full track response
{
"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
}
}
Sparse Fieldsets Example
Sparse fieldsets — fields[track]=title,id,duration,artists&fields[artist]=name
{
"id": "B084KPC3Q7",
"title": "Selfless",
"duration": 222,
"artists": [
{
"id": "B00G70DLAS",
"name": "the-strokes"
}
]
}
Error Responses
| Response | Code | Status | Message |
|---|---|---|---|
| 400 | BAD_REQUEST | 400 | Invalid field 'nonexistent' for type 'track' |
| 404 | NOT_FOUND | 404 | Track not found |
400 Example
{
"error": {
"code": "BAD_REQUEST",
"message": "Invalid field 'nonexistent' for type 'track'",
"traceId": "1-abc-def"
}
}
404 Example
{
"error": {
"code": "NOT_FOUND",
"message": "Track not found",
"traceId": "1-abc-def"
}
}
Get top 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,album,artists)fields[album]— Comma-separated album fields (e.g. title,id)fields[artist]— Comma-separated artist fields (e.g. name)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
Top 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": "B0EXAMP240"
}
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": "B0EXAMP240"
}
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"
}
}

