{"id":16292474,"url":"https://github.com/exogen/graphbrainz-extension-spotify","last_synced_at":"2025-03-20T03:30:51.380Z","repository":{"id":44176296,"uuid":"144803534","full_name":"exogen/graphbrainz-extension-spotify","owner":"exogen","description":"Spotify GraphQL extension for GraphBrainz.","archived":false,"fork":false,"pushed_at":"2022-12-09T09:29:31.000Z","size":1623,"stargazers_count":6,"open_issues_count":17,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-16T14:53:56.560Z","etag":null,"topics":["graphbrainz","graphql","graphql-schema","musicbrainz","musicbrainz-api","spotify","spotify-api"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/exogen.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-08-15T03:54:28.000Z","updated_at":"2021-04-18T20:31:15.000Z","dependencies_parsed_at":"2023-01-25T20:46:37.914Z","dependency_job_id":null,"html_url":"https://github.com/exogen/graphbrainz-extension-spotify","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exogen%2Fgraphbrainz-extension-spotify","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exogen%2Fgraphbrainz-extension-spotify/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exogen%2Fgraphbrainz-extension-spotify/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exogen%2Fgraphbrainz-extension-spotify/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/exogen","download_url":"https://codeload.github.com/exogen/graphbrainz-extension-spotify/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244543734,"owners_count":20469552,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["graphbrainz","graphql","graphql-schema","musicbrainz","musicbrainz-api","spotify","spotify-api"],"created_at":"2024-10-10T20:06:56.789Z","updated_at":"2025-03-20T03:30:50.843Z","avatar_url":"https://github.com/exogen.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GraphBrainz Extension: Spotify\n\n[![npm version](https://img.shields.io/npm/v/graphbrainz-extension-spotify.svg)](https://www.npmjs.com/package/graphbrainz-extension-spotify)\n[![license](https://img.shields.io/npm/l/graphbrainz-extension-spotify.svg)](https://github.com/exogen/graphbrainz-extension-spotify/blob/master/LICENSE)\n\nRetrieve information about MusicBrainz entities from [Spotify](https://www.spotify.com/)\nusing GraphQL, calling the [Spotify Web API](https://developer.spotify.com/documentation/web-api/)\nunder the hood. This project has no affiliation with Spotify.\n\nThe extension works by finding Spotify URLs in an entity’s URL relationships.\nThe URL relationship must have the `streaming music` type and point to a Spotify\nentity of the appropriate type: `artist` for artists, `album` for releases, and\n`track` for recordings.\n\n**[Try out the live demo!][demo]** :bulb: Use the “Docs” sidebar or the\ndocumentation below to help construct your query.\n\n## Installation\n\nTo use this extension, install [GraphBrainz](https://github.com/exogen/graphbrainz),\nthen:\n\n```console\n$ npm install graphbrainz-extension-spotify\n$ GRAPHBRAINZ_EXTENSIONS='[\"graphbrainz-extension-spotify\"]' graphbrainz\n```\n\nOr, if you are using the middleware directly:\n\n```js\nimport graphbrainz from 'graphbrainz'\n\nconst middleware = graphbrainz({\n  // Don't forget to add the other extensions you use, too.\n  extensions: ['graphbrainz-extension-spotify']\n})\n```\n\n## Configuration\n\nThis extension can be configured using environment variables:\n\n- **`SPOTIFY_CLIENT_ID`**: The Spotify client ID to use. This is required.\n- **`SPOTIFY_CLIENT_SECRET`**: The Spotify client secret to use. This is\n  required.\n- **`SPOTIFY_BASE_URL`**: The base URL at which to access the Spotify API.\n  Defaults to `https://api.spotify.com/v1/`.\n- **`SPOTIFY_CACHE_SIZE`**: The number of items to keep in the cache. Defaults to\n  `GRAPHBRAINZ_CACHE_SIZE` if defined, or `8192`.\n- **`SPOTIFY_CACHE_TTL`**: The number of seconds to keep items in the cache.\n  Defaults to `GRAPHBRAINZ_CACHE_TTL` if defined, or `86400000` (one day).\n\nThis extension uses its own cache, separate from the MusicBrainz loader cache.\n\n## Example Queries\n\nGet the audio features and related artists for a track ([try it](\u003chttps://graphbrainz-extension-spotify.herokuapp.com/?query=%7B%0A%20%20lookup%20%7B%0A%20%20%20%20recording(mbid%3A%20%226c128cd9-94da-44fe-b74f-b68079fb1606%22)%20%7B%0A%20%20%20%20%20%20spotify%20%7B%0A%20%20%20%20%20%20%20%20title%0A%20%20%20%20%20%20%20%20previewURL%0A%20%20%20%20%20%20%20%20audioFeatures%20%7B%0A%20%20%20%20%20%20%20%20%20%20acousticness%0A%20%20%20%20%20%20%20%20%20%20danceability%0A%20%20%20%20%20%20%20%20%20%20duration%0A%20%20%20%20%20%20%20%20%20%20energy%0A%20%20%20%20%20%20%20%20%20%20instrumentalness%0A%20%20%20%20%20%20%20%20%20%20keyName%0A%20%20%20%20%20%20%20%20%20%20liveness%0A%20%20%20%20%20%20%20%20%20%20loudness%0A%20%20%20%20%20%20%20%20%20%20mode%0A%20%20%20%20%20%20%20%20%20%20speechiness%0A%20%20%20%20%20%20%20%20%20%20tempo%0A%20%20%20%20%20%20%20%20%20%20timeSignature%0A%20%20%20%20%20%20%20%20%20%20valence%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20artists%20%7B%0A%20%20%20%20%20%20%20%20%20%20name%0A%20%20%20%20%20%20%20%20%20%20relatedArtists%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20name%0A%20%20%20%20%20%20%20%20%20%20%20%20href%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%0A%7D%0A\u003e)):\n\n```graphql\n{\n  lookup {\n    recording(mbid: \"6c128cd9-94da-44fe-b74f-b68079fb1606\") {\n      spotify {\n        title\n        previewURL\n        audioFeatures {\n          acousticness\n          danceability\n          duration\n          energy\n          instrumentalness\n          keyName\n          liveness\n          loudness\n          mode\n          speechiness\n          tempo\n          timeSignature\n          valence\n        }\n        artists {\n          name\n          relatedArtists {\n            name\n            href\n          }\n        }\n      }\n    }\n  }\n}\n```\n\n\u003c!-- START graphql-markdown --\u003e\n\n## Schema Types\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cstrong\u003eTable of Contents\u003c/strong\u003e\u003c/summary\u003e\n\n  * [Objects](#objects)\n    * [Artist](#artist)\n    * [Query](#query)\n    * [Recording](#recording)\n    * [Release](#release)\n    * [SpotifyAlbum](#spotifyalbum)\n    * [SpotifyArtist](#spotifyartist)\n    * [SpotifyAudioFeatures](#spotifyaudiofeatures)\n    * [SpotifyCopyright](#spotifycopyright)\n    * [SpotifyExternalID](#spotifyexternalid)\n    * [SpotifyExternalURL](#spotifyexternalurl)\n    * [SpotifyImage](#spotifyimage)\n    * [SpotifyQuery](#spotifyquery)\n    * [SpotifyRecommendations](#spotifyrecommendations)\n    * [SpotifyTrack](#spotifytrack)\n  * [Enums](#enums)\n    * [SpotifyCopyrightType](#spotifycopyrighttype)\n    * [SpotifyMatchStrategy](#spotifymatchstrategy)\n    * [SpotifyTrackMode](#spotifytrackmode)\n\n\u003c/details\u003e\n\n### Objects\n\n#### Artist\n\n:small_blue_diamond: *This type has been extended.\nSee the [base schema](https://github.com/exogen/graphbrainz/docs/types.md) for a description and additional fields.*\n\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth align=\"left\"\u003eField\u003c/th\u003e\n\u003cth align=\"right\"\u003eArgument\u003c/th\u003e\n\u003cth align=\"left\"\u003eType\u003c/th\u003e\n\u003cth align=\"left\"\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003espotify\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"#spotifyartist\"\u003eSpotifyArtist\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\n\nThe artist’s entry on Spotify.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\n#### Query\n\n:small_blue_diamond: *This type has been extended.\nSee the [base schema](https://github.com/exogen/graphbrainz/docs/types.md) for a description and additional fields.*\n\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth align=\"left\"\u003eField\u003c/th\u003e\n\u003cth align=\"right\"\u003eArgument\u003c/th\u003e\n\u003cth align=\"left\"\u003eType\u003c/th\u003e\n\u003cth align=\"left\"\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003espotify\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"#spotifyquery\"\u003eSpotifyQuery\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\n#### Recording\n\n:small_blue_diamond: *This type has been extended.\nSee the [base schema](https://github.com/exogen/graphbrainz/docs/types.md) for a description and additional fields.*\n\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth align=\"left\"\u003eField\u003c/th\u003e\n\u003cth align=\"right\"\u003eArgument\u003c/th\u003e\n\u003cth align=\"left\"\u003eType\u003c/th\u003e\n\u003cth align=\"left\"\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003espotify\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"#spotifytrack\"\u003eSpotifyTrack\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\n\nThe recording’s entry on Spotify.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" align=\"right\" valign=\"top\"\u003estrategy\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e[\u003ca href=\"#spotifymatchstrategy\"\u003eSpotifyMatchStrategy\u003c/a\u003e!]\u003c/td\u003e\n\u003ctd\u003e\n\nThe strategies to use to match the recording with a Spotify track, in\npreferential order.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\n#### Release\n\n:small_blue_diamond: *This type has been extended.\nSee the [base schema](https://github.com/exogen/graphbrainz/docs/types.md) for a description and additional fields.*\n\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth align=\"left\"\u003eField\u003c/th\u003e\n\u003cth align=\"right\"\u003eArgument\u003c/th\u003e\n\u003cth align=\"left\"\u003eType\u003c/th\u003e\n\u003cth align=\"left\"\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003espotify\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"#spotifyalbum\"\u003eSpotifyAlbum\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\n\nThe release’s entry on Spotify.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" align=\"right\" valign=\"top\"\u003estrategy\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e[\u003ca href=\"#spotifymatchstrategy\"\u003eSpotifyMatchStrategy\u003c/a\u003e!]\u003c/td\u003e\n\u003ctd\u003e\n\nThe strategies to use to match the release with a Spotify album, in\npreferential order.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\n#### SpotifyAlbum\n\nAn album from Spotify.\n\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth align=\"left\"\u003eField\u003c/th\u003e\n\u003cth align=\"right\"\u003eArgument\u003c/th\u003e\n\u003cth align=\"left\"\u003eType\u003c/th\u003e\n\u003cth align=\"left\"\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003ealbumID\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"https://github.com/exogen/graphbrainz/docs/types.md#id\"\u003eID\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nThe [Spotify ID](https://developer.spotify.com/documentation/web-api/#spotify-uris-and-ids)\nfor the album.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003euri\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"https://github.com/exogen/graphbrainz/docs/types.md#string\"\u003eString\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nThe [Spotify URI](https://developer.spotify.com/documentation/web-api/#spotify-uris-and-ids)\nfor the album.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003ehref\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"https://github.com/exogen/graphbrainz/docs/types.md#urlstring\"\u003eURLString\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nA link to the Web API endpoint providing full details of the album.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003etitle\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"https://github.com/exogen/graphbrainz/docs/types.md#string\"\u003eString\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\n\nThe name of the album. In case of an album takedown, the value may be empty.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003ealbumType\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"https://github.com/exogen/graphbrainz/docs/types.md#releasegrouptype\"\u003eReleaseGroupType\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nThe type of the album, e.g. “Album”, “Single”, “Compilation”.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003eartists\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e[\u003ca href=\"#spotifyartist\"\u003eSpotifyArtist\u003c/a\u003e!]!\u003c/td\u003e\n\u003ctd\u003e\n\nThe artists of the album.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003eavailableMarkets\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e[\u003ca href=\"https://github.com/exogen/graphbrainz/docs/types.md#string\"\u003eString\u003c/a\u003e!]!\u003c/td\u003e\n\u003ctd\u003e\n\nThe markets in which the album is available: [ISO 3166-1 alpha-2](http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)\ncountry codes.\n\nNote that an album is considered available in a market when at least 1 of its tracks is available in that market.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003ecopyrights\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e[\u003ca href=\"#spotifycopyright\"\u003eSpotifyCopyright\u003c/a\u003e!]!\u003c/td\u003e\n\u003ctd\u003e\n\nThe copyright statements of the album.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003eexternalIDs\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e[\u003ca href=\"#spotifyexternalid\"\u003eSpotifyExternalID\u003c/a\u003e!]!\u003c/td\u003e\n\u003ctd\u003e\n\nKnown external IDs for the album.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003eexternalURLs\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e[\u003ca href=\"#spotifyexternalurl\"\u003eSpotifyExternalURL\u003c/a\u003e!]!\u003c/td\u003e\n\u003ctd\u003e\n\nKnown external URLs for this album.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003egenres\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e[\u003ca href=\"https://github.com/exogen/graphbrainz/docs/types.md#string\"\u003eString\u003c/a\u003e!]!\u003c/td\u003e\n\u003ctd\u003e\n\nA list of the genres used to classify the album. For example: “Prog Rock”,\n“Post-Grunge”. (If not yet classified, the array is empty.)\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003eimages\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e[\u003ca href=\"#spotifyimage\"\u003eSpotifyImage\u003c/a\u003e!]!\u003c/td\u003e\n\u003ctd\u003e\n\nThe cover art for the album in various sizes, widest first.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003elabel\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"https://github.com/exogen/graphbrainz/docs/types.md#string\"\u003eString\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\n\nThe label for the album.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003epopularity\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"https://github.com/exogen/graphbrainz/docs/types.md#int\"\u003eInt\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nThe popularity of the album. The value will be between 0 and 100, with 100\nbeing the most popular. The popularity is calculated from the popularity of\nthe album’s individual tracks.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003ereleaseDate\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"https://github.com/exogen/graphbrainz/docs/types.md#date\"\u003eDate\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\n\nThe date the album was first released, for example “1981-12-15”. Depending\non the precision, the month or day might be missing.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\n#### SpotifyArtist\n\nAn artist from Spotify.\n\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth align=\"left\"\u003eField\u003c/th\u003e\n\u003cth align=\"right\"\u003eArgument\u003c/th\u003e\n\u003cth align=\"left\"\u003eType\u003c/th\u003e\n\u003cth align=\"left\"\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003eartistID\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"https://github.com/exogen/graphbrainz/docs/types.md#id\"\u003eID\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nThe [Spotify ID](https://developer.spotify.com/documentation/web-api/#spotify-uris-and-ids)\nfor the artist.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003euri\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"https://github.com/exogen/graphbrainz/docs/types.md#string\"\u003eString\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nThe [Spotify URI](https://developer.spotify.com/documentation/web-api/#spotify-uris-and-ids)\nfor the artist.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003ehref\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"https://github.com/exogen/graphbrainz/docs/types.md#urlstring\"\u003eURLString\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nA link to the Web API endpoint providing full details of the artist.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003ename\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"https://github.com/exogen/graphbrainz/docs/types.md#string\"\u003eString\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nThe name of the artist.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003eexternalURLs\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e[\u003ca href=\"#spotifyexternalurl\"\u003eSpotifyExternalURL\u003c/a\u003e!]!\u003c/td\u003e\n\u003ctd\u003e\n\nKnown external URLs for this artist.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003egenres\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e[\u003ca href=\"https://github.com/exogen/graphbrainz/docs/types.md#string\"\u003eString\u003c/a\u003e!]!\u003c/td\u003e\n\u003ctd\u003e\n\nA list of the genres the artist is associated with. For example:\n“Prog Rock”, “Post-Grunge”. (If not yet classified, the array is empty.)\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003epopularity\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"https://github.com/exogen/graphbrainz/docs/types.md#int\"\u003eInt\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nThe popularity of the artist. The value will be between 0 and 100, with 100\nbeing the most popular. The artist’s popularity is calculated from the\npopularity of all the artist’s tracks.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003eimages\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e[\u003ca href=\"#spotifyimage\"\u003eSpotifyImage\u003c/a\u003e!]!\u003c/td\u003e\n\u003ctd\u003e\n\nImages of the artist in various sizes, widest first.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003etopTracks\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e[\u003ca href=\"#spotifytrack\"\u003eSpotifyTrack\u003c/a\u003e!]!\u003c/td\u003e\n\u003ctd\u003e\n\nSpotify catalog information about an artist’s top tracks by country.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" align=\"right\" valign=\"top\"\u003emarket\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"https://github.com/exogen/graphbrainz/docs/types.md#string\"\u003eString\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nAn [ISO 3166-1 alpha-2](http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)\ncountry code.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003erelatedArtists\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e[\u003ca href=\"#spotifyartist\"\u003eSpotifyArtist\u003c/a\u003e!]!\u003c/td\u003e\n\u003ctd\u003e\n\nSpotify catalog information about artists similar to a given artist.\nSimilarity is based on analysis of the Spotify community’s listening\nhistory.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\n#### SpotifyAudioFeatures\n\nThe audio features of a track from Spotify.\n\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth align=\"left\"\u003eField\u003c/th\u003e\n\u003cth align=\"right\"\u003eArgument\u003c/th\u003e\n\u003cth align=\"left\"\u003eType\u003c/th\u003e\n\u003cth align=\"left\"\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003eacousticness\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"https://github.com/exogen/graphbrainz/docs/types.md#float\"\u003eFloat\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nA confidence measure from 0.0 to 1.0 of whether the track is acoustic. 1.0\nrepresents high confidence the track is acoustic.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003edanceability\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"https://github.com/exogen/graphbrainz/docs/types.md#float\"\u003eFloat\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nDanceability describes how suitable a track is for dancing based on a\ncombination of musical elements including tempo, rhythm stability, beat\nstrength, and overall regularity. A value of 0.0 is least danceable and 1.0\nis most danceable.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003eduration\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"https://github.com/exogen/graphbrainz/docs/types.md#duration\"\u003eDuration\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nThe duration of the track in milliseconds.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003eenergy\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"https://github.com/exogen/graphbrainz/docs/types.md#float\"\u003eFloat\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nEnergy is a measure from 0.0 to 1.0 and represents a perceptual measure of\nintensity and activity. Typically, energetic tracks feel fast, loud, and\nnoisy. For example, death metal has high energy, while a Bach prelude scores\nlow on the scale. Perceptual features contributing to this attribute include\ndynamic range, perceived loudness, timbre, onset rate, and general entropy.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003einstrumentalness\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"https://github.com/exogen/graphbrainz/docs/types.md#float\"\u003eFloat\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nPredicts whether a track contains no vocals. “Ooh” and “aah” sounds are\ntreated as instrumental in this context. Rap or spoken word tracks are\nclearly “vocal”. The closer the instrumentalness value is to 1.0, the\ngreater likelihood the track contains no vocal content. Values above 0.5 are\nintended to represent instrumental tracks, but confidence is higher as the\nvalue approaches 1.0.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003ekey\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"https://github.com/exogen/graphbrainz/docs/types.md#int\"\u003eInt\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nThe key the track is in. Integers map to pitches using standard [Pitch Class\nnotation](https://en.wikipedia.org/wiki/Pitch_class), e.g. 0 = C, 1 = C♯/D♭,\n2 = D, and so on. See the `keyName` field if you’d prefer the note as a\nstring.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003ekeyName\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"https://github.com/exogen/graphbrainz/docs/types.md#string\"\u003eString\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nThe `key` translated from an integer to a name like “C”. (Only one name\nwill be returned, so enharmonic notes like like C♯/D♭ will just return\n“C♯”.)\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003eliveness\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"https://github.com/exogen/graphbrainz/docs/types.md#float\"\u003eFloat\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nDetects the presence of an audience in the recording. Higher liveness values\nrepresent an increased probability that the track was performed live. A\nvalue above 0.8 provides strong likelihood that the track is live.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003eloudness\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"https://github.com/exogen/graphbrainz/docs/types.md#float\"\u003eFloat\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nThe overall loudness of a track in decibels (dB). Loudness values are\naveraged across the entire track and are useful for comparing relative\nloudness of tracks. Loudness is the quality of a sound that is the primary\npsychological correlate of physical strength (amplitude). Values typical\nrange between -60 and 0 db.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003emode\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"#spotifytrackmode\"\u003eSpotifyTrackMode\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nMode indicates the modality (major or minor) of a track, the type of scale\nfrom which its melodic content is derived. Major is represented by 1 and\nminor is 0.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003espeechiness\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"https://github.com/exogen/graphbrainz/docs/types.md#float\"\u003eFloat\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nSpeechiness detects the presence of spoken words in a track. The more\nexclusively speech-like the recording (e.g. talk show, audio book, poetry),\nthe closer to 1.0 the attribute value. Values above 0.66 describe tracks\nthat are probably made entirely of spoken words. Values between 0.33 and\n0.66 describe tracks that may contain both music and speech, either in\nsections or layered, including such cases as rap music. Values below 0.33\nmost likely represent music and other non-speech-like tracks.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003etempo\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"https://github.com/exogen/graphbrainz/docs/types.md#float\"\u003eFloat\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nThe overall estimated tempo of a track in beats per minute (BPM). In musical\nterminology, tempo is the speed or pace of a given piece and derives\ndirectly from the average beat duration.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003etimeSignature\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"https://github.com/exogen/graphbrainz/docs/types.md#float\"\u003eFloat\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nAn estimated overall time signature of a track. The time signature (meter)\nis a notational convention to specify how many beats are in each bar (or\nmeasure).\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003evalence\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"https://github.com/exogen/graphbrainz/docs/types.md#float\"\u003eFloat\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nA measure from 0.0 to 1.0 describing the musical positiveness conveyed by a\ntrack. Tracks with high valence sound more positive (e.g. happy, cheerful,\neuphoric), while tracks with low valence sound more negative (e.g. sad,\ndepressed, angry).\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\n#### SpotifyCopyright\n\nA copyright statement for an album from Spotify.\n\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth align=\"left\"\u003eField\u003c/th\u003e\n\u003cth align=\"right\"\u003eArgument\u003c/th\u003e\n\u003cth align=\"left\"\u003eType\u003c/th\u003e\n\u003cth align=\"left\"\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003etext\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"https://github.com/exogen/graphbrainz/docs/types.md#string\"\u003eString\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nThe copyright text.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003etype\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"#spotifycopyrighttype\"\u003eSpotifyCopyrightType\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nWhether the copyright is for the work itself or the sound recording\n(performance).\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\n#### SpotifyExternalID\n\nA value for identifying an entity with some third party.\n\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth align=\"left\"\u003eField\u003c/th\u003e\n\u003cth align=\"right\"\u003eArgument\u003c/th\u003e\n\u003cth align=\"left\"\u003eType\u003c/th\u003e\n\u003cth align=\"left\"\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003etype\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"https://github.com/exogen/graphbrainz/docs/types.md#string\"\u003eString\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nThe identifier type, for example “isrc”, “ean”, “upc”.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003eid\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"https://github.com/exogen/graphbrainz/docs/types.md#string\"\u003eString\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nThe identifier value.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\n#### SpotifyExternalURL\n\nA URL for linking to an entity with some third party.\n\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth align=\"left\"\u003eField\u003c/th\u003e\n\u003cth align=\"right\"\u003eArgument\u003c/th\u003e\n\u003cth align=\"left\"\u003eType\u003c/th\u003e\n\u003cth align=\"left\"\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003etype\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"https://github.com/exogen/graphbrainz/docs/types.md#string\"\u003eString\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nThe type of the URL, for example “spotify”.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003eurl\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"https://github.com/exogen/graphbrainz/docs/types.md#urlstring\"\u003eURLString\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nAn external, public URL to the object.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\n#### SpotifyImage\n\nA single image from Spotify.\n\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth align=\"left\"\u003eField\u003c/th\u003e\n\u003cth align=\"right\"\u003eArgument\u003c/th\u003e\n\u003cth align=\"left\"\u003eType\u003c/th\u003e\n\u003cth align=\"left\"\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003eurl\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"https://github.com/exogen/graphbrainz/docs/types.md#urlstring\"\u003eURLString\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nThe source URL of the image.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003ewidth\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"https://github.com/exogen/graphbrainz/docs/types.md#int\"\u003eInt\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\n\nThe image width in pixels, if known.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003eheight\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"https://github.com/exogen/graphbrainz/docs/types.md#int\"\u003eInt\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\n\nThe image height in pixels, if known.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\n#### SpotifyQuery\n\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth align=\"left\"\u003eField\u003c/th\u003e\n\u003cth align=\"right\"\u003eArgument\u003c/th\u003e\n\u003cth align=\"left\"\u003eType\u003c/th\u003e\n\u003cth align=\"left\"\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003erecommendations\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"#spotifyrecommendations\"\u003eSpotifyRecommendations\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nTrack recommendations based on seed entities and various parameters.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" align=\"right\" valign=\"top\"\u003eseedArtists\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e[\u003ca href=\"https://github.com/exogen/graphbrainz/docs/types.md#id\"\u003eID\u003c/a\u003e!]\u003c/td\u003e\n\u003ctd\u003e\n\nA list of [Spotify IDs](https://developer.spotify.com/documentation/web-api/#spotify-uris-and-ids)\nfor seed artists. Up to 5 seed values may be provided in any combination\nof `seedArtists`, `seedTracks`, and `seedGenres`.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" align=\"right\" valign=\"top\"\u003eseedGenres\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e[\u003ca href=\"https://github.com/exogen/graphbrainz/docs/types.md#id\"\u003eID\u003c/a\u003e!]\u003c/td\u003e\n\u003ctd\u003e\n\nA 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).\nUp to 5 seed values may be provided in any combination of `seedArtists`,\n`seedTracks`, and `seedGenres`.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" align=\"right\" valign=\"top\"\u003eseedTracks\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e[\u003ca href=\"https://github.com/exogen/graphbrainz/docs/types.md#id\"\u003eID\u003c/a\u003e!]\u003c/td\u003e\n\u003ctd\u003e\n\nA list of [Spotify IDs](https://developer.spotify.com/documentation/web-api/#spotify-uris-and-ids)\nfor seed tracks. Up to 5 seed values may be provided in any combination\nof `seedArtists`, `seedTracks`, and `seedGenres`.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" align=\"right\" valign=\"top\"\u003elimit\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"https://github.com/exogen/graphbrainz/docs/types.md#int\"\u003eInt\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\n\nThe target size of the list of recommended tracks. For seeds with\nunusually small pools or when highly restrictive filtering is applied, it\nmay be impossible to generate the requested number of recommended tracks.\nDebugging information for such cases is available in the response.\n\nDefault: 20. Minimum: 1. Maximum: 100.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\n#### SpotifyRecommendations\n\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth align=\"left\"\u003eField\u003c/th\u003e\n\u003cth align=\"right\"\u003eArgument\u003c/th\u003e\n\u003cth align=\"left\"\u003eType\u003c/th\u003e\n\u003cth align=\"left\"\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003etracks\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e[\u003ca href=\"#spotifytrack\"\u003eSpotifyTrack\u003c/a\u003e!]!\u003c/td\u003e\n\u003ctd\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\n#### SpotifyTrack\n\nA track from Spotify.\n\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth align=\"left\"\u003eField\u003c/th\u003e\n\u003cth align=\"right\"\u003eArgument\u003c/th\u003e\n\u003cth align=\"left\"\u003eType\u003c/th\u003e\n\u003cth align=\"left\"\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003etrackID\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"https://github.com/exogen/graphbrainz/docs/types.md#id\"\u003eID\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nThe [Spotify ID](https://developer.spotify.com/documentation/web-api/#spotify-uris-and-ids)\nfor the track.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003euri\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"https://github.com/exogen/graphbrainz/docs/types.md#string\"\u003eString\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nThe [Spotify URI](https://developer.spotify.com/documentation/web-api/#spotify-uris-and-ids)\nfor the track.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003ehref\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"https://github.com/exogen/graphbrainz/docs/types.md#urlstring\"\u003eURLString\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nA link to the Web API endpoint providing full details of the track.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003etitle\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"https://github.com/exogen/graphbrainz/docs/types.md#string\"\u003eString\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nThe name of the track.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003eaudioFeatures\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"#spotifyaudiofeatures\"\u003eSpotifyAudioFeatures\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\n\nThe audio features of the track.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003ealbum\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"#spotifyalbum\"\u003eSpotifyAlbum\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\n\nThe album on which the track appears.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003eartists\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e[\u003ca href=\"#spotifyartist\"\u003eSpotifyArtist\u003c/a\u003e!]!\u003c/td\u003e\n\u003ctd\u003e\n\nThe artists who performed the track.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003eavailableMarkets\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e[\u003ca href=\"https://github.com/exogen/graphbrainz/docs/types.md#string\"\u003eString\u003c/a\u003e!]!\u003c/td\u003e\n\u003ctd\u003e\n\nA list of the countries in which the track can be played, identified by\ntheir [ISO 3166-1 alpha-2](http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)\ncode.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003ediscNumber\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"https://github.com/exogen/graphbrainz/docs/types.md#int\"\u003eInt\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nThe disc number (usually `1` unless the album consists of more than one\ndisc).\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003eduration\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"https://github.com/exogen/graphbrainz/docs/types.md#duration\"\u003eDuration\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nThe track length in milliseconds.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003eexplicit\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"https://github.com/exogen/graphbrainz/docs/types.md#boolean\"\u003eBoolean\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\n\nWhether or not the track has explicit lyrics, if known.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003eexternalIDs\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e[\u003ca href=\"#spotifyexternalid\"\u003eSpotifyExternalID\u003c/a\u003e!]!\u003c/td\u003e\n\u003ctd\u003e\n\nKnown external IDs for the track.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003eexternalURLs\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e[\u003ca href=\"#spotifyexternalurl\"\u003eSpotifyExternalURL\u003c/a\u003e!]!\u003c/td\u003e\n\u003ctd\u003e\n\nKnown external URLs for the track.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003epopularity\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"https://github.com/exogen/graphbrainz/docs/types.md#int\"\u003eInt\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nThe popularity of the track. The value will be between 0 and 100, with 100\nbeing the most popular.\n\nThe popularity is calculated by algorithm and is based, in the most part, on\nthe total number of plays the track has had and how recent those plays are.\nGenerally speaking, songs that are being played a lot now will have a higher\npopularity than songs that were played a lot in the past.\n\nDuplicate tracks (e.g. the same track from a single and an album) are rated\nindependently.\n\nArtist and album popularity is derived mathematically from track popularity.\n\nNote that the popularity value may lag actual popularity by a few days: the\nvalue is not updated in real time.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003epreviewURL\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"https://github.com/exogen/graphbrainz/docs/types.md#urlstring\"\u003eURLString\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\n\nA link to a 30 second preview (MP3 format) of the track, if available.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003etrackNumber\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"https://github.com/exogen/graphbrainz/docs/types.md#int\"\u003eInt\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nThe number of the track. If an album has several discs, the track number is\nthe number on the specified disc.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003emusicBrainz\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"#recording\"\u003eRecording\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\n\nA MusicBrainz recording that corresponds to the track.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" align=\"right\" valign=\"top\"\u003estrategy\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e[\u003ca href=\"#spotifymatchstrategy\"\u003eSpotifyMatchStrategy\u003c/a\u003e!]\u003c/td\u003e\n\u003ctd\u003e\n\nThe strategies to use to match the track with a MusicBrainz recording, in\npreferential order.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\n### Enums\n\n#### SpotifyCopyrightType\n\nThe type of copyright.\n\n\u003ctable\u003e\n\u003cthead\u003e\n\u003cth align=\"left\"\u003eValue\u003c/th\u003e\n\u003cth align=\"left\"\u003eDescription\u003c/th\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd valign=\"top\"\u003e\u003cstrong\u003eCOPYRIGHT\u003c/strong\u003e\u003c/td\u003e\n\u003ctd\u003e\n\nThe copyright.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd valign=\"top\"\u003e\u003cstrong\u003ePERFORMANCE\u003c/strong\u003e\u003c/td\u003e\n\u003ctd\u003e\n\nThe sound recording (performance) copyright.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\n#### SpotifyMatchStrategy\n\nStrategies for matching MusicBrainz entities to Spotify entities.\n\n\u003ctable\u003e\n\u003cthead\u003e\n\u003cth align=\"left\"\u003eValue\u003c/th\u003e\n\u003cth align=\"left\"\u003eDescription\u003c/th\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd valign=\"top\"\u003e\u003cstrong\u003eURL\u003c/strong\u003e\u003c/td\u003e\n\u003ctd\u003e\n\nThe entity will be matched by finding an explicit URL relationship that\nlinks to Spotify.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd valign=\"top\"\u003e\u003cstrong\u003eEXTERNALID\u003c/strong\u003e\u003c/td\u003e\n\u003ctd\u003e\n\nThe entity will be matched by searching for Spotify entities by some\nexternal ID that is known to both MusicBrainz and Spotify, like an ISRC\nor UPC barcode. Since this can result in multiple Spotify matches, the most\npopular will be preferred (if possible), or the first.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\n#### SpotifyTrackMode\n\nThe potential values for modality (major or minor) of a track.\n\n\u003ctable\u003e\n\u003cthead\u003e\n\u003cth align=\"left\"\u003eValue\u003c/th\u003e\n\u003cth align=\"left\"\u003eDescription\u003c/th\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd valign=\"top\"\u003e\u003cstrong\u003eMAJOR\u003c/strong\u003e\u003c/td\u003e\n\u003ctd\u003e\n\nThe major scale.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd valign=\"top\"\u003e\u003cstrong\u003eMINOR\u003c/strong\u003e\u003c/td\u003e\n\u003ctd\u003e\n\nThe minor scale.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003c!-- END graphql-markdown --\u003e\n\n[demo]: http://graphbrainz-extension-spotify.herokuapp.com/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexogen%2Fgraphbrainz-extension-spotify","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fexogen%2Fgraphbrainz-extension-spotify","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexogen%2Fgraphbrainz-extension-spotify/lists"}