API reference
List / browse tracks
Page through the catalog with optional free-text and structured filters. Returns a paginated list of track objects.
GET
/v1/tracksscope
catalog:readQuery parameters
pageintegeroptionaldefault1Page number.pageSizeintegeroptionaldefault20Items per page (max 100).searchstringoptionalFree-text match on track name.typeenumoptionalmusicorsfx.hasVocalsbooleanoptionalFilter vocal vs. instrumental tracks.filterIdscsv of UUIDsoptionalMatch tracks tagged with all of these filter ids.filterSlugscsv of slugsoptionalSame, by slug — e.g.electronic,energetic.
Request
GET /v1/tracks
curl "https://<your-b2b-host>/v1/tracks?type=music&hasVocals=false&filterSlugs=electronic,energetic&page=1&pageSize=20" \
-H "Authorization: Bearer $TOKEN"Response
Note the streamUrl on each track is a signed URL valid for ~30 minutes — see The track object.
{
"data": {
"totalRecords": 1280,
"totalPages": 64,
"currentPage": 1,
"pageSize": 20,
"items": [
{
"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 |
|---|---|---|
| 400 | invalid_request | A query parameter failed validation. |
| 401 | invalid_token | Token missing, malformed or expired. |
| 403 | insufficient_scope | Token lacks catalog:read. |
| 429 | rate_limited | Over 600 requests/minute. |