Pagination
Every list endpoint uses opaque cursor-keyset pagination. The envelope looks like this:
{
"data": [
/* rows */
],
"pagination": {
"cursor": "eyJpZCI6ImNtN2Fzc2V0MDEifQ==",
"has_more": true,
"limit": 50
}
}
Walking pages
Pass the cursor from the previous page as ?cursor= on the next request:
# Page 1
curl -H "X-API-Key: msk_test_..." \
"https://app-api.dev.mobilytics.ai/v1/partner/assets?limit=50"
# Page 2 — use the cursor from page 1
curl -H "X-API-Key: msk_test_..." \
"https://app-api.dev.mobilytics.ai/v1/partner/assets?limit=50&cursor=eyJpZCI6..."
Stop when has_more is false.
Rules
limitis 1 – 500. Default is 50.cursoris opaque base64 — do not decode or construct it. The encoding may change at any time.- Ordering is stable (primary key ascending). Cursors never skip or duplicate rows.
- An invalid cursor returns
400 INVALID_CURSOR.
What's not paginated
/v1/partner/meta/v1/partner/assets/:id(single resource)- Time-bucketed metrics and demographics — bounded by the query's date range.