Amazon Developer

as

Settings
Sign out
Notifications
Alexa
Amazon Appstore
Ring
AWS
Documentation
Support
Contact Us
My Cases

Amazon Music Web API

Web API Tracks V2.0

Tracks

Get multiple tracks by IDs

GET
/v2/tracks
Authorization Scope: [music::catalog]
Retrieve the Amazon Music catalog metadata for multiple tracks in a single request. Available track fields include the title, duration, ISRC, audio qualities, album, contributing artists, release date, label, parental settings, and eligibility flags; use the sparse fieldset parameters below to select which to return.

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

(array)
Track[]

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

GET
/v2/tracks/{id}
Authorization Scope: [music::catalog]
Retrieve the Amazon Music catalog metadata for a single track by its track id. Available track fields include the title, duration, ISRC, audio qualities, album, contributing artists, release date, label, parental settings, and eligibility flags; use the sparse fieldset parameters below to select which to return.

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

_type
string
Discriminator value identifying this entity as a Track
id
string
Unique track identifier (default -> GlobalAsin)
title
string
Track title
duration
number
Track duration in seconds
isrc
string
International Standard Recording Code
url
string [format=uri]
URL into AmazonMusic for this track
previewUrl
string [format=uri]
URL for track preview
audioQualities
array
Audio qualities available for this Track (SD is available by default)
audioQualities[]
enum (SD|HD|UHD|ATMOS|360RA)
mediaType
enum (audio|video)
Media type of this track: `audio` or `video`.
globalAsin
string
Global unique identifier for the track
shortTitle
string
Short title of the track
releaseDate
string
Date this track was released
label
string
Label associated with this track
availableMarkets
Market[]
List of available markets for this track
eligibility
Eligibility
parentalSettings
ParentalSettings
album
BaseAlbum
artists
BaseArtist[]
Artists contributing to this track

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

GET
/v2/tracks/top
Authorization Scope: [music::catalog]
Retrieve a list of the most popular tracks in the Amazon Music catalog, ordered by popularity. Available track fields include the title, duration, ISRC, audio qualities, album, contributing artists, release date, label, parental settings, and eligibility flags; use the sparse fieldset parameters below to select which to return.

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

items
Track[]
Page of results.
nextToken
string
Cursor for the next page. Absent on the last page.

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"
  }
}