Returns pricing data for all available Spotify countries
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

spotify-crawler Build Status Dependency Status Gitter

Returns pricing data for all available Spotify countries

Crawls the list of countries where Spotify is available. Fetches the listed premium price for each country and finally converts the price into USD.

Thanks to and Open Exchange Rates.


$ npm install spotify-crawler



  • fetch - returns array with all the countries.
  • getCatalogSize - takes the two-letter country code, returns number of total tracks.
var spotify = require('spotify-crawler');


function saveCountries(countries){
  console.log('Inserting {0} countries in DB'.format(countries.length));

  var save = Country.create(countries);

The country object consists of:

  • link - Spotify href
  • title - the country title, localized version(Österreich)
  • originalRel - the rel directly from Spotify
  • rel - stripped the originalRel of the language(be-fr)
  • currency - the currency code from, but corrected for the countries that doesn't display price in their own currency on the website.
  • originalCurrency - the raw currency code from
  • countryCode - the alpha3Code from
  • internationalName - the international name from
  • region - the region from
  • subRegion - the subregion from
  • demonym - the demonym from
  • originalPrice - the whole text from the HTML element
  • price - strip all text from originalPrice
  • convertedPrice - local price converted into USD with rate from Open Exchange Rates
  • catalogSize - amount of tracks available in the country

Output data example for a single country:

    "link": "/au/",
    "title": "Australia",
    "originalRel": "au",
    "rel": "au",
    "currency": "AUD",
    "originalCurrency": "AUD",
    "countryCode": "AUS",
    "internationalName": "Australia",
    "region": "Oceania",
    "subRegion": "Australia and New Zealand",
    "demonym": "Australian",
    "originalPrice": "$11.99 per month",
    "price": "11.99",
    "convertedPrice": 11.25280616267109,
    "catalogSize": 30695608


  • Multiple methods
    • getCountries
    • getRawPrices
    • getCatalogSize
    • etc.
  • Split up index.js into modules
  • Tests
  • CLI support
  • Supply own app_id for Open Exchange Rates