Brand Data API
Pagination
The cursor-based pagination model shared by every Brand Data API list endpoint.
Every list endpoint (/conversations, /conversations/{id}/messages, and
/contacts) is paginated the same way: a limit controls page size and an
opaque cursor walks forward through the results.
Request parameters
| Query param | Type | Default | Description |
|---|---|---|---|
limit | integer | 50 | Page size. Clamped to the range 1–100. Out-of-range values are clamped. |
cursor | string | — | Opaque cursor returned as nextCursor by a previous page. Omit for the first page. |
Response envelope
Every list response has the same shape: a data array of records and a
nextCursor.
{
"data": [
/* ...records... */
],
"nextCursor": "eyJvZmZzZXQiOjUwfQ"
}data— the records for this page.nextCursor— an opaque string to pass ascursorto fetch the next page, ornullwhen there are no more pages.
Walking through pages
- Request the first page with just a
limit(or no params at all). - If
nextCursoris non-null, request the next page with?cursor=<nextCursor>(and the samelimit). - Repeat until
nextCursorisnull.
# First page
curl -sS "https://<your-vyg-api-host>/conversations?limit=50" \
-H "Authorization: Bearer $LIVERECOVER_API_KEY"
# Next page, using the nextCursor from the previous response
curl -sS "https://<your-vyg-api-host>/conversations?limit=50&cursor=eyJvZmZzZXQiOjUwfQ" \
-H "Authorization: Bearer $LIVERECOVER_API_KEY"Notes
- Treat the cursor as opaque. Do not parse, construct, or modify it — its
internal encoding is not part of the contract and may change. Only ever
pass back a
nextCursorthe API gave you. - A
nullnextCursormeans the end. It is returned whenever a page is not completely full, which is the last page of results. - An invalid cursor is a
400. Passing a malformedcursorreturns400 Bad Requestrather than silently restarting from the beginning.