Every list and search response includes:
{
"has_more": true,
"next_cursor": "opaque_cursor_token",
"limit": 10
}
Continue paginating until:
{ "has_more": false, "next_cursor": null }
GET endpoints
Pass cursor as a query parameter.
First request
curl "https://enrich.octolane.com/v2/inbound/accounts?limit=10" \
-H "X-API-Key: your-api-key"
Next request
curl "https://enrich.octolane.com/v2/inbound/accounts?limit=10&cursor=<next_cursor>" \
-H "X-API-Key: your-api-key"
POST search endpoints
Pass cursor in the request body. Keep filters, sort, limit, and (for opportunities) pipeline_id/stage_id identical between pages.
First request
{
"pipeline_id": "pipeline_uuid",
"limit": 10,
"sort": { "field": "updated_at", "direction": "desc" }
}
Next request
{
"pipeline_id": "pipeline_uuid",
"limit": 10,
"sort": { "field": "updated_at", "direction": "desc" },
"cursor": "next_cursor_from_previous_response"
}
Cursors are valid only when paired with the same query: query, filters, sort, limit, and (for opportunities) pipeline_id / stage_id. Changing any of these invalidates the cursor.