List endpoints are paginated with an opaque cursor.
limit | Records per page. Default 25, maximum 100. |
cursor | Pass the cursor from the previous response to fetch the next page. |
Every list response tells you where you are:
{
"success": true,
"error": "",
"count": 1,
"remaining": 17,
"cursor": "bzox",
"data": [ ... ]
}countis the number of records in this page.remainingis how many are left after it.cursoris what to send next. It is an empty string when there are no
more pages. That, rather thanremaining, is the condition to loop on.
# first page
curl "https://api.djfindr.com/prod/v1/public/djs?limit=25" \
-H "Authorization: Bearer djf_live_..."
# next page
curl "https://api.djfindr.com/prod/v1/public/djs?limit=25&cursor=bzox" \
-H "Authorization: Bearer djf_live_..."Treat the cursor as opaque. It encodes a position and its format may change; do
not construct one yourself or store it as a bookmark for later.
Filters must be repeated on every request in a run. A cursor records a position
within a result set, not the query that produced it, so changing the filters
mid-run gives you a page from a different set at the same offset.
DJ search is ordered the way djfindr.com orders it unless you pass sort:
Platinum DJs first, then the highest rating, then the most reviews
(platinum_rating). The one exception to paging is sort=random, which draws
a fresh sample of every match on each call. A cursor does not page through it,
so ask for the page size you show.
The Management API pages the same way, with one difference: see
Management API responses.