# GraphQL Schema ```graphql # [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 } # 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 } # 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 } # 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 # 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 } # [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 } # 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 } # 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 } # 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 # 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] } # 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 } # 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 } # [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 } # 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 } # 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 } # 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 } # [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 } # A time of day, in 24-hour hh:mm notation. scalar Time # 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 } ```