Last.fm Web Services

track.scrobble

Used to add a track-play to a user's profile. Scrobble a track, or a batch of tracks. Tracks are passed to the service using array notation for each of the below params, up to a maximum of 50 scrobbles per batch [0<=i<=49]. If you are only sending a single scrobble the array notation may be ommited. Note: Extra care should be taken while calculating the signature when using array notation as the parameter names MUST be sorted according to the ASCII table (i.e., artist[10] comes before artist[1]). It is important to not use the corrections returned by the now playing service as input for the scrobble request, unless they have been explicitly approved by the user. Parameter names are case sensitive.

Params

artist[i] (Required) : The artist name.
track[i] (Required) : The track name.
timestamp[i] (Required) : The time the track started playing, in UNIX timestamp format (integer number of seconds since 00:00:00, January 1st 1970 UTC). This must be in the UTC time zone.
album[i] (Optional) : The album name.
context[i] (Optional) : Sub-client version (not public, only enabled for certain API keys)
streamId[i] (Optional) : The stream id for this track received from the radio.getPlaylist service, if scrobbling Last.fm radio
chosenByUser[i] (Optional) : Set to 1 if the user chose this song, or 0 if the song was chosen by someone else (such as a radio station or recommendation service). Assumes 1 if not specified
trackNumber[i] (Optional) : The track number of the track on the album.
mbid[i] (Optional) : The MusicBrainz Track ID.
albumArtist[i] (Optional) : The album artist - if this differs from the track artist.
duration[i] (Optional) : The length of the track in seconds.
api_key (Required) : A Last.fm API key.
api_sig (Required) : A Last.fm method signature. See authentication for more information.
sk (Required) : A session key generated by authenticating a user via the authentication protocol.

Auth

This service requires authentication. Please see our authentication how-to.
This is a write service and must be accessed with an HTTP POST request. All parameters should be sent in the POST body, including the 'method' parameter. See rest requests for more information.

Sample Response

Example for a single scrobble sent:
<?xml version='1.0' encoding='utf-8'?>
<lfm status="ok">
  <scrobbles accepted="1" ignored="0">
    <scrobble>
      <track corrected="0">Test Track</track>
      <artist corrected="0">Test Artist</artist>
      <album corrected="0"></album>
      <albumArtist corrected="0"></albumArtist>
      <timestamp>1287140447</timestamp>
      <ignoredMessage code="0"></ignoredMessage>
    </scrobble>
  </scrobbles>
</lfm>

Example for 2 scrobbles sent:
<?xml version='1.0' encoding='utf-8'?>
<lfm status="ok">
  <scrobbles accepted="2" ignored="0">
    <scrobble>
      <track corrected="0">Test Track 0</track>
      <artist corrected="0">Test Artist 0</artist>
      <album corrected="0"></album>
      <albumArtist corrected="0"></albumArtist>
      <timestamp>1287141093</timestamp>
      <ignoredMessage code="0"></ignoredMessage>
    </scrobble>
    <scrobble>
      <track corrected="0">Test Track 1</track>
      <artist corrected="0">Test Artist 1</artist>
      <album corrected="0"></album>
      <albumArtist corrected="0"></albumArtist>
      <timestamp>1287141093</timestamp>
      <ignoredMessage code="0"></ignoredMessage>
    </scrobble>
  </scrobbles>
</lfm>
Hover over the underlined tags and attributes to get detailed information.

Errors

  • 16 : The service is temporarily unavailable, please try again.
  • 2 : Invalid service - This service does not exist
  • 3 : Invalid Method - No method with that name in this package
  • 4 : Authentication Failed - You do not have permissions to access the service
  • 5 : Invalid format - This service doesn't exist in that format
  • 6 : Invalid parameters - Your request is missing a required parameter
  • 7 : Invalid resource specified
  • 8 : Operation failed - Something else went wrong
  • 9 : Invalid session key - Please re-authenticate
  • 10 : Invalid API key - You must be granted a valid key by last.fm
  • 11 : Service Offline - This service is temporarily offline. Try again later.
  • 13 : Invalid method signature supplied
  • 16 : There was a temporary error processing your request. Please try again
  • 26 : Suspended API key - Access for your account has been suspended, please contact Last.fm
  • 29 : Rate limit exceeded - Your IP has made too many requests in a short period