Pagination
Jelliu uses three paging styles, depending on the endpoint. Each is described below with its parameter names and bounds.
Parameters are query-string values. A value out of range is rejected with 400 VALIDATION_FAILED rather than silently clamped. See Errors.
Timestamp cursor
The cursor is an ISO 8601 timestamp: the created_at of the last item you received. The next page returns items created before it.
Agents
1 to 200. Defaults to 50.
Return agents created before this instant. Must be a UTC timestamp ending in Z, for example 2026-08-01T15:04:05.000Z.
Case-insensitive match on the agent name. 1 to 200 characters.
GET /api/agents returns { "data": [ ... ] } with no cursor field. To fetch the next page, pass the created_at of the last agent as cursor. When a page has fewer items than limit, you have reached the end.
Calls
1 to 100. Defaults to 50.
The nextCursor value from the previous page.
0 to 100000. Alternative to cursor for numbered pages. A non-zero offset takes precedence over cursor.
Only calls handled by this agent.
Only calls from this campaign.
GET /api/calls returns the page together with its paging state:
nextCursor is null when the page holds fewer than limit calls. Pass it back as cursor to continue:
/api/calls has a stricter rate limit of 20 requests per minute. Use limit=100 when walking the full history. See Rate limits.
Page number
1-based page number. 1 to 100000. Defaults to 1.
1 to 100. Defaults to 20 for campaigns and 50 for contacts.
Extra filters:
GET /api/campaigns/{campaignId}/contactsacceptsstatus.GET /api/contactsacceptssearch(1 to 200 characters) over phone, name and email.
Response shapes:
Contact lists report total, so you can compute the number of pages. The campaign list does not; stop when a page returns fewer than limit items.
Offset
1 to 100. Defaults to 50.
Number of items to skip. 0 to 100000. Defaults to 0.
Stop when a page returns fewer than limit items.
Endpoints without paging
Some lists are small and take no paging parameters. For example, GET /api/webhooks returns up to 100 webhooks, newest first. GET /api/webhooks/{webhookId}/delivery-logs accepts only limit (1 to 50, default 20) and returns the most recent delivery attempts.

