Query Examples
Query Examples¶
In this guide you can try the included queries to get started with FireFly.
For a review of key GraphQL concepts, see the Learn section of the GraphQL Foundation’s website. Also see the Insomnia setup guide.
Artist with Albums and Tracks¶
The artist field requires an id as an argument. In this example, B000QJJPUG, is the ASIN for Fleetwood Mac.
Note: Increased layers of nesting can have a negative impact on latency. To analyze the complexity of your query, use the header x-amzn-feature-flags: complexity
query {
artist(id: "B000QJJPUG") {
id
name
albums {
edges {
node {
title
tracks {
id
}
}
}
}
}
}
User¶
This query returns basic information about a user, such as subscription tier and the number of their followers.
query {
user {
id
name
tier
followers {
totalCount
}
}
}
Recommendation¶
Here is an example of a query that is currently in production for the Browse Home page:
Make sure any queries you write are following best practices
query browseCollections {
t1r: recommendationCollection(type: "topOneRecommender") {
recommendationConnection {
edges {
node {
...recommendationForTopRecommender
}
}
}
}
browse: recommendationCollection {
recommendationConnection {
edges {
node {
...recommendationWidgetRecommendation
}
}
pageInfo {
hasNextPage
token
metricId
}
}
}
}
fragment itemAlbumPlayback on Album {
playParams {
id
containerId
selections
}
}
fragment bauhausItemFeaturedAlbum on Album {
id
title
images {
url
}
releaseDate
artistNames
...itemAlbumPlayback
}
fragment itemPlaylistPlayback on Playlist {
playParams {
id
containerId
selections
}
}
fragment bauhausItemFeaturedPlaylist on Playlist {
_type
id
title
url
images {
url
imageType
height
width
}
...itemPlaylistPlayback
}
fragment itemStationPlayback on Station {
playParams {
id
containerId
selections
}
}
fragment bauhausItemFeaturedStation on Station {
id
name
images {
url
height
width
imageType
}
...itemStationPlayback
}
fragment itemPodcastShowPlayback on PodcastShow {
playParams {
id
selections
}
}
fragment itemPodcastEpisodePlayback on PodcastEpisode {
playParams {
id
selections
}
podcast {
...itemPodcastShowPlayback
}
}
fragment bauhausItemFeaturedPodcastEpisode on PodcastEpisode {
id
title
contentBenefitTypes
images {
url
height
width
imageType
}
podcast {
id
title
playParams {
id
}
}
...itemPodcastEpisodePlayback
}
fragment bauhausItemFeaturedPromotion on Promotion {
id
title
description
images {
width
height
url
aspectRatio
}
url
}
fragment recommendationEntityEdgeMetricContext on EntityEdge {
metricId
}
fragment bauhausItemFeaturedTrack on Track {
id
contributingArtists {
edges {
node {
id
name
images {
width
height
url
imageType
}
}
}
}
title
}
fragment useUiContentViewRecommendation on Recommendation {
id
metricId
recommendedContent {
edgeCount
}
}
fragment playCapabilityAlbum on Album {
id
eligibility {
playback {
canPlayOnDemand
shuffleType
}
}
}
fragment playbackIndicatorCapabilityAlbum on Album {
id
...playCapabilityAlbum
}
fragment itemAlbumUiClickEntityContext on Album {
id
title
}
fragment badgesCapabilityAlbum on Album {
id
...playCapabilityAlbum
audioQualities
}
fragment downloadCapabilityAlbum on Album {
id
eligibility {
isDownloadable
}
}
fragment bauhausItemAlbum on Album {
id
title
images {
url
}
releaseDate
format
contributingArtists {
edges {
node {
id
name
}
role
}
}
...itemAlbumPlayback
...playCapabilityAlbum
...playbackIndicatorCapabilityAlbum
...itemAlbumUiClickEntityContext
...badgesCapabilityAlbum
...downloadCapabilityAlbum
}
fragment itemArtistUiClickEntityContext on Artist {
id
name
}
fragment itemArtistPlayback on Artist {
id
playParams {
id
selections
}
}
fragment useShareActionOnArtist on Artist {
id
url
name
images {
height
width
imageType
url
}
}
fragment overflowMenuArtist on Artist {
id
name
...useShareActionOnArtist
}
fragment bauhausItemArtist on Artist {
id
name
images {
url
imageType
width
height
}
...itemArtistUiClickEntityContext
...itemArtistPlayback
...overflowMenuArtist
}
fragment bauhausItemLiveEvent on LiveEvent {
id
name
images {
url
}
status
startDate
}
fragment itemMerchUiClickEntityContext on Merch {
id
}
fragment bauhausItemMerch on Merch {
id
name
price
assetType
images {
url
}
relatedAssetTypes
...itemMerchUiClickEntityContext
}
fragment itemPlaylistBadgeAllAccess on Playlist {
eligibility {
isAllAccess
}
}
fragment playCapabilityPlaylist on Playlist {
id
eligibility {
playback {
canPlayOnDemand
shuffleType
}
}
}
fragment playbackIndicatorCapabilityPlaylist on Playlist {
id
...playCapabilityPlaylist
}
fragment itemPlaylistUiClickEntityContext on Playlist {
id
title
}
fragment badgesCapabilityPlaylist on Playlist {
id
...playCapabilityPlaylist
}
fragment downloadCapabilityPlaylist on Playlist {
id
eligibility {
isDownloadable
}
}
fragment addSongsMenuItemPlaylist on Playlist {
id
eligibility {
isEditable
}
trackCount
}
fragment reportEntityOnPlaylist on Playlist {
id
eligibility {
canSubmitFeedback
}
}
fragment useEditCapabilityOnPlaylist on Playlist {
id
eligibility {
isEditable
}
}
fragment usePrivacyToggleOnPlaylist on Playlist {
id
title
description
visibility
followers {
totalCount
}
...reportEntityOnPlaylist
...useEditCapabilityOnPlaylist
}
fragment canShareOnPlaylist on Playlist {
id
visibility
}
fragment useShareActionOnPlaylist on Playlist {
id
url
sharingUrl
title
images {
height
width
imageType
url
}
curator {
id
name
}
}
fragment useFollowActionOnPlaylist on Playlist {
id
playParams {
id
containerId
selections
}
}
fragment overflowMenuPlaylist on Playlist {
id
title
trackCount
...playCapabilityPlaylist
...addSongsMenuItemPlaylist
...usePrivacyToggleOnPlaylist
...reportEntityOnPlaylist
...canShareOnPlaylist
...useShareActionOnPlaylist
...useFollowActionOnPlaylist
}
fragment bauhausItemPlaylist on Playlist {
id
title
contributors
images {
url
imageType
height
width
}
...itemPlaylistPlayback
...itemPlaylistBadgeAllAccess
...playCapabilityPlaylist
...playbackIndicatorCapabilityPlaylist
...itemPlaylistUiClickEntityContext
...badgesCapabilityPlaylist
...downloadCapabilityPlaylist
...overflowMenuPlaylist
}
fragment itemPodcastEpisodeUiClickEntityContext on PodcastEpisode {
id
metricId
}
fragment usePlaybackActionOnPodcastEpisode on PodcastEpisode {
id
title
playParams {
id
selections
}
metricId
podcast {
id
title
playParams {
id
}
}
playbackInformation {
progressMilliseconds
}
}
fragment useShareActionOnPodcastEpisode on PodcastEpisode {
id
title
podcast {
id
title
}
images {
height
width
imageType
url
}
url
}
fragment downloadActionHookOnPodcastEpisode on PodcastEpisode {
playParams {
id
}
metricId
}
fragment useFollowActionOnPodcast on PodcastEpisode {
id
podcast {
id
title
images {
url
}
author
description
metricId
playParams {
id
}
}
}
fragment saveLocalPodcastEpisode on PodcastEpisode {
id
title
images {
url
}
releaseDate
availabilityDate
description
author
seasonNumber
duration
contentBenefitTypes
metricId
eligibility {
playbackSubscriptionTiers
playback {
canPlayOnDemand
shuffleType
}
isDownloadable
}
podcast {
id
title
images {
url
}
playParams {
id
}
metricId
}
playParams {
id
selections
}
}
fragment overflowMenuPodcastEpisode on PodcastEpisode {
id
podcast {
id
metricId
}
eligibility {
playback {
canPlayOnDemand
}
}
...usePlaybackActionOnPodcastEpisode
...useShareActionOnPodcastEpisode
...downloadActionHookOnPodcastEpisode
...useFollowActionOnPodcast
...saveLocalPodcastEpisode
}
fragment bauhausItemPodcastEpisode on PodcastEpisode {
id
title
duration
releaseDate
contentBenefitTypes
images {
url
}
podcast {
id
title
}
eligibility {
playbackSubscriptionTiers
playback {
canPlayOnDemand
shuffleType
}
isDownloadable
}
playbackInformation {
progressMilliseconds
}
metricId
...itemPodcastEpisodePlayback
...itemPodcastEpisodeUiClickEntityContext
...overflowMenuPodcastEpisode
}
fragment itemPodcastShowUiClickEntityContext on PodcastShow {
id
metricId
}
fragment bauhausItemPodcastShow on PodcastShow {
id
title
author
images {
width
height
url
}
metricId
...itemPodcastShowUiClickEntityContext
}
fragment itemPromotionUiClickEntityContext on Promotion {
id
url
}
fragment bauhausItemPromotion on Promotion {
id
title
images {
width
height
url
aspectRatio
}
url
...itemPromotionUiClickEntityContext
}
fragment playbackIndicatorCapabilityStation on Station {
id
}
fragment itemStationUiClickEntityContext on Station {
id
name
}
fragment useShareActionOnStation on Station {
id
url
name
images {
height
width
imageType
url
}
}
fragment overflowMenuStation on Station {
id
name
...useShareActionOnStation
}
fragment bauhausItemStation on Station {
id
name
images {
url
imageType
height
width
}
...itemStationPlayback
...playbackIndicatorCapabilityStation
...itemStationUiClickEntityContext
...overflowMenuStation
}
fragment itemTrackPlayback on Track {
id
playParams {
id
containerId
selections
}
}
fragment playCapabilityTrack on Track {
id
eligibility {
playback {
canPlayOnDemand
shuffleType
}
}
}
fragment viewAlbumMenuItemAlbum on Album {
id
}
fragment reportEntityOnTrack on Track {
id
}
fragment addOrRemoveFromMyMusicTrack on Track {
id
...itemTrackPlayback
}
fragment useShareActionOnTrack on Track {
id
url
title
images {
height
width
imageType
url
}
contributingArtists {
edges {
node {
id
name
}
}
}
}
fragment overflowMenuTrack on Track {
id
images {
url
}
contributingArtists {
edges {
role
node {
id
name
}
}
}
title
album {
id
...viewAlbumMenuItemAlbum
}
...itemTrackPlayback
...reportEntityOnTrack
...addOrRemoveFromMyMusicTrack
...useShareActionOnTrack
}
fragment playbackIndicatorCapabilityTrack on Track {
id
...playCapabilityTrack
}
fragment itemTrackUiClickEntityContext on Track {
id
title
mediaType
}
fragment badgesCapabilityTrack on Track {
id
hasLyrics
audioQualities
...playCapabilityTrack
}
fragment downloadCapabilityTrack on Track {
id
eligibility {
isDownloadable
}
}
fragment bauhausItemTrack on Track {
id
releaseDate
images {
url
}
contributingArtists {
edges {
node {
id
name
}
role
}
}
title
isTrending
parentalSettings {
hasExplicitLanguage
}
...itemTrackPlayback
...playCapabilityTrack
...overflowMenuTrack
...playbackIndicatorCapabilityTrack
...itemTrackUiClickEntityContext
...badgesCapabilityTrack
...downloadCapabilityTrack
}
fragment bauhausItemVideo on Track {
id
title
mediaType
...itemTrackUiClickEntityContext
}
fragment itemVideoUiClickEntityContext on Video {
id
}
fragment bauhausItemVideoStory on Video {
id
name
images {
url
imageType
width
height
}
...itemVideoUiClickEntityContext
}
fragment bauhausItemCategory on Category {
_type
id
name
url
images {
url
imageType
}
}
fragment recommendationWidgetPageInfo on PageInfo {
hasNextPage
token
metricId
}
fragment recommendationForTopRecommender on Recommendation {
id
itemType
tags
playParams {
id
}
parentContainer {
...bauhausItemFeaturedAlbum
...bauhausItemFeaturedPlaylist
...bauhausItemFeaturedStation
...bauhausItemFeaturedPodcastEpisode
...bauhausItemFeaturedPromotion
}
recommendedContent {
edges {
...recommendationEntityEdgeMetricContext
node {
...bauhausItemFeaturedTrack
}
}
}
name
...useUiContentViewRecommendation
}
fragment recommendationWidgetRecommendation on Recommendation {
id
metricId
itemType
tags
recommendedContent {
edges {
metricId
node {
...bauhausItemAlbum
...bauhausItemArtist
...bauhausItemLiveEvent
...bauhausItemMerch
...bauhausItemPlaylist
...bauhausItemPodcastEpisode
...bauhausItemPodcastShow
...bauhausItemPromotion
...bauhausItemStation
...bauhausItemTrack
...bauhausItemVideo
...bauhausItemVideoStory
...bauhausItemCategory
}
}
pageInfo {
...recommendationWidgetPageInfo
}
}
name
...useUiContentViewRecommendation
}
