Notice: EqBeats requires a browser with HTML5 audio support, which your browser does not seem to have. You will not be able to play tracks with your current setup. We recommend you upgrade to a modern browser, like Firefox or Chrome.

API

Quickstart

We have a read-only JSON/JSONP api to access user and track data.
Just add /json to most urls to get a JSON representation of that page.
JSONP is a convenience for Javascript users. Adding a jsonp parameter will insert the JSON data as an argument to a function named by the jsonp parameter. It can then be run by loading it in a <script> tag. More info on JSONP.
Compare /tracks/latest/json and /tracks/latest/json?jsonp=myCallback.
The API is also CORS-enabled: it can be accessed with a plain old XMLHttpRequest from any domain in most modern browsers.

There are no hard-limits to API usage, but if you intend to poll it continuously, please consider setting a reasonable delay like 3 seconds.

Do tell us about any cool projects you build with our API! We'd love to hear about them.

Resources

/user/{id}/jsonOne user object.
/users/search/json?q={query}[Array] User objects matching the query.
/user/{id}/favorites/json[Array] Favorite tracks.
/artists/json[Array] All artists (as shortened user objects, without their tracks).
/track/{id}/jsonOne track object.
/tracks/search/json?q={query}[Array] Track objects matching the query.
/tracks/search/exact/json?artist={artist}&track={track}[Array] Track object matching the artist and track name exactly (case sensitive).
/tracks/latest/json[Array] The latest 50 tracks.
/tracks/featured/json[Array] The latest 50 featured tracks.
/tracks/random/json[Array] 50 random tracks.
/tracks/all/json[Array] Every published track.
/tracks/all/json?per_page={n}&page={k}[Array] Paginates through every published track.
/playlist/{id}/jsonOne playlist object.

User object

idUnique numerical id for this user.
nameUser name.
avatarURL of the user's avatar.
descriptionUser's description of themselves, raw. This member will not exist if there is no description.
html_descriptionSame as above, formatted to HTML.
tracksAn array of Track objects for all tracks published by the user.
playlistsArray of Playlist objects (stripped of their tracks).
num_favoritesNumber of favorite tracks.
num_followersNumber of followers.
linkPermalink to the user's page.
{
    "id": 123,
    "name": "Foo Bar",
    "avatar": "http://gravatar.com/000011112222333344445555deadbeef",
    "description": "Just some dude making [b]music[/b].",
    "html_description": "Just some dude making <b>music</b>.",
    "tracks": [{"id": 456, ...}, ...],
    "playlists": [{"id": 78, ...}, ...],
    "num_favorites": 9,
    "num_followers": 2,
    "link": "http://eqbeats.org/user/123"
}

Track object

idUnique numerical id for the track.
titleTrack title.
descriptionTrack notes, raw. This member will not exist if there are no notes.
html_descriptionSame as above, formatted to HTML.
artistA user object for the artist (excluding the track array).
linkPermalink to the track's page.
downloadPermalinks to the downloadable audio files. It will also contain an art value pointing to the image if the track has cover art.
streamPermalinks to the streamable audio files. While these are identical to the ones in download, we ask that you use them when streaming, for the sake of statistics integrity.
statsTrack statistics.
timestampUnix timestamp indicating when the track has been published, or when it has been uploaded if it has not been published yet.
{
    "id": 456,
    "title": "Baz Quux",
    "description": "A track about bazing while you quux.",
    "html_description": "A track about bazing while you quux.",
    "artist": {"id": 123, "name": "Foo Bar",...},
    "link": "http://eqbeats.org/track/456",
    "download": {"art":"http://eqbeats.org/track/456/art",
                 "opus":"http://eqbeats.org/track/456/opus",
                 "vorbis":"http://eqbeats.org/track/456/vorbis",
                 "aac":"http://eqbeats.org/track/456/aac",
                 "mp3":"http://eqbeats.org/track/456/mp3",
                 "original":"http://eqbeats.org/track/456/original"
                 },
    "stream": {"opus":"http://eqbeats.org/track/456/opus?stream=1",
                 ...
                 },
    "stats": {
        "totals": {
            "trackView": 13,
            "trackPlay": 10,
            "trackDownload": 4
        },
        "unique_totals": {
            "trackView": 10,
            "trackPlay": 9,
            "trackDownload": 4
        }
    }
    "timestamp": 123456789.01234
}

Playlist object

idUnique numerical id for the playlist.
namePlaylist name.
num_tracksNumber of tracks in the playlist.
descriptionDescription, raw. This member will not exist if there is no description.
html_descriptionSame as above, formatted to HTML.
authorA user object for the author.
tracksAn array of Track objects.
linkPermalink to the playlist's page.
{
    "id": 78,
    "title": "Train",
    "num_tracks": 5,
    "description": "Songs to listen to on the train.",
    "html_description": "Songs to listen to on the train.",
    "author": {"id": 123, "name": "Foo Bar",...},
    "tracks": [{"id": 456, ...}, ...],
    "link": "http://eqbeats.org/playlist/78"
}