Beatport API client for Node.js
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
test.js First commit Jun 6, 2011


Beatport API client - resources as methods, also attempts to improve the resulting data to make them more useful.


npm install beatport

Usage / Examples

var Beatport = require('beatport')

// initialize and configure client
var bp = Beatport({ perPage: 10, sortBy: 'releaseDate desc' })

// resources (i.e: featured/releases) as methods (camelCased, i.e: featuredReleases)
// a search for tracks by 'digweed'{ query: 'digweed', facets: { fieldType: [ 'track' ] } }, function(err, results, metadata) {
  results.forEach(function(track) {

// get tracks of genre Tech House and performers John Digweed and Nick Muir
  facets: {
    genreName: 'Tech House'
  , performerName: [ 'John Digweed', 'Nick Muir' ]
, page: 1
}, function(err, results, metadata) {
  results.forEach(function(track) {

// get details of label with id 804
bp.labelsDetail({ id: 804 }, function(err, results, metadata) {
  results.mostPopularReleases.forEach(function(release) {
    console.log(, release.artists.names)

Improving the Beatport data

In order to make the resulting Beatport data more Javascript-friendly, by default the client attempts to improve the data. If you don't want this behavior, just initialize the client with an improve: false option.

This is what it does, so far:

  • Adds a .camelot field containing the Camelot system representation of the track key (ie '8B')
  • Finds remixers in the .artists field and extracts them to their own array .remixers
  • Parses the ids and names of artists and remixers and creates arrays as properties in the Object type of the existing arrays: .artists.names, .artists.ids, .remixers.names, .remixers.ids
  • Converts date strings to Date objects
  • Adds .title field to the tracks, with a proper representation of the track, like this: Artist Name - Track Name (MixName)