Pagination & filters
Keyset cursors and the filters every list endpoint supports.
Lists
GET /v1/{object}?limit=100&cursor=…&<filters>returns
{ "data": [ /* … */ ], "nextCursor": "…" }limit— page size, default 100, max 1000.nextCursor— pass it back ascursorto get the next page. It isnullon the last page.
Keyset cursors
Paging is keyset on GP's DEX_ROW_ID, not offset — so deep pages stay fast even on
million-row tables, and the cursor is stable under concurrent inserts. Treat the cursor as an
opaque token; don't construct or parse it.
# first page
curl "https://api.erpspan.com/v1/customers?limit=100" -H "Authorization: Bearer $LB_LIVE_KEY" -H "X-Connection-Id: conn_..."
# next page
curl "https://api.erpspan.com/v1/customers?limit=100&cursor=eyJ2IjoxLCJrIjoxMjN9" -H "Authorization: Bearer $LB_LIVE_KEY" -H "X-Connection-Id: conn_..."Filters
Only these filter patterns are supported (there is no arbitrary query language in v1):
| Filter | Example | Meaning |
|---|---|---|
updatedSince | ?updatedSince=2026-01-01T00:00:00Z | rows changed at or after an ISO timestamp |
id[] | ?id[]=AARONFIT0001&id[]=ADAMPARK0001 | fetch specific ids (max 50) |
| exact match | ?customerId=AARONFIT0001, ?status=open | exact match on a documented ref/enum field |
q | ?q=aaron | case-insensitive substring on the object's name field |
Which exact-match filters apply to a given object are listed on that object's page under the object reference.