Core concepts
Pagination & filtering
List endpoints return a fixed page of results. Control the page and size with query parameters, and narrow tracks down with filters.
Pagination
Query parameters
pageintegeroptionaldefault1Which page of results to return.pageSizeintegeroptionaldefault20Items per page. Maximum100.
The response uses the shared paginated envelope — totalRecords, totalPages, currentPage, pageSize, and items. See Response format for the full shape.
Filtering tracks
GET /v1/tracks accepts these filter parameters in addition to pagination:
Filter parameters
searchstringoptionalFree-text search on the track name.typeenumoptionalOne ofmusicorsfx.hasVocalsbooleanoptionalRestrict to tracks with or without vocals.filterIdsstring (csv)optionalComma-separated filter UUIDs. Matches tracks tagged with all of the given ids.filterSlugsstring (csv)optionalComma-separated filter slugs, e.g.electronic,energetic. Matches tracks tagged with all of them.
curl "https://<host>/v1/tracks?type=music&hasVocals=false&filterSlugs=electronic,energetic&page=2&pageSize=50" \
-H "Authorization: Bearer $TOKEN"filterIdsandfilterSlugsuse AND semantics — a track must carry every filter you list to match.- Discover valid filter slugs via
GET /v1/filters— see Filters.
POST /v1/search takes the same filters
POST /v1/search accepts the same filters as a JSON body, using arrays instead of comma-separated strings. Reach for it when your filter values get long or you prefer structured input.