Skip to content

Instantly share code, notes, and snippets.

@comigor
Created February 22, 2020 17:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save comigor/cc4664e68499e7f330064a5543736371 to your computer and use it in GitHub Desktop.
Save comigor/cc4664e68499e7f330064a5543736371 to your computer and use it in GitHub Desktop.
GraphBrainz SDL
# [Aliases](https://musicbrainz.org/doc/Aliases) are variant names
# that are mostly used as search help: if a search matches an entity’s alias, the
# entity will be given as a result – even if the actual name wouldn’t be.
type Alias {
# The aliased name of the entity.
name: String
# The string to use for the purpose of ordering by name (for
# example, by moving articles like ‘the’ to the end or a person’s last name to
# the front).
sortName: String
# The locale (language and/or country) in which the alias is
# used.
locale: Locale
# Whether this is the main alias for the entity in the
# specified locale (this could mean the most recent or the most common).
primary: Boolean
# The type or purpose of the alias – whether it is a variant,
# search hint, etc.
type: String
# The MBID associated with the value of the `type`
# field.
typeID: MBID
}
# [Areas](https://musicbrainz.org/doc/Area) are geographic regions
# or settlements (countries, cities, or the like).
type Area implements Node, Entity {
# The ID of an object
id: ID!
# The MBID of the entity.
mbid: MBID!
# The official name of the entity.
name: String
# The string to use for the purpose of ordering by name (for
# example, by moving articles like ‘the’ to the end or a person’s last name to
# the front).
sortName: String
# A comment used to help distinguish identically named entitites.
disambiguation: String
# [Aliases](https://musicbrainz.org/doc/Aliases) are used to store
# alternate names or misspellings.
aliases: [Alias]
# [ISO 3166 codes](https://en.wikipedia.org/wiki/ISO_3166) are
# the codes assigned by ISO to countries and subdivisions.
isoCodes(
# Specify the particular ISO standard codes to retrieve.
# Available ISO standards are 3166-1, 3166-2, and 3166-3.
standard: String = "3166-1"
): [String]
# The type of area (country, city, etc. – see the [possible
# values](https://musicbrainz.org/doc/Area)).
type: String
# The MBID associated with the value of the `type`
# field.
typeID: MBID
# A list of artists linked to this entity.
artists(after: String, first: Int): ArtistConnection
# A list of events linked to this entity.
events(after: String, first: Int): EventConnection
# A list of labels linked to this entity.
labels(after: String, first: Int): LabelConnection
# A list of places linked to this entity.
places(after: String, first: Int): PlaceConnection
# A list of releases linked to this entity.
releases(
# Filter by one or more release group types.
type: [ReleaseGroupType]
# Filter by one or more release statuses.
status: [ReleaseStatus]
after: String
first: Int
): ReleaseConnection
# Relationships between this entity and other entitites.
relationships: Relationships
# A list of collections containing this entity.
collections(after: String, first: Int): CollectionConnection
# A list of tags linked to this entity.
tags(after: String, first: Int): TagConnection
# Chart data available for this area on [Last.fm](https://www.last.fm/), if
# the area represents a country with an [ISO 3166 code](https://en.wikipedia.org/wiki/ISO_3166).
# This field is provided by the Last.fm extension.
lastFM: LastFMCountry
}
# A connection to a list of items.
type AreaConnection {
# Information to aid in pagination.
pageInfo: PageInfo!
# A list of edges.
edges: [AreaEdge]
# A list of nodes in the connection (without going through the
# `edges` field).
nodes: [Area]
# A count of the total number of items in this connection,
# ignoring pagination.
totalCount: Int
}
# An edge in a connection.
type AreaEdge {
# The item at the end of the edge
node: Area
# A cursor for use in pagination
cursor: String!
# The relevancy score (0–100) assigned by the search engine, if
# these results were found through a search.
score: Int
}
# An [artist](https://musicbrainz.org/doc/Artist) is generally a
# musician, group of musicians, or other music professional (like a producer or
# engineer). Occasionally, it can also be a non-musical person (like a
# photographer, an illustrator, or a poet whose writings are set to music), or
# even a fictional character.
type Artist implements Node, Entity {
# The ID of an object
id: ID!
# The MBID of the entity.
mbid: MBID!
# The official name of the entity.
name: String
# The string to use for the purpose of ordering by name (for
# example, by moving articles like ‘the’ to the end or a person’s last name to
# the front).
sortName: String
# A comment used to help distinguish identically named entitites.
disambiguation: String
# [Aliases](https://musicbrainz.org/doc/Aliases) are used to store
# alternate names or misspellings.
aliases: [Alias]
# The country with which an artist is primarily identified. It
# is often, but not always, its birth/formation country.
country: String
# The area with which an artist is primarily identified. It
# is often, but not always, its birth/formation country.
area: Area
# The area in which an artist began their career (or where
# they were born, if the artist is a person).
beginArea: Area
# The area in which an artist ended their career (or where
# they died, if the artist is a person).
endArea: Area
# The begin and end dates of the entity’s existence. Its exact
# meaning depends on the type of entity.
lifeSpan: LifeSpan
# Whether a person or character identifies as male, female, or
# neither. Groups do not have genders.
gender: String
# The MBID associated with the value of the `gender`
# field.
genderID: MBID
# Whether an artist is a person, a group, or something else.
type: String
# The MBID associated with the value of the `type`
# field.
typeID: MBID
# List of [Interested Parties Information](https://musicbrainz.org/doc/IPI)
# (IPI) codes for the artist.
ipis: [IPI]
# List of [International Standard Name Identifier](https://musicbrainz.org/doc/ISNI)
# (ISNI) codes for the artist.
isnis: [ISNI]
# A list of recordings linked to this entity.
recordings(after: String, first: Int): RecordingConnection
# A list of releases linked to this entity.
releases(
# Filter by one or more release group types.
type: [ReleaseGroupType]
# Filter by one or more release statuses.
status: [ReleaseStatus]
after: String
first: Int
): ReleaseConnection
# A list of release groups linked to this entity.
releaseGroups(
# Filter by one or more release group types.
type: [ReleaseGroupType]
after: String
first: Int
): ReleaseGroupConnection
# A list of works linked to this entity.
works(after: String, first: Int): WorkConnection
# Relationships between this entity and other entitites.
relationships: Relationships
# A list of collections containing this entity.
collections(after: String, first: Int): CollectionConnection
# The rating users have given to this entity.
rating: Rating
# A list of tags linked to this entity.
tags(after: String, first: Int): TagConnection
# Images of the artist from [fanart.tv](https://fanart.tv/).
# This field is provided by the fanart.tv extension.
fanArt: FanArtArtist
# Artist images found at MediaWiki URLs in the artist’s URL relationships.
# Defaults to URL relationships with the type “image”.
# This field is provided by the MediaWiki extension.
mediaWikiImages(
# The type of URL relationship that will be selected to find images. See
# the possible [Artist-URL relationship types](https://musicbrainz.org/relationships/artist-url).
type: String = "image"
): [MediaWikiImage]!
# Data about the artist from [TheAudioDB](http://www.theaudiodb.com/), a good
# source of biographical information and images.
# This field is provided by TheAudioDB extension.
theAudioDB: TheAudioDBArtist
# Information about the artist on Discogs.
discogs: DiscogsArtist
# Data about the artist from [Last.fm](https://www.last.fm/), a good source
# for measuring popularity via listener and play counts. This field is
# provided by the Last.fm extension.
lastFM: LastFMArtist
# The artist’s entry on Spotify.
spotify: SpotifyArtist
}
# A connection to a list of items.
type ArtistConnection {
# Information to aid in pagination.
pageInfo: PageInfo!
# A list of edges.
edges: [ArtistEdge]
# A list of nodes in the connection (without going through the
# `edges` field).
nodes: [Artist]
# A count of the total number of items in this connection,
# ignoring pagination.
totalCount: Int
}
# [Artist credits](https://musicbrainz.org/doc/Artist_Credits)
# indicate who is the main credited artist (or artists) for releases, release
# groups, tracks, and recordings, and how they are credited. They consist of
# artists, with (optionally) their names as credited in the specific release,
# track, etc., and join phrases between them.
type ArtistCredit {
# The entity representing the artist referenced in the
# credits.
artist: Artist
# The name of the artist as credited in the specific release,
# track, etc.
name: String
# Join phrases might include words and/or punctuation to
# separate artist names as they appear on the release, track, etc.
joinPhrase: String
}
# An edge in a connection.
type ArtistEdge {
# The item at the end of the edge
node: Artist
# A cursor for use in pagination
cursor: String!
# The relevancy score (0–100) assigned by the search engine, if
# these results were found through a search.
score: Int
}
# An [Amazon Standard Identification Number](https://musicbrainz.org/doc/ASIN)
# (ASIN) is a 10-character alphanumeric unique identifier assigned by Amazon.com
# and its partners for product identification within the Amazon organization.
scalar ASIN
# A query for all MusicBrainz entities directly linked to another
# entity.
type BrowseQuery {
# Browse area entities linked to the given arguments.
areas(
# The MBID of a collection in which the entity is found.
collection: MBID
after: String
first: Int
): AreaConnection
# Browse artist entities linked to the given arguments.
artists(
# The MBID of an area to which the entity is linked.
area: MBID
# The MBID of a collection in which the entity is found.
collection: MBID
# The MBID of a recording to which the entity is linked.
recording: MBID
# The MBID of a release to which the entity is linked.
release: MBID
# The MBID of a release group to which the entity is linked.
releaseGroup: MBID
# The MBID of a work to which the entity is linked.
work: MBID
after: String
first: Int
): ArtistConnection
# Browse collection entities linked to the given arguments.
collections(
# The MBID of an area to which the entity is linked.
area: MBID
# The MBID of an artist to which the entity is linked.
artist: MBID
# The username of the editor who created the collection.
editor: String
# The MBID of an event to which the entity is linked.
event: MBID
# The MBID of a label to which the entity is linked.
label: MBID
# The MBID of a place to which the entity is linked.
place: MBID
# The MBID of a recording to which the entity is linked.
recording: MBID
# The MBID of a release to which the entity is linked.
release: MBID
# The MBID of a release group to which the entity is linked.
releaseGroup: MBID
# The MBID of a work to which the entity is linked.
work: MBID
after: String
first: Int
): CollectionConnection
# Browse event entities linked to the given arguments.
events(
# The MBID of an area to which the entity is linked.
area: MBID
# The MBID of an artist to which the entity is linked.
artist: MBID
# The MBID of a collection in which the entity is found.
collection: MBID
# The MBID of a place to which the entity is linked.
place: MBID
after: String
first: Int
): EventConnection
# Browse label entities linked to the given arguments.
labels(
# The MBID of an area to which the entity is linked.
area: MBID
# The MBID of a collection in which the entity is found.
collection: MBID
# The MBID of a release to which the entity is linked.
release: MBID
after: String
first: Int
): LabelConnection
# Browse place entities linked to the given arguments.
places(
# The MBID of an area to which the entity is linked.
area: MBID
# The MBID of a collection in which the entity is found.
collection: MBID
after: String
first: Int
): PlaceConnection
# Browse recording entities linked to the given arguments.
recordings(
# The MBID of an artist to which the entity is linked.
artist: MBID
# The MBID of a collection in which the entity is found.
collection: MBID
# The [International Standard Recording Code](https://musicbrainz.org/doc/ISRC)
# (ISRC) of the recording.
isrc: ISRC
# The MBID of a release to which the entity is linked.
release: MBID
after: String
first: Int
): RecordingConnection
# Browse release entities linked to the given arguments.
releases(
# The MBID of an area to which the entity is linked.
area: MBID
# The MBID of an artist to which the entity is linked.
artist: MBID
# The MBID of a collection in which the entity is found.
collection: MBID
# A [disc ID](https://musicbrainz.org/doc/Disc_ID)
# associated with the release.
discID: DiscID
# The MBID of a label to which the entity is linked.
label: MBID
# The MBID of a recording to which the entity is linked.
recording: MBID
# The MBID of a release group to which the entity is linked.
releaseGroup: MBID
# The MBID of a track that is included in the release.
track: MBID
# The MBID of an artist that appears on a track in the
# release, but is not included in the credits for the release itself.
trackArtist: MBID
# Filter by one or more release group types.
type: [ReleaseGroupType]
# Filter by one or more release statuses.
status: [ReleaseStatus]
after: String
first: Int
): ReleaseConnection
# Browse release group entities linked to the given arguments.
releaseGroups(
# The MBID of an artist to which the entity is linked.
artist: MBID
# The MBID of a collection in which the entity is found.
collection: MBID
# The MBID of a release to which the entity is linked.
release: MBID
# Filter by one or more release group types.
type: [ReleaseGroupType]
after: String
first: Int
): ReleaseGroupConnection
# Browse work entities linked to the given arguments.
works(
# The MBID of an artist to which the entity is linked.
artist: MBID
# The MBID of a collection in which the entity is found.
collection: MBID
# The [International Standard Musical Work Code](https://musicbrainz.org/doc/ISWC)
# (ISWC) of the work.
iswc: ISWC
after: String
first: Int
): WorkConnection
}
# [Collections](https://musicbrainz.org/doc/Collections) are
# lists of entities that users can create.
type Collection implements Node, Entity {
# The ID of an object
id: ID!
# The MBID of the entity.
mbid: MBID!
# The official name of the entity.
name: String
# The username of the editor who created the collection.
editor: String!
# The type of entity listed in the collection.
entityType: String!
# The type of collection.
type: String
# The MBID associated with the value of the `type`
# field.
typeID: MBID
# The list of areas found in this collection.
areas(after: String, first: Int): AreaConnection
# The list of artists found in this collection.
artists(after: String, first: Int): ArtistConnection
# The list of events found in this collection.
events(after: String, first: Int): EventConnection
# The list of instruments found in this collection.
instruments(after: String, first: Int): InstrumentConnection
# The list of labels found in this collection.
labels(after: String, first: Int): LabelConnection
# The list of places found in this collection.
places(after: String, first: Int): PlaceConnection
# The list of recordings found in this collection.
recordings(after: String, first: Int): RecordingConnection
# The list of releases found in this collection.
releases(
# Filter by one or more release group types.
type: [ReleaseGroupType]
# Filter by one or more release statuses.
status: [ReleaseStatus]
after: String
first: Int
): ReleaseConnection
# The list of release groups found in this collection.
releaseGroups(
# Filter by one or more release group types.
type: [ReleaseGroupType]
after: String
first: Int
): ReleaseGroupConnection
# The list of series found in this collection.
series(after: String, first: Int): SeriesConnection
# The list of works found in this collection.
works(after: String, first: Int): WorkConnection
}
# A connection to a list of items.
type CollectionConnection {
# Information to aid in pagination.
pageInfo: PageInfo!
# A list of edges.
edges: [CollectionEdge]
# A list of nodes in the connection (without going through the
# `edges` field).
nodes: [Collection]
# A count of the total number of items in this connection,
# ignoring pagination.
totalCount: Int
}
# An edge in a connection.
type CollectionEdge {
# The item at the end of the edge
node: Collection
# A cursor for use in pagination
cursor: String!
# The relevancy score (0–100) assigned by the search engine, if
# these results were found through a search.
score: Int
}
# Geographic coordinates described with latitude and longitude.
type Coordinates {
# The north–south position of a point on the Earth’s surface.
latitude: Degrees
# The east–west position of a point on the Earth’s surface.
longitude: Degrees
}
# An individual piece of album artwork from the [Cover Art Archive](https://musicbrainz.org/doc/Cover_Art_Archive).
type CoverArtArchiveImage {
# The Internet Archive’s internal file ID for the image.
fileID: String!
# The URL at which the image can be found.
image: URLString!
# A set of thumbnails for the image.
thumbnails: CoverArtArchiveImageThumbnails!
# Whether this image depicts the “main front” of the release.
front: Boolean!
# Whether this image depicts the “main back” of the release.
back: Boolean!
# A list of [image types](https://musicbrainz.org/doc/Cover_Art/Types)
# describing what part(s) of the release the image includes.
types: [String]!
# The MusicBrainz edit ID.
edit: Int
# Whether the image was approved by the MusicBrainz edit system.
approved: Boolean
# A free-text comment left for the image.
comment: String
}
# The image sizes that may be requested at the [Cover Art Archive](https://musicbrainz.org/doc/Cover_Art_Archive).
enum CoverArtArchiveImageSize {
# A maximum dimension of 250px.
SMALL
# A maximum dimension of 500px.
LARGE
# The image’s original dimensions, with no maximum.
FULL
}
# URLs for thumbnails of different sizes for a particular piece of cover art.
type CoverArtArchiveImageThumbnails {
# The URL of a small version of the cover art, where the maximum dimension is
# 250px.
small: URLString
# The URL of a large version of the cover art, where the maximum dimension is
# 500px.
large: URLString
}
# An object containing a list of the cover art images for a release obtained
# from the [Cover Art Archive](https://musicbrainz.org/doc/Cover_Art_Archive),
# as well as a summary of what artwork is available.
type CoverArtArchiveRelease {
# The URL of an image depicting the album cover or “main front” of the release,
# i.e. the front of the packaging of the audio recording (or in the case of a
# digital release, the image associated with it in a digital media store).
#
# In the MusicBrainz schema, this field is a Boolean value indicating the
# presence of a front image, whereas here the value is the URL for the image
# itself if one exists. You can check for null if you just want to determine
# the presence of an image.
front(
# The size of the image to retrieve. By default, the returned image will
# have its full original dimensions, but certain thumbnail sizes may be
# retrieved as well.
size: CoverArtArchiveImageSize = FULL
): URLString
# The URL of an image depicting the “main back” of the release, i.e. the back
# of the packaging of the audio recording.
#
# In the MusicBrainz schema, this field is a Boolean value indicating the
# presence of a back image, whereas here the value is the URL for the image
# itself. You can check for null if you just want to determine the presence of
# an image.
back(
# The size of the image to retrieve. By default, the returned image will
# have its full original dimensions, but certain thumbnail sizes may be
# retrieved as well.
size: CoverArtArchiveImageSize = FULL
): URLString
# A list of images depicting the different sides and surfaces of a release’s
# media and packaging.
images: [CoverArtArchiveImage]!
# Whether there is artwork present for this release.
artwork: Boolean!
# The number of artwork images present for this release.
count: Int!
# The particular release shown in the returned cover art.
release: Release
}
# Year, month (optional), and day (optional) in YYYY-MM-DD format.
scalar Date
# Decimal degrees, used for latitude and longitude.
scalar Degrees
# Information about the physical CD and releases associated with a
# particular [disc ID](https://musicbrainz.org/doc/Disc_ID).
type Disc implements Node {
# The ID of an object
id: ID!
# The [disc ID](https://musicbrainz.org/doc/Disc_ID) of this disc.
discID: DiscID!
# The number of offsets (tracks) on the disc.
offsetCount: Int!
# The sector offset of each track on the disc.
offsets: [Int]
# The sector offset of the lead-out (the end of the disc).
sectors: Int!
# The list of releases linked to this disc ID.
releases(after: String, first: Int): ReleaseConnection
}
# [Disc ID](https://musicbrainz.org/doc/Disc_ID) is the code
# number which MusicBrainz uses to link a physical CD to a [release](https://musicbrainz.org/doc/Release)
# listing.
#
# A release may have any number of disc IDs, and a disc ID may be linked to
# multiple releases. This is because disc ID calculation involves a hash of the
# frame offsets of the CD tracks.
#
# Different pressing of a CD often have slightly different frame offsets, and
# hence different disc IDs.
#
# Conversely, two different CDs may happen to have exactly the same set of frame
# offsets and hence the same disc ID.
scalar DiscID
# An artist on Discogs.
type DiscogsArtist {
# The ID of the artist on Discogs.
artistID: ID!
# The name of the artist on Discogs.
name: String!
# Commonly found variations of the artist’s name.
nameVariations: [String!]!
# The artist’s real name, if the artist is a person who uses a stage name.
realName: String
# A list of Discogs artists that represent the same artist under a different
# alias.
aliases: [DiscogsArtist!]!
# The URL of the artist’s page on Discogs.
url: URLString!
# Links to the artist’s official pages on different web properties.
urls: [URLString!]!
# A biography or description of the artist.
profile: String
# A list of images picturing the artist.
images: [DiscogsImage!]!
# A list of members, if the artist is a group.
members: [DiscogsArtistMember!]!
# A description of the quality and completeness of this artist’s data in the
# Discogs database.
dataQuality: String
}
# A credited artist on a release, track, etc.
type DiscogsArtistCredit {
# The official or common name of the credited artist.
name: String
# The artist name as credited on this particular work (the Artist Name
# Variation, or ANV, in Discogs terms).
nameVariation: String
# Join phrases might include words and/or punctuation to separate artist
# names as they appear on the release, track, etc.
joinPhrase: String
# A list of roles the artist had on the work in question.
roles: [String!]!
# A list of tracks or track ranges (e.g. “A1 to A4”) on which the artist is
# credited.
tracks: [String!]!
# The artist’s entry on Discogs.
artist: DiscogsArtist
}
# A single artist who is a member of a group on Discogs.
type DiscogsArtistMember {
# Whether or not the member is still active in the group.
active: Boolean
# The name of the member.
name: String!
# The member’s artist information on Discogs.
artist: DiscogsArtist
}
# Community statistics regarding an item on Discogs.
type DiscogsCommunity {
# The acceptance status.
status: String
# Information about how Discogs users have rated the item.
rating: DiscogsRating
# The number of Discogs users who have the item in their collection.
haveCount: Int
# The number of Discogs users who want the item.
wantCount: Int
# The Discogs users who have contributed to the item’s data.
contributors: [DiscogsUser!]!
# The Discogs user who submitted the item.
submitter: DiscogsUser
}
# A single image from Discogs.
type DiscogsImage {
# The URL of the image file.
url: URLString!
# The image type, primary or secondary.
type: DiscogsImageType!
# The image width in pixels.
width: Int!
# The image height in pixels.
height: Int!
# The URL for a 150x150 thumbnail of the image.
thumbnail: URLString
}
# The type of image.
enum DiscogsImageType {
# The primary image representing the item.
PRIMARY
# A secondary image representing the item.
SECONDARY
}
# A label on Discogs.
type DiscogsLabel {
# The ID of the label on Discogs.
labelID: ID!
# The name of the label.
name: String!
# The URL of the label on Discogs.
url: URLString!
# A description of the history of the label.
profile: String
# Information on how to contact a representative of the label.
contactInfo: String
# The parent label, if this label is a subsidiary.
parentLabel: DiscogsLabel
# A list of labels that are subsidiaries of this label.
subLabels: [DiscogsLabel!]!
# A list of images associated with the label.
images: [DiscogsImage!]!
# A description of the quality and completeness of this label’s data in the
# Discogs database.
dataQuality: String
}
# Master releases group different versions of the same release (for example,
# releases in different formats, issued in different countries, re-releases,
# etc.). The equivalent of a MusicBrainz release group.
type DiscogsMaster {
# The ID of the master on Discogs.
masterID: ID!
# The title of the master.
title: String!
# The URL of the master on Discogs.
url: URLString!
# The artists credited on the master.
artistCredits: [DiscogsArtistCredit!]!
# The primary musical genres of the master (e.g. “Electronic”).
genres: [String!]!
# The primary musical styles of the master (e.g. “Techno”, “Minimal”).
styles: [String!]!
# The number of listings the master currently has on the marketplace.
forSaleCount: Int
# The lowest price for the master currently found on the marketplace.
lowestPrice(
# The three-letter currency code for which to retrieve the price. Discogs
# supports USD, GBP, EUR, CAD, AUD, JPY, CHF, MXN, BRL, NZD, SEK, and ZAR.
# #
# [NOT YET WORKING]
currency: String
): Float
# The year the master was released (most likely its “main” release).
year: Int
# The main release from the master.
mainRelease: DiscogsRelease
# Images of the master.
images: [DiscogsImage!]!
# Music videos from the master.
videos: [DiscogsVideo!]!
# A description of the quality and completeness of this master’s data in the
# Discogs database.
dataQuality: String
}
# An aggregated rating on Discogs.
type DiscogsRating {
# The number of users who have contributed to the rating.
voteCount: Int!
# The average rating as determined by users.
value: Float
}
# A release on Discogs.
type DiscogsRelease {
# The ID of the release on Discogs.
releaseID: ID!
# The title of the release.
title: String!
# The URL of the release on Discogs.
url: URLString!
# The artists credited on the release.
artistCredits: [DiscogsArtistCredit!]!
# An additional list of artists who contributed to the release, but are not
# named in the release’s artists.
extraArtistCredits: [DiscogsArtistCredit!]!
# The primary musical genres of the release (e.g. “Electronic”).
genres: [String!]!
# The primary musical styles of the release (e.g. “Techno”, “Minimal”).
styles: [String!]!
# The number of listings the release currently has on the marketplace.
forSaleCount: Int
# The lowest price for the release currently found on the marketplace.
lowestPrice(
# The three-letter currency code for which to retrieve the price. Discogs
# supports USD, GBP, EUR, CAD, AUD, JPY, CHF, MXN, BRL, NZD, SEK, and ZAR.
# #
# [NOT YET WORKING]
currency: String
): Float
# The year the release was issued.
year: Int
# Notes about the release.
notes: String
# The country in which the release was issued.
country: String
# The master release on Discogs.
master: DiscogsMaster
# The primary thumbnail image for the release.
thumbnail: URLString
# Images of the release.
images: [DiscogsImage!]!
# Music videos from the release.
videos: [DiscogsVideo!]!
# Information about the Discogs community’s contributions to the release’s
# data.
community: DiscogsCommunity
# A description of the quality and completeness of this release’s data in
# the Discogs database.
dataQuality: String
}
# A connection to a list of Discogs releases.
type DiscogsReleaseConnection {
# Information to aid in pagination.
pageInfo: PageInfo!
# A list of edges.
edges: [DiscogsReleaseEdge!]!
# A list of nodes in the connection (without going through the `edges` field).
nodes: [DiscogsRelease!]!
# A count of the total number of items in this connection, ignoring pagination.
totalCount: Int
}
# An edge in a Discogs release connection.
type DiscogsReleaseEdge {
# The release at the end of the edge.
node: DiscogsRelease!
}
# A user on Discogs.
type DiscogsUser {
# The user’s username on Discogs.
username: String!
}
# A single video linked from Discogs.
type DiscogsVideo {
# The URL of the video.
url: URLString!
# The title of the video.
title: String
# The video description.
description: String
# The duration of the video in milliseconds.
duration: Duration
# Whether the video is embeddable.
embed: Boolean
}
# A length of time, in milliseconds.
scalar Duration
# An entity in the MusicBrainz schema.
interface Entity {
# The MBID of the entity.
mbid: MBID!
}
# An [event](https://musicbrainz.org/doc/Event) refers to an
# organised event which people can attend, and is relevant to MusicBrainz.
# Generally this means live performances, like concerts and festivals.
type Event implements Node, Entity {
# The ID of an object
id: ID!
# The MBID of the entity.
mbid: MBID!
# The official name of the entity.
name: String
# A comment used to help distinguish identically named entitites.
disambiguation: String
# [Aliases](https://musicbrainz.org/doc/Aliases) are used to store
# alternate names or misspellings.
aliases: [Alias]
# The begin and end dates of the entity’s existence. Its exact
# meaning depends on the type of entity.
lifeSpan: LifeSpan
# The start time of the event.
time: Time
# Whether or not the event took place.
cancelled: Boolean
# A list of songs performed, optionally including links to
# artists and works. See the [setlist documentation](https://musicbrainz.org/doc/Event/Setlist)
# for syntax and examples.
setlist: String
# What kind of event the event is, e.g. concert, festival, etc.
type: String
# The MBID associated with the value of the `type`
# field.
typeID: MBID
# Relationships between this entity and other entitites.
relationships: Relationships
# A list of collections containing this entity.
collections(after: String, first: Int): CollectionConnection
# The rating users have given to this entity.
rating: Rating
# A list of tags linked to this entity.
tags(after: String, first: Int): TagConnection
}
# A connection to a list of items.
type EventConnection {
# Information to aid in pagination.
pageInfo: PageInfo!
# A list of edges.
edges: [EventEdge]
# A list of nodes in the connection (without going through the
# `edges` field).
nodes: [Event]
# A count of the total number of items in this connection,
# ignoring pagination.
totalCount: Int
}
# An edge in a connection.
type EventEdge {
# The item at the end of the edge
node: Event
# A cursor for use in pagination
cursor: String!
# The relevancy score (0–100) assigned by the search engine, if
# these results were found through a search.
score: Int
}
# An object containing lists of the different types of release group images from
# [fanart.tv](https://fanart.tv/).
type FanArtAlbum {
# A list of 1000x1000 JPG images of the cover artwork of the release group.
albumCovers: [FanArtImage]
# A list of 1000x1000 PNG images of the physical disc media for the release
# group, with transparent backgrounds.
discImages: [FanArtDiscImage]
}
# An object containing lists of the different types of artist images from
# [fanart.tv](https://fanart.tv/).
type FanArtArtist {
# A list of 1920x1080 JPG images picturing the artist, suitable for use as
# backgrounds.
backgrounds: [FanArtImage]
# A list of 1000x185 JPG images containing the artist and their logo or name.
banners: [FanArtImage]
# A list of 400x155 PNG images containing the artist’s logo or name, with
# transparent backgrounds.
logos: [FanArtImage]
# A list of 800x310 PNG images containing the artist’s logo or name, with
# transparent backgrounds.
logosHD: [FanArtImage]
# A list of 1000x1000 JPG thumbnail images picturing the artist (usually
# containing every member of a band).
thumbnails: [FanArtImage]
}
# A disc image from [fanart.tv](https://fanart.tv/).
type FanArtDiscImage {
# The ID of the image on fanart.tv.
imageID: ID
# The URL of the image.
url(
# The size of the image to retrieve.
size: FanArtImageSize = FULL
): URLString
# The number of likes the image has received by fanart.tv users.
likeCount: Int
# The disc number.
discNumber: Int
# The width and height of the (square) disc image.
size: Int
}
# A single image from [fanart.tv](https://fanart.tv/).
type FanArtImage {
# The ID of the image on fanart.tv.
imageID: ID
# The URL of the image.
url(
# The size of the image to retrieve.
size: FanArtImageSize = FULL
): URLString
# The number of likes the image has received by fanart.tv users.
likeCount: Int
}
# The image sizes that may be requested at [fanart.tv](https://fanart.tv/).
enum FanArtImageSize {
# The image’s full original dimensions.
FULL
# A maximum dimension of 200px.
PREVIEW
}
# An object containing lists of the different types of label images from
# [fanart.tv](https://fanart.tv/).
type FanArtLabel {
# A list of 400x270 PNG images containing the label’s logo. There will
# usually be a black version, a color version, and a white version, all with
# transparent backgrounds.
logos: [FanArtLabelImage]
}
# A music label image from [fanart.tv](https://fanart.tv/).
type FanArtLabelImage {
# The ID of the image on fanart.tv.
imageID: ID
# The URL of the image.
url(
# The size of the image to retrieve.
size: FanArtImageSize = FULL
): URLString
# The number of likes the image has received by fanart.tv users.
likeCount: Int
# The type of color content in the image (usually “white” or “colour”).
color: String
}
# [Instruments](https://musicbrainz.org/doc/Instrument) are
# devices created or adapted to make musical sounds. Instruments are primarily
# used in relationships between two other entities.
type Instrument implements Node, Entity {
# The ID of an object
id: ID!
# The MBID of the entity.
mbid: MBID!
# The official name of the entity.
name: String
# A comment used to help distinguish identically named entitites.
disambiguation: String
# [Aliases](https://musicbrainz.org/doc/Aliases) are used to store
# alternate names or misspellings.
aliases: [Alias]
# A brief description of the main characteristics of the
# instrument.
description: String
# The type categorises the instrument by the way the sound is
# created, similar to the [Hornbostel-Sachs](https://en.wikipedia.org/wiki/Hornbostel%E2%80%93Sachs)
# classification.
type: String
# The MBID associated with the value of the `type`
# field.
typeID: MBID
# Relationships between this entity and other entitites.
relationships: Relationships
# A list of collections containing this entity.
collections(after: String, first: Int): CollectionConnection
# A list of tags linked to this entity.
tags(after: String, first: Int): TagConnection
# Instrument images found at MediaWiki URLs in the instrument’s URL
# relationships. Defaults to URL relationships with the type “image”.
# This field is provided by the MediaWiki extension.
mediaWikiImages(
# The type of URL relationship that will be selected to find images. See the
# possible [Instrument-URL relationship types](https://musicbrainz.org/relationships/instrument-url).
type: String = "image"
): [MediaWikiImage]!
}
# A connection to a list of items.
type InstrumentConnection {
# Information to aid in pagination.
pageInfo: PageInfo!
# A list of edges.
edges: [InstrumentEdge]
# A list of nodes in the connection (without going through the
# `edges` field).
nodes: [Instrument]
# A count of the total number of items in this connection,
# ignoring pagination.
totalCount: Int
}
# An edge in a connection.
type InstrumentEdge {
# The item at the end of the edge
node: Instrument
# A cursor for use in pagination
cursor: String!
# The relevancy score (0–100) assigned by the search engine, if
# these results were found through a search.
score: Int
}
# An [Interested Parties Information](https://musicbrainz.org/doc/IPI)
# (IPI) code is an identifying number assigned by the CISAC database for musical
# rights management.
scalar IPI
# The [International Standard Name Identifier](https://musicbrainz.org/doc/ISNI)
# (ISNI) is an ISO standard for uniquely identifying the public identities of
# contributors to media content.
scalar ISNI
# The [International Standard Recording Code](https://musicbrainz.org/doc/ISRC)
# (ISRC) is an identification system for audio and music video recordings. It is
# standarized by the [IFPI](http://www.ifpi.org/) in ISO 3901:2001 and used by
# IFPI members to assign a unique identifier to every distinct sound recording
# they release. An ISRC identifies a particular [sound recording](https://musicbrainz.org/doc/Recording),
# not the song itself. Therefore, different recordings, edits, remixes and
# remasters of the same song will each be assigned their own ISRC. However, note
# that same recording should carry the same ISRC in all countries/territories.
# Songs are identified by analogous [International Standard Musical Work Codes](https://musicbrainz.org/doc/ISWC)
# (ISWCs).
scalar ISRC
# The [International Standard Musical Work Code](https://musicbrainz.org/doc/ISWC)
# (ISWC) is an ISO standard similar to ISBNs for identifying musical works /
# compositions.
scalar ISWC
# [Labels](https://musicbrainz.org/doc/Label) represent mostly
# (but not only) imprints. To a lesser extent, a label entity may be created to
# represent a record company.
type Label implements Node, Entity {
# The ID of an object
id: ID!
# The MBID of the entity.
mbid: MBID!
# The official name of the entity.
name: String
# The string to use for the purpose of ordering by name (for
# example, by moving articles like ‘the’ to the end or a person’s last name to
# the front).
sortName: String
# A comment used to help distinguish identically named entitites.
disambiguation: String
# [Aliases](https://musicbrainz.org/doc/Aliases) are used to store
# alternate names or misspellings.
aliases: [Alias]
# The country of origin for the label.
country: String
# The area in which the label is based.
area: Area
# The begin and end dates of the entity’s existence. Its exact
# meaning depends on the type of entity.
lifeSpan: LifeSpan
# The [“LC” code](https://musicbrainz.org/doc/Label/Label_Code)
# of the label.
labelCode: Int
# List of [Interested Parties Information](https://musicbrainz.org/doc/IPI)
# codes for the label.
ipis: [IPI]
# A type describing the main activity of the label, e.g.
# imprint, production, distributor, rights society, etc.
type: String
# The MBID associated with the value of the `type`
# field.
typeID: MBID
# A list of releases linked to this entity.
releases(
# Filter by one or more release group types.
type: [ReleaseGroupType]
# Filter by one or more release statuses.
status: [ReleaseStatus]
after: String
first: Int
): ReleaseConnection
# Relationships between this entity and other entitites.
relationships: Relationships
# A list of collections containing this entity.
collections(after: String, first: Int): CollectionConnection
# The rating users have given to this entity.
rating: Rating
# A list of tags linked to this entity.
tags(after: String, first: Int): TagConnection
# Images of the label from [fanart.tv](https://fanart.tv/).
# This field is provided by the fanart.tv extension.
fanArt: FanArtLabel
# Label images found at MediaWiki URLs in the label’s URL relationships.
# Defaults to URL relationships with the type “logo”.
# This field is provided by the MediaWiki extension.
mediaWikiImages(
# The type of URL relationship that will be selected to find images. See the
# possible [Label-URL relationship types](https://musicbrainz.org/relationships/label-url).
type: String = "logo"
): [MediaWikiImage]!
# Information about the label on Discogs.
discogs: DiscogsLabel
}
# A connection to a list of items.
type LabelConnection {
# Information to aid in pagination.
pageInfo: PageInfo!
# A list of edges.
edges: [LabelEdge]
# A list of nodes in the connection (without going through the
# `edges` field).
nodes: [Label]
# A count of the total number of items in this connection,
# ignoring pagination.
totalCount: Int
}
# An edge in a connection.
type LabelEdge {
# The item at the end of the edge
node: Label
# A cursor for use in pagination
cursor: String!
# The relevancy score (0–100) assigned by the search engine, if
# these results were found through a search.
score: Int
}
# An album on [Last.fm](https://www.last.fm/) corresponding with a MusicBrainz
# Release.
type LastFMAlbum {
# The MBID of the corresponding MusicBrainz release.
mbid: MBID
# The title of the album according to [Last.fm](https://www.last.fm/).
title: String
# The URL for the album on [Last.fm](https://www.last.fm/).
url: URLString!
# An image of the cover artwork of the release.
image(
# The size of the image to retrieve.
size: LastFMImageSize
): URLString
# The number of listeners recorded for the album.
listenerCount: Float
# The number of plays recorded for the album.
playCount: Float
# Historical information written about the album, often available in several
# languages.
description(
# The two-letter code for the language in which to retrieve the description.
lang: String
): LastFMWikiContent
# The artist who released the album. This returns the Last.fm artist info,
# not the MusicBrainz artist.
artist: LastFMArtist
# A list of tags applied to the artist by users, ordered by popularity.
topTags(
# The maximum number of tags to retrieve.
first: Int = 25
# The cursor of the edge after which more tags will be retrieved.
after: String
): LastFMTagConnection
}
# A connection to a list of items.
type LastFMAlbumConnection {
# Information to aid in pagination.
pageInfo: PageInfo!
# A list of edges.
edges: [LastFMAlbumEdge]
# A list of nodes in the connection (without going through the `edges` field).
nodes: [LastFMAlbum]
# A count of the total number of items in this connection, ignoring pagination.
totalCount: Int
}
# An edge in a connection.
type LastFMAlbumEdge {
# The item at the end of the edge.
node: LastFMAlbum
# A cursor for use in pagination.
cursor: String!
}
# An artist on [Last.fm](https://www.last.fm/).
type LastFMArtist {
# The MBID of the corresponding MusicBrainz artist.
mbid: MBID
# The name of the artist according to [Last.fm](https://www.last.fm/).
name: String
# The URL for the artist on [Last.fm](https://www.last.fm/).
url: URLString!
# An image of the artist.
image(
# The size of the image to retrieve.
size: LastFMImageSize
): URLString
# The number of listeners recorded for the artist.
listenerCount: Float
# The number of plays recorded for the artist.
playCount: Float
# A list of similar artists.
similarArtists(
# The maximum number of artists to retrieve.
first: Int = 25
# The cursor of the edge after which more artists will be retrieved.
after: String
): LastFMArtistConnection
# A list of the artist’s most popular albums.
topAlbums(
# The maximum number of albums to retrieve.
first: Int = 25
# The cursor of the edge after which more albums will be retrieved.
after: String
): LastFMAlbumConnection
# A list of tags applied to the artist by users, ordered by popularity.
topTags(
# The maximum number of tags to retrieve.
first: Int = 25
# The cursor of the edge after which more tags will be retrieved.
after: String
): LastFMTagConnection
# A list of the artist’s most popular tracks.
topTracks(
# The maximum number of tracks to retrieve.
first: Int = 25
# The cursor of the edge after which more tracks will be retrieved.
after: String
): LastFMTrackConnection
# A biography of the artist, often available in several languages.
biography(
# The two-letter code for the language in which to retrieve the biography.
lang: String
): LastFMWikiContent
}
# A connection to a list of items.
type LastFMArtistConnection {
# Information to aid in pagination.
pageInfo: PageInfo!
# A list of edges.
edges: [LastFMArtistEdge]
# A list of nodes in the connection (without going through the `edges` field).
nodes: [LastFMArtist]
# A count of the total number of items in this connection, ignoring pagination.
totalCount: Int
}
# An edge in a connection.
type LastFMArtistEdge {
# The item at the end of the edge.
node: LastFMArtist
# A cursor for use in pagination.
cursor: String!
# The artist similarity score (0–1) as determined by [Last.fm](https://www.last.fm/),
# if this connection is with another artist.
matchScore: Float
}
# A query for chart data on [Last.fm](https://www.last.fm/).
type LastFMChartQuery {
# The most popular artists, ordered by popularity. If a country code is
# given, retrieve the most popular artists in that country.
topArtists(
# A two-letter [ISO 3166 country code](https://en.wikipedia.org/wiki/ISO_3166).
country: String
# The maximum number of artists to retrieve.
first: Int = 25
# The cursor of the edge after which more artists will be retrieved.
after: String
): LastFMArtistConnection
# The most popular tags, ordered by popularity.
topTags(
# The maximum number of tags to retrieve.
first: Int = 25
# The cursor of the edge after which more tags will be retrieved.
after: String
): LastFMTagConnection
# The most popular tracks, ordered by popularity. If a country code is
# given, retrieve the most popular tracks in that country.
topTracks(
# A two-letter [ISO 3166 country code](https://en.wikipedia.org/wiki/ISO_3166).
country: String
# The maximum number of tracks to retrieve.
first: Int = 25
# The cursor of the edge after which more tracks will be retrieved.
after: String
): LastFMTrackConnection
}
# A country with chart data available on [Last.fm](https://www.last.fm/).
type LastFMCountry {
# The top artists in this country, ordered by popularity.
topArtists(
# The maximum number of artists to retrieve.
first: Int = 25
# The cursor of the edge after which more artists will be retrieved.
after: String
): LastFMArtistConnection
# The top tracks in this country, ordered by popularity.
topTracks(
# The maximum number of tracks to retrieve.
first: Int = 25
# The cursor of the edge after which more tracks will be retrieved.
after: String
): LastFMTrackConnection
}
# The image sizes that may be requested at [Last.fm](https://www.last.fm/).
enum LastFMImageSize {
# A maximum dimension of 34px.
SMALL
# A maximum dimension of 64px.
MEDIUM
# A maximum dimension of 174px.
LARGE
# A maximum dimension of 300px.
EXTRALARGE
# A maximum dimension of 300px.
MEGA
}
# The different types of [Last.fm](https://www.last.fm/) queries that can be
# made that are not connected to any particular MusicBrainz entity.
type LastFMQuery {
# A query for chart data.
chart: LastFMChartQuery!
}
# A tag added by users to an entity on [Last.fm](https://www.last.fm/).
type LastFMTag {
# The tag name.
name: String!
# The URL for the tag on [Last.fm](https://www.last.fm/).
url: URLString!
}
# A connection to a list of items.
type LastFMTagConnection {
# Information to aid in pagination.
pageInfo: PageInfo!
# A list of edges.
edges: [LastFMTagEdge]
# A list of nodes in the connection (without going through the `edges` field).
nodes: [LastFMTag]
# A count of the total number of items in this connection, ignoring pagination.
totalCount: Int
}
# An edge in a connection.
type LastFMTagEdge {
# The item at the end of the edge.
node: LastFMTag
# A cursor for use in pagination.
cursor: String!
# The number of times the tag has been applied to the item in question.
tagCount: Int
}
# A track on [Last.fm](https://www.last.fm/) corresponding with a MusicBrainz
# Recording.
type LastFMTrack {
# The MBID of the corresponding MusicBrainz recording.
mbid: MBID
# The title of the track according to [Last.fm](https://www.last.fm/).
title: String
# The URL for the track on [Last.fm](https://www.last.fm/).
url: URLString!
# The length of the track.
duration: Duration
# The number of listeners recorded for the track.
listenerCount: Float
# The number of plays recorded for the track.
playCount: Float
# Historical information written about the track, often available in several
# languages.
description(
# The two-letter code for the language in which to retrieve the description.
lang: String
): LastFMWikiContent
# The artist who released the track. This returns the Last.fm artist info,
# not the MusicBrainz artist.
artist: LastFMArtist
# The album on which the track appears. This returns the Last.fm album info,
# not the MusicBrainz release.
album: LastFMAlbum
# A list of similar tracks.
similarTracks(
# The maximum number of tracks to retrieve.
first: Int = 25
# The cursor of the edge after which more tracks will be retrieved.
after: String
): LastFMTrackConnection
# A list of tags applied to the track by users, ordered by popularity.
topTags(
# The maximum number of tags to retrieve.
first: Int = 25
# The cursor of the edge after which more tags will be retrieved.
after: String
): LastFMTagConnection
}
# A connection to a list of items.
type LastFMTrackConnection {
# Information to aid in pagination.
pageInfo: PageInfo!
# A list of edges.
edges: [LastFMTrackEdge]
# A list of nodes in the connection (without going through the `edges` field).
nodes: [LastFMTrack]
# A count of the total number of items in this connection, ignoring pagination.
totalCount: Int
}
# An edge in a connection.
type LastFMTrackEdge {
# The item at the end of the edge.
node: LastFMTrack
# A cursor for use in pagination.
cursor: String!
# The track similarity score (0–1) as determined by [Last.fm](https://www.last.fm/),
# if this connection is with another track.
matchScore: Float
}
# Biographical or background information written about an entity on
# [Last.fm](https://www.last.fm/).
type LastFMWikiContent {
# A summary of the wiki content, which may contain HTML.
summaryHTML: String
# The full wiki content, which may contain HTML.
contentHTML: String
# The date the content was published. The data is reformatted from the
# Last.fm API’s original format into the Date scalar format.
publishDate: Date
# The time the content was published. The data is reformatted from the
# Last.fm API’s original format into the Time scalar format. The API offers
# no indication as to which time zone the time is in.
publishTime: Time
# The URL at which the content was published.
url: URLString
}
# Fields indicating the begin and end date of an entity’s
# lifetime, including whether it has ended (even if the date is unknown).
type LifeSpan {
# The start date of the entity’s life span.
begin: Date
# The end date of the entity’s life span.
end: Date
# Whether or not the entity’s life span has ended.
ended: Boolean
}
# Language code, optionally with country and encoding.
scalar Locale
# A lookup of an individual MusicBrainz entity by its MBID.
type LookupQuery {
# Look up a specific area by its MBID.
area(
# The MBID of the entity.
mbid: MBID!
): Area
# Look up a specific artist by its MBID.
artist(
# The MBID of the entity.
mbid: MBID!
): Artist
# Look up a specific collection by its MBID.
collection(
# The MBID of the entity.
mbid: MBID!
): Collection
# Look up a specific physical disc by its disc ID.
disc(
# The [disc ID](https://musicbrainz.org/doc/Disc_ID)
# of the disc.
discID: DiscID!
): Disc
# Look up a specific event by its MBID.
event(
# The MBID of the entity.
mbid: MBID!
): Event
# Look up a specific instrument by its MBID.
instrument(
# The MBID of the entity.
mbid: MBID!
): Instrument
# Look up a specific label by its MBID.
label(
# The MBID of the entity.
mbid: MBID!
): Label
# Look up a specific place by its MBID.
place(
# The MBID of the entity.
mbid: MBID!
): Place
# Look up a specific recording by its MBID.
recording(
# The MBID of the entity.
mbid: MBID!
): Recording
# Look up a specific release by its MBID.
release(
# The MBID of the entity.
mbid: MBID!
): Release
# Look up a specific release group by its MBID.
releaseGroup(
# The MBID of the entity.
mbid: MBID!
): ReleaseGroup
# Look up a specific series by its MBID.
series(
# The MBID of the entity.
mbid: MBID!
): Series
# Look up a specific URL by its MBID.
url(
# The MBID of the entity.
mbid: MBID
# The web address of the URL entity to look up.
resource: URLString
): URL
# Look up a specific work by its MBID.
work(
# The MBID of the entity.
mbid: MBID!
): Work
}
# The MBID scalar represents MusicBrainz identifiers, which are
# 36-character UUIDs.
scalar MBID
# An object describing various properties of an image stored on a MediaWiki
# server. The information comes the [MediaWiki imageinfo API](https://www.mediawiki.org/wiki/API:Imageinfo).
type MediaWikiImage {
# The URL of the actual image file.
url: URLString!
# The URL of the wiki page describing the image.
descriptionURL: URLString
# The user who uploaded the file.
user: String
# The size of the file in bytes.
size: Int
# The pixel width of the image.
width: Int
# The pixel height of the image.
height: Int
# The canonical title of the file.
canonicalTitle: String
# The image title, brief description, or file name.
objectName: String
# A description of the image, potentially containing HTML.
descriptionHTML: String
# The original date of creation of the image. May be a description rather than
# a parseable timestamp, and may contain HTML.
originalDateTimeHTML: String
# A list of the categories of the image.
categories: [String]!
# The name of the image author, potentially containing HTML.
artistHTML: String
# The source of the image, potentially containing HTML.
creditHTML: String
# A short human-readable license name.
licenseShortName: String
# A web address where the license is described.
licenseURL: URLString
# The full list of values in the `extmetadata` field.
metadata: [MediaWikiImageMetadata]!
}
# An entry in the `extmetadata` field of a MediaWiki image file.
type MediaWikiImageMetadata {
# The name of the metadata field.
name: String!
# The value of the metadata field. All values will be converted to strings.
value: String
# The source of the value.
source: String
}
# A medium is the actual physical medium the audio content is
# stored upon. This means that each CD in a multi-disc release will be entered as
# separate mediums within the release, and that both sides of a vinyl record or
# cassette will exist on one medium. Mediums have a format (e.g. CD, DVD, vinyl,
# cassette) and can optionally also have a title.
type Medium {
# The title of this particular medium.
title: String
# The [format](https://musicbrainz.org/doc/Release/Format) of
# the medium (e.g. CD, DVD, vinyl, cassette).
format: String
# The MBID associated with the value of the `format`
# field.
formatID: MBID
# The order of this medium in the release (for example, in a
# multi-disc release).
position: Int
# The number of audio tracks on this medium.
trackCount: Int
# A list of physical discs and their disc IDs for this medium.
discs: [Disc]
# The list of tracks on the given media.
tracks: [Track]
}
# An object with an ID
interface Node {
# The id of the object.
id: ID!
}
# Information about pagination in a connection.
type PageInfo {
# When paginating forwards, are there more items?
hasNextPage: Boolean!
# When paginating backwards, are there more items?
hasPreviousPage: Boolean!
# When paginating backwards, the cursor to continue.
startCursor: String
# When paginating forwards, the cursor to continue.
endCursor: String
}
# A [place](https://musicbrainz.org/doc/Place) is a venue, studio,
# or other place where music is performed, recorded, engineered, etc.
type Place implements Node, Entity {
# The ID of an object
id: ID!
# The MBID of the entity.
mbid: MBID!
# The official name of the entity.
name: String
# A comment used to help distinguish identically named entitites.
disambiguation: String
# [Aliases](https://musicbrainz.org/doc/Aliases) are used to store
# alternate names or misspellings.
aliases: [Alias]
# The address describes the location of the place using the
# standard addressing format for the country it is located in.
address: String
# The area entity representing the area, such as the city, in
# which the place is located.
area: Area
# The geographic coordinates of the place.
coordinates: Coordinates
# The begin and end dates of the entity’s existence. Its exact
# meaning depends on the type of entity.
lifeSpan: LifeSpan
# The type categorises the place based on its primary
# function.
type: String
# The MBID associated with the value of the `type`
# field.
typeID: MBID
# A list of events linked to this entity.
events(after: String, first: Int): EventConnection
# Relationships between this entity and other entitites.
relationships: Relationships
# A list of collections containing this entity.
collections(after: String, first: Int): CollectionConnection
# A list of tags linked to this entity.
tags(after: String, first: Int): TagConnection
# Place images found at MediaWiki URLs in the place’s URL relationships.
# Defaults to URL relationships with the type “image”.
# This field is provided by the MediaWiki extension.
mediaWikiImages(
# The type of URL relationship that will be selected to find images. See the
# possible [Place-URL relationship types](https://musicbrainz.org/relationships/place-url).
type: String = "image"
): [MediaWikiImage]!
}
# A connection to a list of items.
type PlaceConnection {
# Information to aid in pagination.
pageInfo: PageInfo!
# A list of edges.
edges: [PlaceEdge]
# A list of nodes in the connection (without going through the
# `edges` field).
nodes: [Place]
# A count of the total number of items in this connection,
# ignoring pagination.
totalCount: Int
}
# An edge in a connection.
type PlaceEdge {
# The item at the end of the edge
node: Place
# A cursor for use in pagination
cursor: String!
# The relevancy score (0–100) assigned by the search engine, if
# these results were found through a search.
score: Int
}
# The query root, from which multiple types of MusicBrainz
# requests can be made.
type Query {
# Perform a lookup of a MusicBrainz entity by its MBID.
lookup: LookupQuery
# Browse all MusicBrainz entities directly linked to another entity.
browse: BrowseQuery
# Search for MusicBrainz entities using Lucene query syntax.
search: SearchQuery
# Fetches an object given its ID
node(
# The ID of an object
id: ID!
): Node
# A query for data on [Last.fm](https://www.last.fm/) that is not connected
# to any particular MusicBrainz entity. This field is provided by the
# Last.fm extension.
lastFM: LastFMQuery
spotify: SpotifyQuery!
}
# [Ratings](https://musicbrainz.org/doc/Rating_System) allow users
# to rate MusicBrainz entities. User may assign a value between 1 and 5; these
# values are then aggregated by the server to compute an average community rating
# for the entity.
type Rating {
# The number of votes that have contributed to the rating.
voteCount: Int!
# The average rating value based on the aggregated votes.
value: Float
}
# A [recording](https://musicbrainz.org/doc/Recording) is an
# entity in MusicBrainz which can be linked to tracks on releases. Each track must
# always be associated with a single recording, but a recording can be linked to
# any number of tracks.
#
# A recording represents distinct audio that has been used to produce at least one
# released track through copying or mastering. A recording itself is never
# produced solely through copying or mastering.
#
# Generally, the audio represented by a recording corresponds to the audio at a
# stage in the production process before any final mastering but after any editing
# or mixing.
type Recording implements Node, Entity {
# The ID of an object
id: ID!
# The MBID of the entity.
mbid: MBID!
# The official title of the entity.
title: String
# A comment used to help distinguish identically named entitites.
disambiguation: String
# [Aliases](https://musicbrainz.org/doc/Aliases) are used to store
# alternate names or misspellings.
aliases: [Alias]
# The main credited artist(s).
artistCredit: [ArtistCredit] @deprecated(reason: "The `artistCredit` field has been renamed to\\n`artistCredits`, since it is a list of credits and is referred to in the\\nplural form throughout the MusicBrainz documentation. This field is deprecated\\nand will be removed in a major release in the future. Use the equivalent\\n`artistCredits` field.")
# The main credited artist(s).
artistCredits: [ArtistCredit]
# A list of [International Standard Recording Codes](https://musicbrainz.org/doc/ISRC)
# (ISRCs) for this recording.
isrcs: [ISRC]
# An approximation to the length of the recording, calculated
# from the lengths of the tracks using it.
length: Duration
# Whether this is a video recording.
video: Boolean
# A list of artists linked to this entity.
artists(after: String, first: Int): ArtistConnection
# A list of releases linked to this entity.
releases(
# Filter by one or more release group types.
type: [ReleaseGroupType]
# Filter by one or more release statuses.
status: [ReleaseStatus]
after: String
first: Int
): ReleaseConnection
# Relationships between this entity and other entitites.
relationships: Relationships
# A list of collections containing this entity.
collections(after: String, first: Int): CollectionConnection
# The rating users have given to this entity.
rating: Rating
# A list of tags linked to this entity.
tags(after: String, first: Int): TagConnection
# Data about the recording from [TheAudioDB](http://www.theaudiodb.com/).
# This field is provided by TheAudioDB extension.
theAudioDB: TheAudioDBTrack
# Data about the recording from [Last.fm](https://www.last.fm/), a good
# source for measuring popularity via listener and play counts. This field
# is provided by the Last.fm extension.
lastFM: LastFMTrack
# The recording’s entry on Spotify.
spotify(
# The strategies to use to match the recording with a Spotify track, in
# preferential order.
strategy: [SpotifyMatchStrategy!] = [URL, EXTERNALID]
): SpotifyTrack
}
# A connection to a list of items.
type RecordingConnection {
# Information to aid in pagination.
pageInfo: PageInfo!
# A list of edges.
edges: [RecordingEdge]
# A list of nodes in the connection (without going through the
# `edges` field).
nodes: [Recording]
# A count of the total number of items in this connection,
# ignoring pagination.
totalCount: Int
}
# An edge in a connection.
type RecordingEdge {
# The item at the end of the edge
node: Recording
# A cursor for use in pagination
cursor: String!
# The relevancy score (0–100) assigned by the search engine, if
# these results were found through a search.
score: Int
}
# [Relationships](https://musicbrainz.org/doc/Relationships) are a
# way to represent all the different ways in which entities are connected to each
# other and to URLs outside MusicBrainz.
type Relationship {
# The target entity.
target: Entity!
# The direction of the relationship.
direction: String!
# The type of entity on the receiving end of the relationship.
targetType: String!
# How the source entity was actually credited, if different
# from its main (performance) name.
sourceCredit: String
# How the target entity was actually credited, if different
# from its main (performance) name.
targetCredit: String
# The date on which the relationship became applicable.
begin: Date
# The date on which the relationship became no longer applicable.
end: Date
# Whether the relationship still applies.
ended: Boolean
# Attributes which modify the relationship. There is a [list
# of all attributes](https://musicbrainz.org/relationship-attributes), but the
# attributes which are available, and how they should be used, depends on the
# relationship type.
attributes: [String]
# The type of relationship.
type: String
# The MBID associated with the value of the `type`
# field.
typeID: MBID
}
# A connection to a list of items.
type RelationshipConnection {
# Information to aid in pagination.
pageInfo: PageInfo!
# A list of edges.
edges: [RelationshipEdge]
# A list of nodes in the connection (without going through the
# `edges` field).
nodes: [Relationship]
# A count of the total number of items in this connection,
# ignoring pagination.
totalCount: Int
}
# An edge in a connection.
type RelationshipEdge {
# The item at the end of the edge
node: Relationship
# A cursor for use in pagination
cursor: String!
# The relevancy score (0–100) assigned by the search engine, if
# these results were found through a search.
score: Int
}
# Lists of entity relationships for each entity type.
type Relationships {
# A list of relationships between these two entity types.
areas(
# Filter by the relationship direction.
direction: String
# Filter by the relationship type.
type: String
# The MBID associated with the value of the `type`
# field.
typeID: MBID
after: String
first: Int
before: String
last: Int
): RelationshipConnection
# A list of relationships between these two entity types.
artists(
# Filter by the relationship direction.
direction: String
# Filter by the relationship type.
type: String
# The MBID associated with the value of the `type`
# field.
typeID: MBID
after: String
first: Int
before: String
last: Int
): RelationshipConnection
# A list of relationships between these two entity types.
events(
# Filter by the relationship direction.
direction: String
# Filter by the relationship type.
type: String
# The MBID associated with the value of the `type`
# field.
typeID: MBID
after: String
first: Int
before: String
last: Int
): RelationshipConnection
# A list of relationships between these two entity types.
instruments(
# Filter by the relationship direction.
direction: String
# Filter by the relationship type.
type: String
# The MBID associated with the value of the `type`
# field.
typeID: MBID
after: String
first: Int
before: String
last: Int
): RelationshipConnection
# A list of relationships between these two entity types.
labels(
# Filter by the relationship direction.
direction: String
# Filter by the relationship type.
type: String
# The MBID associated with the value of the `type`
# field.
typeID: MBID
after: String
first: Int
before: String
last: Int
): RelationshipConnection
# A list of relationships between these two entity types.
places(
# Filter by the relationship direction.
direction: String
# Filter by the relationship type.
type: String
# The MBID associated with the value of the `type`
# field.
typeID: MBID
after: String
first: Int
before: String
last: Int
): RelationshipConnection
# A list of relationships between these two entity types.
recordings(
# Filter by the relationship direction.
direction: String
# Filter by the relationship type.
type: String
# The MBID associated with the value of the `type`
# field.
typeID: MBID
after: String
first: Int
before: String
last: Int
): RelationshipConnection
# A list of relationships between these two entity types.
releases(
# Filter by the relationship direction.
direction: String
# Filter by the relationship type.
type: String
# The MBID associated with the value of the `type`
# field.
typeID: MBID
after: String
first: Int
before: String
last: Int
): RelationshipConnection
# A list of relationships between these two entity types.
releaseGroups(
# Filter by the relationship direction.
direction: String
# Filter by the relationship type.
type: String
# The MBID associated with the value of the `type`
# field.
typeID: MBID
after: String
first: Int
before: String
last: Int
): RelationshipConnection
# A list of relationships between these two entity types.
series(
# Filter by the relationship direction.
direction: String
# Filter by the relationship type.
type: String
# The MBID associated with the value of the `type`
# field.
typeID: MBID
after: String
first: Int
before: String
last: Int
): RelationshipConnection
# A list of relationships between these two entity types.
urls(
# Filter by the relationship direction.
direction: String
# Filter by the relationship type.
type: String
# The MBID associated with the value of the `type`
# field.
typeID: MBID
after: String
first: Int
before: String
last: Int
): RelationshipConnection
# A list of relationships between these two entity types.
works(
# Filter by the relationship direction.
direction: String
# Filter by the relationship type.
type: String
# The MBID associated with the value of the `type`
# field.
typeID: MBID
after: String
first: Int
before: String
last: Int
): RelationshipConnection
}
# A [release](https://musicbrainz.org/doc/Release) represents the
# unique release (i.e. issuing) of a product on a specific date with specific
# release information such as the country, label, barcode, packaging, etc. If you
# walk into a store and purchase an album or single, they’re each represented in
# MusicBrainz as one release.
type Release implements Node, Entity {
# The ID of an object
id: ID!
# The MBID of the entity.
mbid: MBID!
# The official title of the entity.
title: String
# A comment used to help distinguish identically named entitites.
disambiguation: String
# [Aliases](https://musicbrainz.org/doc/Aliases) are used to store
# alternate names or misspellings.
aliases: [Alias]
# The main credited artist(s).
artistCredit: [ArtistCredit] @deprecated(reason: "The `artistCredit` field has been renamed to\\n`artistCredits`, since it is a list of credits and is referred to in the\\nplural form throughout the MusicBrainz documentation. This field is deprecated\\nand will be removed in a major release in the future. Use the equivalent\\n`artistCredits` field.")
# The main credited artist(s).
artistCredits: [ArtistCredit]
# The release events for this release.
releaseEvents: [ReleaseEvent]
# The [release date](https://musicbrainz.org/doc/Release/Date)
# is the date in which a release was made available through some sort of
# distribution mechanism.
date: Date
# The country in which the release was issued.
country: String
# The [Amazon Standard Identification Number](https://musicbrainz.org/doc/ASIN)
# of the release.
asin: ASIN
# The [barcode](https://en.wikipedia.org/wiki/Barcode), if the
# release has one. The most common types found on releases are 12-digit
# [UPCs](https://en.wikipedia.org/wiki/Universal_Product_Code) and 13-digit
# [EANs](https://en.wikipedia.org/wiki/International_Article_Number).
barcode: String
# The status describes how “official” a release is.
status: ReleaseStatus
# The MBID associated with the value of the `status`
# field.
statusID: MBID
# The physical packaging that accompanies the release. See
# the [list of packaging](https://musicbrainz.org/doc/Release/Packaging) for more
# information.
packaging: String
# The MBID associated with the value of the `packaging`
# field.
packagingID: MBID
# Data quality indicates how good the data for a release is.
# It is not a mark of how good or bad the music itself is – for that, use
# [ratings](https://musicbrainz.org/doc/Rating_System).
quality: String
# The media on which the release was distributed.
media: [Medium]
# A list of artists linked to this entity.
artists(after: String, first: Int): ArtistConnection
# A list of labels linked to this entity.
labels(after: String, first: Int): LabelConnection
# A list of recordings linked to this entity.
recordings(after: String, first: Int): RecordingConnection
# A list of release groups linked to this entity.
releaseGroups(
# Filter by one or more release group types.
type: [ReleaseGroupType]
after: String
first: Int
): ReleaseGroupConnection
# Relationships between this entity and other entitites.
relationships: Relationships
# A list of collections containing this entity.
collections(after: String, first: Int): CollectionConnection
# A list of tags linked to this entity.
tags(after: String, first: Int): TagConnection
# An object containing a list and summary of the cover art images that are
# present for this release from the [Cover Art Archive](https://musicbrainz.org/doc/Cover_Art_Archive).
# This field is provided by the Cover Art Archive extension.
coverArtArchive: CoverArtArchiveRelease
# Information about the release on Discogs.
discogs: DiscogsRelease
# Data about the release from [Last.fm](https://www.last.fm/), a good source
# for measuring popularity via listener and play counts. This field is
# provided by the Last.fm extension.
lastFM: LastFMAlbum
# The release’s entry on Spotify.
spotify(
# The strategies to use to match the release with a Spotify album, in
# preferential order.
strategy: [SpotifyMatchStrategy!] = [URL, EXTERNALID]
): SpotifyAlbum
}
# A connection to a list of items.
type ReleaseConnection {
# Information to aid in pagination.
pageInfo: PageInfo!
# A list of edges.
edges: [ReleaseEdge]
# A list of nodes in the connection (without going through the
# `edges` field).
nodes: [Release]
# A count of the total number of items in this connection,
# ignoring pagination.
totalCount: Int
}
# An edge in a connection.
type ReleaseEdge {
# The item at the end of the edge
node: Release
# A cursor for use in pagination
cursor: String!
# The relevancy score (0–100) assigned by the search engine, if
# these results were found through a search.
score: Int
}
# The date on which a release was issued in a country/region with
# a particular label, catalog number, barcode, and format.
type ReleaseEvent {
area: Area
date: Date
}
# A [release group](https://musicbrainz.org/doc/Release_Group) is
# used to group several different releases into a single logical entity. Every
# release belongs to one, and only one release group.
#
# Both release groups and releases are “albums” in a general sense, but with an
# important difference: a release is something you can buy as media such as a CD
# or a vinyl record, while a release group embraces the overall concept of an
# album – it doesn’t matter how many CDs or editions/versions it had.
type ReleaseGroup implements Node, Entity {
# The ID of an object
id: ID!
# The MBID of the entity.
mbid: MBID!
# The official title of the entity.
title: String
# A comment used to help distinguish identically named entitites.
disambiguation: String
# [Aliases](https://musicbrainz.org/doc/Aliases) are used to store
# alternate names or misspellings.
aliases: [Alias]
# The main credited artist(s).
artistCredit: [ArtistCredit] @deprecated(reason: "The `artistCredit` field has been renamed to\\n`artistCredits`, since it is a list of credits and is referred to in the\\nplural form throughout the MusicBrainz documentation. This field is deprecated\\nand will be removed in a major release in the future. Use the equivalent\\n`artistCredits` field.")
# The main credited artist(s).
artistCredits: [ArtistCredit]
# The date of the earliest release in the group.
firstReleaseDate: Date
# The [type](https://musicbrainz.org/doc/Release_Group/Type)
# of a release group describes what kind of releases the release group represents,
# e.g. album, single, soundtrack, compilation, etc. A release group can have a
# “main” type and an unspecified number of additional types.
primaryType: ReleaseGroupType
# The MBID associated with the value of the `primaryType`
# field.
primaryTypeID: MBID
# Additional [types](https://musicbrainz.org/doc/Release_Group/Type)
# that apply to this release group.
secondaryTypes: [ReleaseGroupType]
# The MBIDs associated with the values of the `secondaryTypes`
# field.
secondaryTypeIDs: [MBID]
# A list of artists linked to this entity.
artists(after: String, first: Int): ArtistConnection
# A list of releases linked to this entity.
releases(
# Filter by one or more release group types.
type: [ReleaseGroupType]
# Filter by one or more release statuses.
status: [ReleaseStatus]
after: String
first: Int
): ReleaseConnection
# Relationships between this entity and other entitites.
relationships: Relationships
# A list of collections containing this entity.
collections(after: String, first: Int): CollectionConnection
# The rating users have given to this entity.
rating: Rating
# A list of tags linked to this entity.
tags(after: String, first: Int): TagConnection
# The cover art for a release in the release group, obtained from the
# [Cover Art Archive](https://musicbrainz.org/doc/Cover_Art_Archive). A
# release in the release group will be chosen as representative of the release
# group.
# This field is provided by the Cover Art Archive extension.
coverArtArchive: CoverArtArchiveRelease
# Images of the release group from [fanart.tv](https://fanart.tv/).
# This field is provided by the fanart.tv extension.
fanArt: FanArtAlbum
# Data about the release group from [TheAudioDB](http://www.theaudiodb.com/),
# a good source of descriptive information, reviews, and images.
# This field is provided by TheAudioDB extension.
theAudioDB: TheAudioDBAlbum
# Information about the release group on Discogs.
discogs: DiscogsMaster
}
# A connection to a list of items.
type ReleaseGroupConnection {
# Information to aid in pagination.
pageInfo: PageInfo!
# A list of edges.
edges: [ReleaseGroupEdge]
# A list of nodes in the connection (without going through the
# `edges` field).
nodes: [ReleaseGroup]
# A count of the total number of items in this connection,
# ignoring pagination.
totalCount: Int
}
# An edge in a connection.
type ReleaseGroupEdge {
# The item at the end of the edge
node: ReleaseGroup
# A cursor for use in pagination
cursor: String!
# The relevancy score (0–100) assigned by the search engine, if
# these results were found through a search.
score: Int
}
# A type used to describe release groups, e.g. album, single, EP,
# etc.
enum ReleaseGroupType {
# An album, perhaps better defined as a “Long Play” (LP)
# release, generally consists of previously unreleased material (unless this type
# is combined with secondary types which change that, such as “Compilation”). This
# includes album re-issues, with or without bonus tracks.
ALBUM
# A single typically has one main song and possibly a handful
# of additional tracks or remixes of the main track. A single is usually named
# after its main song.
SINGLE
# An EP is a so-called “Extended Play” release and often
# contains the letters EP in the title. Generally an EP will be shorter than a
# full length release (an LP or “Long Play”) and the tracks are usually exclusive
# to the EP, in other words the tracks don’t come from a previously issued
# release. EP is fairly difficult to define; usually it should only be assumed
# that a release is an EP if the artist defines it as such.
EP
# Any release that does not fit any of the other categories.
OTHER
# An episodic release that was originally broadcast via radio,
# television, or the Internet, including podcasts.
BROADCAST
# A compilation is a collection of previously released tracks
# by one or more artists.
COMPILATION
# A soundtrack is the musical score to a movie, TV series,
# stage show, computer game, etc.
SOUNDTRACK
# A non-music spoken word release.
SPOKENWORD
# An interview release contains an interview, generally with
# an artist.
INTERVIEW
# An audiobook is a book read by a narrator without music.
AUDIOBOOK
# A release that was recorded live.
LIVE
# A release that was (re)mixed from previously released
# material.
REMIX
# A DJ-mix is a sequence of several recordings played one
# after the other, each one modified so that they blend together into a continuous
# flow of music. A DJ mix release requires that the recordings be modified in some
# manner, and the DJ who does this modification is usually (although not always)
# credited in a fairly prominent way.
DJMIX
# Promotional in nature (but not necessarily free), mixtapes
# and street albums are often released by artists to promote new artists, or
# upcoming studio albums by prominent artists. They are also sometimes used to
# keep fans’ attention between studio releases and are most common in rap & hip
# hop genres. They are often not sanctioned by the artist’s label, may lack proper
# sample or song clearances and vary widely in production and recording quality.
# While mixtapes are generally DJ-mixed, they are distinct from commercial DJ
# mixes (which are usually deemed compilations) and are defined by having a
# significant proportion of new material, including original production or
# original vocals over top of other artists’ instrumentals. They are distinct from
# demos in that they are designed for release directly to the public and fans, not
# to labels.
MIXTAPE
# A release that was recorded for limited circulation or
# reference use rather than for general public release.
DEMO
# A non-album track (special case).
NAT
}
# A type used to describe the status of releases, e.g. official,
# bootleg, etc.
enum ReleaseStatus {
# Any release officially sanctioned by the artist and/or their
# record company. (Most releases will fit into this category.)
OFFICIAL
# A giveaway release or a release intended to promote an
# upcoming official release, e.g. prerelease albums or releases included with a
# magazine.
PROMOTION
# An unofficial/underground release that was not sanctioned by
# the artist and/or the record company.
BOOTLEG
# A pseudo-release is a duplicate release for
# translation/transliteration purposes.
PSEUDORELEASE
}
# A search for MusicBrainz entities using Lucene query syntax.
type SearchQuery {
# Search for area entities matching the given query.
areas(
# The query terms, in Lucene search syntax. See [examples
# and search fields](https://musicbrainz.org/doc/Development/XML_Web_Service/Version_2/Search).
query: String!
after: String
first: Int
): AreaConnection
# Search for artist entities matching the given query.
artists(
# The query terms, in Lucene search syntax. See [examples
# and search fields](https://musicbrainz.org/doc/Development/XML_Web_Service/Version_2/Search).
query: String!
after: String
first: Int
): ArtistConnection
# Search for event entities matching the given query.
events(
# The query terms, in Lucene search syntax. See [examples
# and search fields](https://musicbrainz.org/doc/Development/XML_Web_Service/Version_2/Search).
query: String!
after: String
first: Int
): EventConnection
# Search for instrument entities matching the given query.
instruments(
# The query terms, in Lucene search syntax. See [examples
# and search fields](https://musicbrainz.org/doc/Development/XML_Web_Service/Version_2/Search).
query: String!
after: String
first: Int
): InstrumentConnection
# Search for label entities matching the given query.
labels(
# The query terms, in Lucene search syntax. See [examples
# and search fields](https://musicbrainz.org/doc/Development/XML_Web_Service/Version_2/Search).
query: String!
after: String
first: Int
): LabelConnection
# Search for place entities matching the given query.
places(
# The query terms, in Lucene search syntax. See [examples
# and search fields](https://musicbrainz.org/doc/Development/XML_Web_Service/Version_2/Search).
query: String!
after: String
first: Int
): PlaceConnection
# Search for recording entities matching the given query.
recordings(
# The query terms, in Lucene search syntax. See [examples
# and search fields](https://musicbrainz.org/doc/Development/XML_Web_Service/Version_2/Search).
query: String!
after: String
first: Int
): RecordingConnection
# Search for release entities matching the given query.
releases(
# The query terms, in Lucene search syntax. See [examples
# and search fields](https://musicbrainz.org/doc/Development/XML_Web_Service/Version_2/Search).
query: String!
after: String
first: Int
): ReleaseConnection
# Search for release group entities matching the given query.
releaseGroups(
# The query terms, in Lucene search syntax. See [examples
# and search fields](https://musicbrainz.org/doc/Development/XML_Web_Service/Version_2/Search).
query: String!
after: String
first: Int
): ReleaseGroupConnection
# Search for series entities matching the given query.
series(
# The query terms, in Lucene search syntax. See [examples
# and search fields](https://musicbrainz.org/doc/Development/XML_Web_Service/Version_2/Search).
query: String!
after: String
first: Int
): SeriesConnection
# Search for work entities matching the given query.
works(
# The query terms, in Lucene search syntax. See [examples
# and search fields](https://musicbrainz.org/doc/Development/XML_Web_Service/Version_2/Search).
query: String!
after: String
first: Int
): WorkConnection
}
# A [series](https://musicbrainz.org/doc/Series) is a sequence of
# separate release groups, releases, recordings, works or events with a common
# theme.
type Series implements Node, Entity {
# The ID of an object
id: ID!
# The MBID of the entity.
mbid: MBID!
# The official name of the entity.
name: String
# A comment used to help distinguish identically named entitites.
disambiguation: String
# The type primarily describes what type of entity the series
# contains.
type: String
# The MBID associated with the value of the `type`
# field.
typeID: MBID
# Relationships between this entity and other entitites.
relationships: Relationships
# A list of collections containing this entity.
collections(after: String, first: Int): CollectionConnection
# A list of tags linked to this entity.
tags(after: String, first: Int): TagConnection
}
# A connection to a list of items.
type SeriesConnection {
# Information to aid in pagination.
pageInfo: PageInfo!
# A list of edges.
edges: [SeriesEdge]
# A list of nodes in the connection (without going through the
# `edges` field).
nodes: [Series]
# A count of the total number of items in this connection,
# ignoring pagination.
totalCount: Int
}
# An edge in a connection.
type SeriesEdge {
# The item at the end of the edge
node: Series
# A cursor for use in pagination
cursor: String!
# The relevancy score (0–100) assigned by the search engine, if
# these results were found through a search.
score: Int
}
# An album from Spotify.
type SpotifyAlbum {
# The [Spotify ID](https://developer.spotify.com/documentation/web-api/#spotify-uris-and-ids)
# for the album.
albumID: ID!
# The [Spotify URI](https://developer.spotify.com/documentation/web-api/#spotify-uris-and-ids)
# for the album.
uri: String!
# A link to the Web API endpoint providing full details of the album.
href: URLString!
# The name of the album. In case of an album takedown, the value may be empty.
title: String
# The type of the album, e.g. “Album”, “Single”, “Compilation”.
albumType: ReleaseGroupType!
# The artists of the album.
artists: [SpotifyArtist!]!
# The markets in which the album is available: [ISO 3166-1 alpha-2](http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)
# country codes.
#
# Note that an album is considered available in a market when at least 1 of its tracks is available in that market.
availableMarkets: [String!]!
# The copyright statements of the album.
copyrights: [SpotifyCopyright!]!
# Known external IDs for the album.
externalIDs: [SpotifyExternalID!]!
# Known external URLs for this album.
externalURLs: [SpotifyExternalURL!]!
# A list of the genres used to classify the album. For example: “Prog Rock”,
# “Post-Grunge”. (If not yet classified, the array is empty.)
genres: [String!]!
# The cover art for the album in various sizes, widest first.
images: [SpotifyImage!]!
# The label for the album.
label: String
# The popularity of the album. The value will be between 0 and 100, with 100
# being the most popular. The popularity is calculated from the popularity of
# the album’s individual tracks.
popularity: Int!
# The date the album was first released, for example “1981-12-15”. Depending
# on the precision, the month or day might be missing.
releaseDate: Date
}
# An artist from Spotify.
type SpotifyArtist {
# The [Spotify ID](https://developer.spotify.com/documentation/web-api/#spotify-uris-and-ids)
# for the artist.
artistID: ID!
# The [Spotify URI](https://developer.spotify.com/documentation/web-api/#spotify-uris-and-ids)
# for the artist.
uri: String!
# A link to the Web API endpoint providing full details of the artist.
href: URLString!
# The name of the artist.
name: String!
# Known external URLs for this artist.
externalURLs: [SpotifyExternalURL!]!
# A list of the genres the artist is associated with. For example:
# “Prog Rock”, “Post-Grunge”. (If not yet classified, the array is empty.)
genres: [String!]!
# The popularity of the artist. The value will be between 0 and 100, with 100
# being the most popular. The artist’s popularity is calculated from the
# popularity of all the artist’s tracks.
popularity: Int!
# Images of the artist in various sizes, widest first.
images: [SpotifyImage!]!
# Spotify catalog information about an artist’s top tracks by country.
topTracks(
# An [ISO 3166-1 alpha-2](http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)
# country code.
market: String!
): [SpotifyTrack!]!
# Spotify catalog information about artists similar to a given artist.
# Similarity is based on analysis of the Spotify community’s listening
# history.
relatedArtists: [SpotifyArtist!]!
}
# The audio features of a track from Spotify.
type SpotifyAudioFeatures {
# A confidence measure from 0.0 to 1.0 of whether the track is acoustic. 1.0
# represents high confidence the track is acoustic.
acousticness: Float!
# Danceability describes how suitable a track is for dancing based on a
# combination of musical elements including tempo, rhythm stability, beat
# strength, and overall regularity. A value of 0.0 is least danceable and 1.0
# is most danceable.
danceability: Float!
# The duration of the track in milliseconds.
duration: Duration!
# Energy is a measure from 0.0 to 1.0 and represents a perceptual measure of
# intensity and activity. Typically, energetic tracks feel fast, loud, and
# noisy. For example, death metal has high energy, while a Bach prelude scores
# low on the scale. Perceptual features contributing to this attribute include
# dynamic range, perceived loudness, timbre, onset rate, and general entropy.
energy: Float!
# Predicts whether a track contains no vocals. “Ooh” and “aah” sounds are
# treated as instrumental in this context. Rap or spoken word tracks are
# clearly “vocal”. The closer the instrumentalness value is to 1.0, the
# greater likelihood the track contains no vocal content. Values above 0.5 are
# intended to represent instrumental tracks, but confidence is higher as the
# value approaches 1.0.
instrumentalness: Float!
# The key the track is in. Integers map to pitches using standard [Pitch Class
# notation](https://en.wikipedia.org/wiki/Pitch_class), e.g. 0 = C, 1 = C♯/D♭,
# 2 = D, and so on. See the `keyName` field if you’d prefer the note as a
# string.
key: Int!
# The `key` translated from an integer to a name like “C”. (Only one name
# will be returned, so enharmonic notes like like C♯/D♭ will just return
# “C♯”.)
keyName: String!
# Detects the presence of an audience in the recording. Higher liveness values
# represent an increased probability that the track was performed live. A
# value above 0.8 provides strong likelihood that the track is live.
liveness: Float!
# The overall loudness of a track in decibels (dB). Loudness values are
# averaged across the entire track and are useful for comparing relative
# loudness of tracks. Loudness is the quality of a sound that is the primary
# psychological correlate of physical strength (amplitude). Values typical
# range between -60 and 0 db.
loudness: Float!
# Mode indicates the modality (major or minor) of a track, the type of scale
# from which its melodic content is derived. Major is represented by 1 and
# minor is 0.
mode: SpotifyTrackMode!
# Speechiness detects the presence of spoken words in a track. The more
# exclusively speech-like the recording (e.g. talk show, audio book, poetry),
# the closer to 1.0 the attribute value. Values above 0.66 describe tracks
# that are probably made entirely of spoken words. Values between 0.33 and
# 0.66 describe tracks that may contain both music and speech, either in
# sections or layered, including such cases as rap music. Values below 0.33
# most likely represent music and other non-speech-like tracks.
speechiness: Float!
# The overall estimated tempo of a track in beats per minute (BPM). In musical
# terminology, tempo is the speed or pace of a given piece and derives
# directly from the average beat duration.
tempo: Float!
# An estimated overall time signature of a track. The time signature (meter)
# is a notational convention to specify how many beats are in each bar (or
# measure).
timeSignature: Float!
# A measure from 0.0 to 1.0 describing the musical positiveness conveyed by a
# track. Tracks with high valence sound more positive (e.g. happy, cheerful,
# euphoric), while tracks with low valence sound more negative (e.g. sad,
# depressed, angry).
valence: Float!
}
# A copyright statement for an album from Spotify.
type SpotifyCopyright {
# The copyright text.
text: String!
# Whether the copyright is for the work itself or the sound recording
# (performance).
type: SpotifyCopyrightType!
}
# The type of copyright.
enum SpotifyCopyrightType {
# The copyright.
COPYRIGHT
# The sound recording (performance) copyright.
PERFORMANCE
}
# A value for identifying an entity with some third party.
type SpotifyExternalID {
# The identifier type, for example “isrc”, “ean”, “upc”.
type: String!
# The identifier value.
id: String!
}
# A URL for linking to an entity with some third party.
type SpotifyExternalURL {
# The type of the URL, for example “spotify”.
type: String!
# An external, public URL to the object.
url: URLString!
}
# A single image from Spotify.
type SpotifyImage {
# The source URL of the image.
url: URLString!
# The image width in pixels, if known.
width: Int
# The image height in pixels, if known.
height: Int
}
# Strategies for matching MusicBrainz entities to Spotify entities.
enum SpotifyMatchStrategy {
# The entity will be matched by finding an explicit URL relationship that
# links to Spotify.
URL
# The entity will be matched by searching for Spotify entities by some
# external ID that is known to both MusicBrainz and Spotify, like an ISRC
# or UPC barcode. Since this can result in multiple Spotify matches, the most
# popular will be preferred (if possible), or the first.
EXTERNALID
}
type SpotifyQuery {
# Track recommendations based on seed entities and various parameters.
recommendations(
# A list of [Spotify IDs](https://developer.spotify.com/documentation/web-api/#spotify-uris-and-ids)
# for seed artists. Up to 5 seed values may be provided in any combination
# of `seedArtists`, `seedTracks`, and `seedGenres`.
seedArtists: [ID!] = []
# A comma separated list of any genres in the set of [available genre seeds](https://developer.spotify.com/documentation/web-api/reference/browse/get-recommendations/#available-genre-seeds).
# Up to 5 seed values may be provided in any combination of `seedArtists`,
# `seedTracks`, and `seedGenres`.
seedGenres: [ID!] = []
# A list of [Spotify IDs](https://developer.spotify.com/documentation/web-api/#spotify-uris-and-ids)
# for seed tracks. Up to 5 seed values may be provided in any combination
# of `seedArtists`, `seedTracks`, and `seedGenres`.
seedTracks: [ID!] = []
# The target size of the list of recommended tracks. For seeds with
# unusually small pools or when highly restrictive filtering is applied, it
# may be impossible to generate the requested number of recommended tracks.
# Debugging information for such cases is available in the response.
#
# Default: 20. Minimum: 1. Maximum: 100.
limit: Int
): SpotifyRecommendations!
}
type SpotifyRecommendations {
tracks: [SpotifyTrack!]!
}
# A track from Spotify.
type SpotifyTrack {
# The [Spotify ID](https://developer.spotify.com/documentation/web-api/#spotify-uris-and-ids)
# for the track.
trackID: ID!
# The [Spotify URI](https://developer.spotify.com/documentation/web-api/#spotify-uris-and-ids)
# for the track.
uri: String!
# A link to the Web API endpoint providing full details of the track.
href: URLString!
# The name of the track.
title: String!
# The audio features of the track.
audioFeatures: SpotifyAudioFeatures
# The album on which the track appears.
album: SpotifyAlbum
# The artists who performed the track.
artists: [SpotifyArtist!]!
# A list of the countries in which the track can be played, identified by
# their [ISO 3166-1 alpha-2](http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)
# code.
availableMarkets: [String!]!
# The disc number (usually `1` unless the album consists of more than one
# disc).
discNumber: Int!
# The track length in milliseconds.
duration: Duration!
# Whether or not the track has explicit lyrics, if known.
explicit: Boolean
# Known external IDs for the track.
externalIDs: [SpotifyExternalID!]!
# Known external URLs for the track.
externalURLs: [SpotifyExternalURL!]!
# The popularity of the track. The value will be between 0 and 100, with 100
# being the most popular.
#
# The popularity is calculated by algorithm and is based, in the most part, on
# the total number of plays the track has had and how recent those plays are.
# Generally speaking, songs that are being played a lot now will have a higher
# popularity than songs that were played a lot in the past.
#
# Duplicate tracks (e.g. the same track from a single and an album) are rated
# independently.
#
# Artist and album popularity is derived mathematically from track popularity.
#
# Note that the popularity value may lag actual popularity by a few days: the
# value is not updated in real time.
popularity: Int!
# A link to a 30 second preview (MP3 format) of the track, if available.
previewURL: URLString
# The number of the track. If an album has several discs, the track number is
# the number on the specified disc.
trackNumber: Int!
# A MusicBrainz recording that corresponds to the track.
musicBrainz(
# The strategies to use to match the track with a MusicBrainz recording, in
# preferential order.
strategy: [SpotifyMatchStrategy!] = [URL, EXTERNALID]
): Recording
}
# The potential values for modality (major or minor) of a track.
enum SpotifyTrackMode {
# The major scale.
MAJOR
# The minor scale.
MINOR
}
# [Tags](https://musicbrainz.org/tags) are a way to mark entities
# with extra information – for example, the genres that apply to an artist,
# release, or recording.
type Tag {
# The tag label.
name: String!
# How many times this tag has been applied to the entity.
count: Int
}
# A connection to a list of items.
type TagConnection {
# Information to aid in pagination.
pageInfo: PageInfo!
# A list of edges.
edges: [TagEdge]
# A list of nodes in the connection (without going through the
# `edges` field).
nodes: [Tag]
# A count of the total number of items in this connection,
# ignoring pagination.
totalCount: Int
}
# An edge in a connection.
type TagEdge {
# The item at the end of the edge
node: Tag
# A cursor for use in pagination
cursor: String!
# The relevancy score (0–100) assigned by the search engine, if
# these results were found through a search.
score: Int
}
# An album on [TheAudioDB](http://www.theaudiodb.com/) corresponding with a
# MusicBrainz Release Group.
type TheAudioDBAlbum {
# TheAudioDB ID of the album.
albumID: ID
# TheAudioDB ID of the artist who released the album.
artistID: ID
# A description of the album, often available in several languages.
description(
# The two-letter code for the language in which to retrieve the biography.
lang: String = "en"
): String
# A review of the album.
review: String
# The worldwide sales figure.
salesCount: Float
# The album’s rating as determined by user votes, out of 10.
score: Float
# The number of users who voted to determine the album’s score.
scoreVotes: Float
# An image of the physical disc media for the album.
discImage(
# The size of the image to retrieve.
size: TheAudioDBImageSize = FULL
): URLString
# An image of the spine of the album packaging.
spineImage(
# The size of the image to retrieve.
size: TheAudioDBImageSize = FULL
): URLString
# An image of the front of the album packaging.
frontImage(
# The size of the image to retrieve.
size: TheAudioDBImageSize = FULL
): URLString
# An image of the back of the album packaging.
backImage(
# The size of the image to retrieve.
size: TheAudioDBImageSize = FULL
): URLString
# The primary musical genre of the album (e.g. “Alternative Rock”).
genre: String
# The primary musical mood of the album (e.g. “Sad”).
mood: String
# The primary musical style of the album (e.g. “Rock/Pop”).
style: String
# A rough description of the primary musical speed of the album (e.g. “Medium”).
speed: String
# The primary musical theme of the album (e.g. “In Love”).
theme: String
}
# An artist on [TheAudioDB](http://www.theaudiodb.com/).
type TheAudioDBArtist {
# TheAudioDB ID of the artist.
artistID: ID
# A biography of the artist, often available in several languages.
biography(
# The two-letter code for the language in which to retrieve the biography.
lang: String = "en"
): String
# The number of members in the musical group, if applicable.
memberCount: Int
# A 1000x185 JPG banner image containing the artist and their logo or name.
banner(
# The size of the image to retrieve.
size: TheAudioDBImageSize = FULL
): URLString
# A list of 1280x720 or 1920x1080 JPG images depicting the artist.
fanArt(
# The size of the images to retrieve.
size: TheAudioDBImageSize = FULL
): [URLString]!
# A 400x155 PNG image containing the artist’s logo or name, with a transparent
# background.
logo(
# The size of the image to retrieve.
size: TheAudioDBImageSize = FULL
): URLString
# A 1000x1000 JPG thumbnail image picturing the artist (usually containing
# every member of a band).
thumbnail(
# The size of the image to retrieve.
size: TheAudioDBImageSize = FULL
): URLString
# The primary musical genre of the artist (e.g. “Alternative Rock”).
genre: String
# The primary musical mood of the artist (e.g. “Sad”).
mood: String
# The primary musical style of the artist (e.g. “Rock/Pop”).
style: String
}
# The image sizes that may be requested at [TheAudioDB](http://www.theaudiodb.com/).
enum TheAudioDBImageSize {
# The image’s full original dimensions.
FULL
# A maximum dimension of 200px.
PREVIEW
}
# Details of a music video associated with a track on [TheAudioDB](http://www.theaudiodb.com/).
type TheAudioDBMusicVideo {
# The URL where the music video can be found.
url: URLString
# The video production company of the music video.
companyName: String
# The director of the music video.
directorName: String
# A list of still images from the music video.
screenshots(
# The size of the images to retrieve.
size: TheAudioDBImageSize = FULL
): [URLString]!
# The number of views the video has received at the given URL. This will rarely
# be up to date, so use cautiously.
viewCount: Float
# The number of likes the video has received at the given URL. This will rarely
# be up to date, so use cautiously.
likeCount: Float
# The number of dislikes the video has received at the given URL. This will
# rarely be up to date, so use cautiously.
dislikeCount: Float
# The number of comments the video has received at the given URL. This will
# rarely be up to date, so use cautiously.
commentCount: Float
}
# A track on [TheAudioDB](http://www.theaudiodb.com/) corresponding with a
# MusicBrainz Recording.
type TheAudioDBTrack {
# TheAudioDB ID of the track.
trackID: ID
# TheAudioDB ID of the album on which the track appears.
albumID: ID
# TheAudioDB ID of the artist who released the track.
artistID: ID
# A description of the track.
description(
# The two-letter code for the language in which to retrieve the description.
lang: String = "en"
): String
# A thumbnail image for the track.
thumbnail(
# The size of the image to retrieve.
size: TheAudioDBImageSize = FULL
): URLString
# The track’s rating as determined by user votes, out of 10.
score: Float
# The number of users who voted to determine the album’s score.
scoreVotes: Float
# The track number of the song on the album.
trackNumber: Int
# The official music video for the track.
musicVideo: TheAudioDBMusicVideo
# The primary musical genre of the track (e.g. “Alternative Rock”).
genre: String
# The primary musical mood of the track (e.g. “Sad”).
mood: String
# The primary musical style of the track (e.g. “Rock/Pop”).
style: String
# The primary musical theme of the track (e.g. “In Love”).
theme: String
}
# A time of day, in 24-hour hh:mm notation.
scalar Time
# A track is the way a recording is represented on a particular
# release (or, more exactly, on a particular medium). Every track has a title
# (see the guidelines for titles) and is credited to one or more artists.
type Track implements Entity {
# The MBID of the entity.
mbid: MBID!
# The official title of the entity.
title: String
# The track’s position on the overall release (including all
# tracks from all discs).
position: Int
# The track number, which may include information about the
# disc or side it appears on, e.g. “A1” or “B3”.
number: String
# The length of the track.
length: Duration
# The recording that appears on the track.
recording: Recording
}
# A [URL](https://musicbrainz.org/doc/URL) pointing to a resource
# external to MusicBrainz, i.e. an official homepage, a site where music can be
# acquired, an entry in another database, etc.
type URL implements Node, Entity {
# The ID of an object
id: ID!
# The MBID of the entity.
mbid: MBID!
# The actual URL string.
resource: URLString!
# Relationships between this entity and other entitites.
relationships: Relationships
}
# A web address.
scalar URLString
# A [work](https://musicbrainz.org/doc/Work) is a distinct
# intellectual or artistic creation, which can be expressed in the form of one or
# more audio recordings.
type Work implements Node, Entity {
# The ID of an object
id: ID!
# The MBID of the entity.
mbid: MBID!
# The official title of the entity.
title: String
# A comment used to help distinguish identically named entitites.
disambiguation: String
# [Aliases](https://musicbrainz.org/doc/Aliases) are used to store
# alternate names or misspellings.
aliases: [Alias]
# A list of [ISWCs](https://musicbrainz.org/doc/ISWC) assigned
# to the work by copyright collecting agencies.
iswcs: [String]
# The language in which the work was originally written.
language: String
# The type of work.
type: String
# The MBID associated with the value of the `type`
# field.
typeID: MBID
# A list of artists linked to this entity.
artists(after: String, first: Int): ArtistConnection
# Relationships between this entity and other entitites.
relationships: Relationships
# A list of collections containing this entity.
collections(after: String, first: Int): CollectionConnection
# The rating users have given to this entity.
rating: Rating
# A list of tags linked to this entity.
tags(after: String, first: Int): TagConnection
}
# A connection to a list of items.
type WorkConnection {
# Information to aid in pagination.
pageInfo: PageInfo!
# A list of edges.
edges: [WorkEdge]
# A list of nodes in the connection (without going through the
# `edges` field).
nodes: [Work]
# A count of the total number of items in this connection,
# ignoring pagination.
totalCount: Int
}
# An edge in a connection.
type WorkEdge {
# The item at the end of the edge
node: Work
# A cursor for use in pagination
cursor: String!
# The relevancy score (0–100) assigned by the search engine, if
# these results were found through a search.
score: Int
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment