Pagination
Cursor-based pagination in the CRM Factory API.
All list endpoints use cursor-based (keyset) pagination for consistent, performant paging through large datasets.
Query Parameters
| Parameter | Type | Default | Range | Description |
|---|---|---|---|---|
cursor | string (UUID) | — | — | ID of the last record from the previous page |
limit | number | 50 | 1–200 | Number of records per page |
Response Shape
{
"data": [
{ "id": "...", ... },
{ "id": "...", ... }
],
"next_cursor": "550e8400-e29b-41d4-a716-446655440099",
"has_more": true
}| Field | Type | Description |
|---|---|---|
data | array | Records for this page |
next_cursor | string or null | Pass as cursor to get the next page. null when there are no more records. |
has_more | boolean | true if more records exist beyond this page |
Example: Paging Through Opportunities
First page:
GET /api/v1/opportunities?limit=25Next page (using next_cursor from previous response):
GET /api/v1/opportunities?limit=25&cursor=550e8400-e29b-41d4-a716-446655440099Continue until has_more is false or next_cursor is null.
Notes
- Records are ordered by
created_atdescending (newest first) unless otherwise noted. - Cursor pagination is stable — inserting or deleting records between pages won't cause duplicates or gaps.
- The
cursorvalue is always a recordid(UUID), not an offset.