curl --request GET \
--url https://api.scraperize.com/v1/soundcloud/track \
--header 'x-api-key: <api-key>'import requests
url = "https://api.scraperize.com/v1/soundcloud/track"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.scraperize.com/v1/soundcloud/track', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.scraperize.com/v1/soundcloud/track",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.scraperize.com/v1/soundcloud/track"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.scraperize.com/v1/soundcloud/track")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.scraperize.com/v1/soundcloud/track")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": {
"id": "341471474",
"urn": "soundcloud:tracks:341471474",
"title": "A Moment Apart",
"url": "https://soundcloud.com/odesza/a-moment-apart",
"description": "The new album 'A Moment Apart’ out now: http://odesza.co/a-moment-apart\n \n2017 A Moment Apart Tour \nSun, Sep 3 - Seattle, WA - Bumbershoot\nThu, Sep 14 - Auckland, NZ - Great Hall@\nFri, Sep 15 - Melbourne, AU - Forum@\nSat, Sep 16 - Sydney, AU - Enmore Theatre@\nSun, Sep 17 - Sydney, AU - Enmore Theatre@\nFri, Sep 29 - London, UK - O2 Forum Kentish Town#\nSat, Sep 30 - Paris, FR - Élysée Montmartre#\nTue, Oct 3 - Brussels, BE - AB Main Hall#\nWed, Oct 4 - Amsterdam, NL - Paradiso#\nThu, Oct 5 - Amsterdam, NL - Paradiso#\nSat, Oct 7 - Berlin, DE - Astra Kulturhaus#\nThu, Oct 19 - San Diego, CA - Valley View Casino Center*+\nFri, Oct 20 - Los Angeles, CA - STAPLES Center*\nSat, Oct 21 - Las Vegas, NV - Downtown Las Vegas Events Center\nSun, Oct 22 - Phoenix, AZ - Lost Lake Festival\nTue, Oct, 24 - Santa Barbara, CA - Santa Barbara Bowl*+\nThu, Oct 26 - Berkeley, CA - Greek Theatre*+\nFri, Oct 27 - Berkeley, CA - Greek Theatre*+\nSat, Oct 28 - Berkeley, CA - Greek Theatre*+\nTue, Oct 31 - Sacramento, CA - Papa Murphy's Park at Cal Expo*^\nThu, Nov 2 - Portland, OR - Veterans Memorial Coliseum*^\nFri, Nov 3 - Vancouver, BC - PNE Forum*^\nSat, Nov 4 - Vancouver, BC - PNE Forum*^\nWed, Nov 8 - Minneapolis, MN - Myth*^\nThu, Nov 9 - Minneapolis, MN - Myth*^\nFri, Nov 10 - Madison, WI - Alliant Energy Center*^\nSat, Nov 11 - Chicago, IL - UIC Pavilion*%\nMon, Nov 13 - Grand Rapids, MI - 20 Monroe Live*%\nTue, Nov 14 - Detroit, MI - Masonic Temple*%\nFri, Nov 17 - Montreal, QC - Metropolis*%\nSat, Nov 18 - Montreal, QC - Metropolis*%\nMon, Nov 20 - Philadelphia, PA - Electric Factory*%\nTue, Nov 21 - Philadelphia, PA - Electric Factory*%\nWed, Nov 22 - Philadelphia, PA - Electric Factory*%\nFri, Nov 24 - Washington, DC - The Anthem*%\nMon, Dec 11 - Boston, MA - House Of Blues Boston*\nFri, Dec 15 - Brooklyn, NY - Barclays Center*\n \n*with SOFI TUKKER \n#with Hayden James and MUTO\n@with The Kite String Tangle and Running Touch\n%with Louis Futon \n+with Chet Porter \n^with Kasbo \n \nFollow ODESZA \nWebsite: http://odesza.co/official\nFacebook: http://odesza.co/facebook\nTwitter: http://odesza.co/twitter\nInstagram: http://odesza.co/instagram\nSpotify: http://odesza.co/spotify\nApple Music: http://odesza.co/apple-music\nYoutube: http://odesza.co/youtube\nSoundcloud: http://odesza.co/soundcloud\nSnapchat: http://odesza.co/snapchat",
"genre": "Electronic",
"tags": [],
"artworkUrl": "https://i1.sndcdn.com/artworks-nU2mhziz3vmX-0-t1080x1080.png",
"waveformUrl": "https://wave.sndcdn.com/rgSJlLvcKjWR_m.json",
"durationMs": 234292,
"isPreviewOnly": false,
"plays": 4640225,
"likes": 75321,
"reposts": 4151,
"comments": 1733,
"downloads": 0,
"createdAt": "2017-09-08T13:54:04Z",
"releaseDate": "2017-09-08T00:00:00Z",
"displayDate": "2017-09-08T00:00:00Z",
"lastModified": "2024-09-28T03:13:42Z",
"isDownloadable": false,
"isCommentable": true,
"isStreamable": true,
"isPublic": true,
"license": "all-rights-reserved",
"labelName": "Counter Records",
"purchase": {
"title": "Buy Now",
"url": "http://odesza.co/a-moment-apart"
},
"policy": "ALLOW",
"monetizationModel": "NOT_APPLICABLE",
"embeddableBy": "all",
"publisher": {
"artist": "ODESZA",
"albumTitle": "A Moment Apart",
"releaseTitle": "A Moment Apart",
"isrc": "GBCFB1700210",
"upc": "5054429119183",
"isExplicit": false,
"pLine": "℗ 2017 Foreign Family Collective under exclusive license to Counter Records",
"cLine": "© 2017 Foreign Family Collective under exclusive license to Counter Records",
"containsMusic": true
},
"transcodings": [
{
"url": "https://api-v2.soundcloud.com/media/soundcloud:tracks:341471474/8efa04af-fc45-47c5-8aee-6dc442c240ee/stream/cbc-encrypted-hls",
"preset": "aac_160k",
"protocol": "cbc-encrypted-hls",
"mimeType": "audio/mp4; codecs=\"mp4a.40.2\"",
"quality": "sq",
"isSnippet": false,
"durationMs": 234267,
"isLegacy": false
},
{
"url": "https://api-v2.soundcloud.com/media/soundcloud:tracks:341471474/8efa04af-fc45-47c5-8aee-6dc442c240ee/stream/ctr-encrypted-hls",
"preset": "aac_160k",
"protocol": "ctr-encrypted-hls",
"mimeType": "audio/mp4; codecs=\"mp4a.40.2\"",
"quality": "sq",
"isSnippet": false,
"durationMs": 234267,
"isLegacy": false
},
{
"url": "https://api-v2.soundcloud.com/media/soundcloud:tracks:341471474/2798e696-9f2c-4ad6-9d93-132b834b2c92/stream/cbc-encrypted-hls",
"preset": "aac_96k",
"protocol": "cbc-encrypted-hls",
"mimeType": "audio/mp4; codecs=\"mp4a.40.2\"",
"quality": "lq",
"isSnippet": false,
"durationMs": 234267,
"isLegacy": false
}
],
"artist": {
"id": "18604897",
"handle": "odesza",
"url": "https://soundcloud.com/odesza",
"name": "ODESZA",
"avatarUrl": "https://i1.sndcdn.com/avatars-9N0KOFupZRs2l2QQ-seYNnA-large.jpg",
"isVerified": true,
"followers": 783898
},
"fetchedAt": "2026-11-11T09:06:14.421Z"
},
"meta": {
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f",
"creditsCharged": 1,
"creditsRemaining": 4999,
"cached": false
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "API key required — pass it in the `x-api-key` header.",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "INSUFFICIENT_CREDITS",
"message": "This request costs 1 credit, but your balance is 0. Top up to continue.",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "NOT_FOUND",
"message": "The requested content was not found (it may not exist, be deleted, or be private).",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "VALIDATION_ERROR",
"message": "Request validation failed",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f",
"details": [
{
"path": "url",
"message": "url is required"
}
]
}
}{
"error": {
"code": "RATE_LIMITED",
"message": "Rate limit exceeded — max 100 requests per 60s. Retry in ~30s.",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "UPSTREAM_BLOCKED",
"message": "The source is temporarily unavailable. Please try again shortly.",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}Track
Returns a SoundCloud track by link: title, description, genre and tags, full-size artwork and waveform, full-length duration, plays, likes, reposts, comments and downloads, upload, release and last-changed dates, license, label, buy link, whether only a 30-second preview plays, its stream variants (transcodings: media URL, preset, protocol, MIME type, quality, length), the release’s publisher data (artist, album, ISRC, UPC, ℗ and © lines, explicit flag) and the artist (name, handle, avatar, verified badge, followers). Only publicly available data is returned.
curl --request GET \
--url https://api.scraperize.com/v1/soundcloud/track \
--header 'x-api-key: <api-key>'import requests
url = "https://api.scraperize.com/v1/soundcloud/track"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.scraperize.com/v1/soundcloud/track', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.scraperize.com/v1/soundcloud/track",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.scraperize.com/v1/soundcloud/track"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.scraperize.com/v1/soundcloud/track")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.scraperize.com/v1/soundcloud/track")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": {
"id": "341471474",
"urn": "soundcloud:tracks:341471474",
"title": "A Moment Apart",
"url": "https://soundcloud.com/odesza/a-moment-apart",
"description": "The new album 'A Moment Apart’ out now: http://odesza.co/a-moment-apart\n \n2017 A Moment Apart Tour \nSun, Sep 3 - Seattle, WA - Bumbershoot\nThu, Sep 14 - Auckland, NZ - Great Hall@\nFri, Sep 15 - Melbourne, AU - Forum@\nSat, Sep 16 - Sydney, AU - Enmore Theatre@\nSun, Sep 17 - Sydney, AU - Enmore Theatre@\nFri, Sep 29 - London, UK - O2 Forum Kentish Town#\nSat, Sep 30 - Paris, FR - Élysée Montmartre#\nTue, Oct 3 - Brussels, BE - AB Main Hall#\nWed, Oct 4 - Amsterdam, NL - Paradiso#\nThu, Oct 5 - Amsterdam, NL - Paradiso#\nSat, Oct 7 - Berlin, DE - Astra Kulturhaus#\nThu, Oct 19 - San Diego, CA - Valley View Casino Center*+\nFri, Oct 20 - Los Angeles, CA - STAPLES Center*\nSat, Oct 21 - Las Vegas, NV - Downtown Las Vegas Events Center\nSun, Oct 22 - Phoenix, AZ - Lost Lake Festival\nTue, Oct, 24 - Santa Barbara, CA - Santa Barbara Bowl*+\nThu, Oct 26 - Berkeley, CA - Greek Theatre*+\nFri, Oct 27 - Berkeley, CA - Greek Theatre*+\nSat, Oct 28 - Berkeley, CA - Greek Theatre*+\nTue, Oct 31 - Sacramento, CA - Papa Murphy's Park at Cal Expo*^\nThu, Nov 2 - Portland, OR - Veterans Memorial Coliseum*^\nFri, Nov 3 - Vancouver, BC - PNE Forum*^\nSat, Nov 4 - Vancouver, BC - PNE Forum*^\nWed, Nov 8 - Minneapolis, MN - Myth*^\nThu, Nov 9 - Minneapolis, MN - Myth*^\nFri, Nov 10 - Madison, WI - Alliant Energy Center*^\nSat, Nov 11 - Chicago, IL - UIC Pavilion*%\nMon, Nov 13 - Grand Rapids, MI - 20 Monroe Live*%\nTue, Nov 14 - Detroit, MI - Masonic Temple*%\nFri, Nov 17 - Montreal, QC - Metropolis*%\nSat, Nov 18 - Montreal, QC - Metropolis*%\nMon, Nov 20 - Philadelphia, PA - Electric Factory*%\nTue, Nov 21 - Philadelphia, PA - Electric Factory*%\nWed, Nov 22 - Philadelphia, PA - Electric Factory*%\nFri, Nov 24 - Washington, DC - The Anthem*%\nMon, Dec 11 - Boston, MA - House Of Blues Boston*\nFri, Dec 15 - Brooklyn, NY - Barclays Center*\n \n*with SOFI TUKKER \n#with Hayden James and MUTO\n@with The Kite String Tangle and Running Touch\n%with Louis Futon \n+with Chet Porter \n^with Kasbo \n \nFollow ODESZA \nWebsite: http://odesza.co/official\nFacebook: http://odesza.co/facebook\nTwitter: http://odesza.co/twitter\nInstagram: http://odesza.co/instagram\nSpotify: http://odesza.co/spotify\nApple Music: http://odesza.co/apple-music\nYoutube: http://odesza.co/youtube\nSoundcloud: http://odesza.co/soundcloud\nSnapchat: http://odesza.co/snapchat",
"genre": "Electronic",
"tags": [],
"artworkUrl": "https://i1.sndcdn.com/artworks-nU2mhziz3vmX-0-t1080x1080.png",
"waveformUrl": "https://wave.sndcdn.com/rgSJlLvcKjWR_m.json",
"durationMs": 234292,
"isPreviewOnly": false,
"plays": 4640225,
"likes": 75321,
"reposts": 4151,
"comments": 1733,
"downloads": 0,
"createdAt": "2017-09-08T13:54:04Z",
"releaseDate": "2017-09-08T00:00:00Z",
"displayDate": "2017-09-08T00:00:00Z",
"lastModified": "2024-09-28T03:13:42Z",
"isDownloadable": false,
"isCommentable": true,
"isStreamable": true,
"isPublic": true,
"license": "all-rights-reserved",
"labelName": "Counter Records",
"purchase": {
"title": "Buy Now",
"url": "http://odesza.co/a-moment-apart"
},
"policy": "ALLOW",
"monetizationModel": "NOT_APPLICABLE",
"embeddableBy": "all",
"publisher": {
"artist": "ODESZA",
"albumTitle": "A Moment Apart",
"releaseTitle": "A Moment Apart",
"isrc": "GBCFB1700210",
"upc": "5054429119183",
"isExplicit": false,
"pLine": "℗ 2017 Foreign Family Collective under exclusive license to Counter Records",
"cLine": "© 2017 Foreign Family Collective under exclusive license to Counter Records",
"containsMusic": true
},
"transcodings": [
{
"url": "https://api-v2.soundcloud.com/media/soundcloud:tracks:341471474/8efa04af-fc45-47c5-8aee-6dc442c240ee/stream/cbc-encrypted-hls",
"preset": "aac_160k",
"protocol": "cbc-encrypted-hls",
"mimeType": "audio/mp4; codecs=\"mp4a.40.2\"",
"quality": "sq",
"isSnippet": false,
"durationMs": 234267,
"isLegacy": false
},
{
"url": "https://api-v2.soundcloud.com/media/soundcloud:tracks:341471474/8efa04af-fc45-47c5-8aee-6dc442c240ee/stream/ctr-encrypted-hls",
"preset": "aac_160k",
"protocol": "ctr-encrypted-hls",
"mimeType": "audio/mp4; codecs=\"mp4a.40.2\"",
"quality": "sq",
"isSnippet": false,
"durationMs": 234267,
"isLegacy": false
},
{
"url": "https://api-v2.soundcloud.com/media/soundcloud:tracks:341471474/2798e696-9f2c-4ad6-9d93-132b834b2c92/stream/cbc-encrypted-hls",
"preset": "aac_96k",
"protocol": "cbc-encrypted-hls",
"mimeType": "audio/mp4; codecs=\"mp4a.40.2\"",
"quality": "lq",
"isSnippet": false,
"durationMs": 234267,
"isLegacy": false
}
],
"artist": {
"id": "18604897",
"handle": "odesza",
"url": "https://soundcloud.com/odesza",
"name": "ODESZA",
"avatarUrl": "https://i1.sndcdn.com/avatars-9N0KOFupZRs2l2QQ-seYNnA-large.jpg",
"isVerified": true,
"followers": 783898
},
"fetchedAt": "2026-11-11T09:06:14.421Z"
},
"meta": {
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f",
"creditsCharged": 1,
"creditsRemaining": 4999,
"cached": false
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "API key required — pass it in the `x-api-key` header.",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "INSUFFICIENT_CREDITS",
"message": "This request costs 1 credit, but your balance is 0. Top up to continue.",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "NOT_FOUND",
"message": "The requested content was not found (it may not exist, be deleted, or be private).",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "VALIDATION_ERROR",
"message": "Request validation failed",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f",
"details": [
{
"path": "url",
"message": "url is required"
}
]
}
}{
"error": {
"code": "RATE_LIMITED",
"message": "Rate limit exceeded — max 100 requests per 60s. Retry in ~30s.",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "UPSTREAM_BLOCKED",
"message": "The source is temporarily unavailable. Please try again shortly.",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}cache_max_age) are free.Copy for AI assistant
Copy for AI assistant
I want to make an API call to /v1/soundcloud/track. Here are the details:
Endpoint: GET https://api.scraperize.com/v1/soundcloud/track
Description: Returns a SoundCloud track by link: title, description, genre and tags, full-size artwork and waveform, full-length duration, plays, likes, reposts, comments and downloads, upload, release and last-changed dates, license, label, buy link, whether only a 30-second preview plays, its stream variants (transcodings: media URL, preset, protocol, MIME type, quality, length), the release's publisher data (artist, album, ISRC, UPC, ℗ and © lines, explicit flag) and the artist (name, handle, avatar, verified badge, followers). Only publicly available data is returned.
Required Headers:
- x-api-key: Your API key
Parameters:
- url (string) [required]: The track's link (`https://soundcloud.com/<artist>/<track>`).
- cache_max_age (select): Optional. Return a cached result if one this age or newer exists — served for **0 credits** with `meta.cached=true` and `meta.cachedAt`. Otherwise a fresh scrape runs (**1 credit**) and refreshes the cache. Omit to always scrape fresh.
Example Response:
{
"data": {
"id": "341471474",
"urn": "soundcloud:tracks:341471474",
"title": "A Moment Apart",
"url": "https://soundcloud.com/odesza/a-moment-apart",
"description": "The new album 'A Moment Apart’ out now: http://odesza.co/a-moment-apart\n \n2017 A Moment Apart Tour \nSun, Sep 3 - Seattle, WA - Bumbershoot\nThu, Sep 14 - Aucklan…",
"genre": "Electronic",
"tags": [],
"artworkUrl": "https://i1.sndcdn.com/artworks-nU2mhziz3vmX-0-t1080x1080.png",
"waveformUrl": "https://wave.sndcdn.com/rgSJlLvcKjWR_m.json",
"durationMs": 234292,
"isPreviewOnly": false,
"plays": 4640225,
"likes": 75321,
"reposts": 4151,
"comments": 1733,
"downloads": 0,
"createdAt": "2017-09-08T13:54:04Z",
"releaseDate": "2017-09-08T00:00:00Z",
"displayDate": "2017-09-08T00:00:00Z",
"lastModified": "2024-09-28T03:13:42Z",
"isDownloadable": false,
"isCommentable": true,
"isStreamable": true,
"isPublic": true,
"license": "all-rights-reserved",
"labelName": "Counter Records",
"purchase": {
"title": "Buy Now",
"url": "http://odesza.co/a-moment-apart"
},
"policy": "ALLOW",
"monetizationModel": "NOT_APPLICABLE",
"embeddableBy": "all",
"publisher": {
"artist": "ODESZA",
"albumTitle": "A Moment Apart",
"releaseTitle": "A Moment Apart",
"isrc": "GBCFB1700210",
"upc": "5054429119183",
"isExplicit": false,
"pLine": "℗ 2017 Foreign Family Collective under exclusive license to Counter Records",
"cLine": "© 2017 Foreign Family Collective under exclusive license to Counter Records",
"containsMusic": true
},
"transcodings": [
{
"url": "https://api-v2.soundcloud.com/media/soundcloud:tracks:341471474/8efa04af-fc45-47c5-8aee-6dc442c240ee/stream/cbc-encrypted-hls",
"preset": "aac_160k",
"protocol": "cbc-encrypted-hls",
"mimeType": "audio/mp4; codecs=\"mp4a.40.2\"",
"quality": "sq",
"isSnippet": false,
"durationMs": 234267,
"isLegacy": false
}
],
"artist": {
"id": "18604897",
"handle": "odesza",
"url": "https://soundcloud.com/odesza",
"name": "ODESZA",
"avatarUrl": "https://i1.sndcdn.com/avatars-9N0KOFupZRs2l2QQ-seYNnA-large.jpg",
"isVerified": true,
"followers": 783898
},
"fetchedAt": "2026-11-11T09:06:14.421Z"
},
"meta": {
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f",
"creditsCharged": 1,
"creditsRemaining": 4999,
"cached": false
}
}
Please help me write code in my preferred programming language to make this API call and handle the response appropriately. Include error handling and best practices.
Authorizations
Your API key. Send it in the x-api-key header (or Authorization: Bearer <key>). Create and manage keys from your dashboard.
Query Parameters
The track's link (https://soundcloud.com/<artist>/<track>).
Optional. Return a cached result if one this age or newer exists — served for 0 credits with meta.cached=true and meta.cachedAt. Otherwise a fresh scrape runs (1 credit) and refreshes the cache. Omit to always scrape fresh.
1d, 3d, 7d, 14d, 30d