SoundCloud’s New API Track Object

As a part of our efforts to improve API use, we’re introducing a new Track object that’s more up to date with our current data model. The following change is also intended to standardize and simplify the response data. A new object will be used for all endpoints returning track-related information, for example:

  • /playlist/:playlist_id/tracks
  • /tracks
  • /tracks/:track_id

New Track Object

The following shows a schema of our new Track model:

{
  "artwork_url": Option[String],
  "available_country_codes": Option[HashSet[String]],
  "bpm": Option[Int],
  "comment_count": Option[Int],
  "commentable": Boolean,
  "created_at": String,
  "description": Option[String],
  "download_url": Option[String],
  "download_count": Option[Int],
  "downloadable": Boolean,
  "duration": Int,
  "favoritings_count": Option[Int],
  "genre": Option[String],
  "id": Long,
  "isrc": Option[String],
  "is_explicit": Option[Boolean],
  "key_signature": Option[String],
  "kind": String,
  "label_name": Option[String],
  "license": String,
  "permalink_url": String,
  "playback_count": Option[Int],
  "purchase_title": Option[String],
  "purchase_url": Option[String],
  "release": Option[String],
  "release_day": Option[Int],
  "release_month": Option[Int],
  "release_year": option[Int],
  "reposts_count": Option[Int],
  "secret_uri": Option[String],
  "sharing": String,
  "stream_url": Option[String],
  "streamable": Boolean,
  "tag_list": String,
  "title": String,
  "uri": Option[String],
  "user": User,
  "user_favorite": Option[Boolean],
  "user_playback_count": Option[Int],
  "waveform_url": String
}

Deprecated Fields

In the next couple weeks, we’re planning on removing the following deprecated fields from the response. These fields are either superfluous, outdated, or not in use by developers:

  • downloads_remaining
  • domain_lockings
  • embeddable_by
  • label
  • label_id
  • last_modified
  • permalink
  • originalcontentsize
  • original_format
  • secret_token
  • state
  • track_type
  • user_id
  • user_uri
  • video_url

If your application is using the Track object and/or deprecated fields, please update your API in a timely manner. If you deem any of the above fields necessary for your use case and want them to be preserved, please let us know by filing a feature request on our issue tracker by 31 March 2021.

For future updates, please follow us on Twitter and our blog.