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.