API reference
Get a single track
Fetch one full track object by its slug. Re-fetch when you need a fresh streamUrl.
GET
/v1/tracks/:slugscope
catalog:readPath parameters
slugstringrequiredThe track's URL-safe slug, e.g.midnight-drive.
Request
GET /v1/tracks/:slug
curl "https://<your-b2b-host>/v1/tracks/midnight-drive" \
-H "Authorization: Bearer $TOKEN"Response
{
"data": {
"id": "9b1c0f2e-3a4b-4c5d-8e6f-7a8b9c0d1e2f",
"name": "Midnight Drive",
"slug": "midnight-drive",
"type": "music",
"bpm": "120",
"songKey": ["A min"],
"timeSignature": "4/4",
"durationSeconds": 184,
"region": "IN",
"releaseDate": "2024-03-01T00:00:00.000Z",
"hasVocals": false,
"isPRO": false,
"tags": ["energetic", "drive"],
"artists": [
{ "id": "a1b2c3d4", "name": "Nova", "role": "COMPOSER", "isPrimary": true }
],
"filters": [
{ "id": "f1a2b3c4", "name": "Electronic", "slug": "electronic", "type": "genre" },
{ "id": "f2b3c4d5", "name": "Energetic", "slug": "energetic", "type": "mood" }
],
"artworkUrl": "https://cdn.hoopr.example/musics/9b1c.../image.jpg",
"streamUrl": "https://cdn.hoopr.example/musics/9b1c.../audio.mp3?X-Goog-Expires=1800&X-Goog-Signature=..."
},
"error": { "code": 0, "message": "OK" }
}Errors
| HTTP | error.type | Meaning |
|---|---|---|
| 401 | invalid_token | Token missing, malformed or expired. |
| 403 | insufficient_scope | Token lacks catalog:read. |
| 404 | track_not_found | No track matches that slug. |