Skip to main content
Every Zolt API endpoint that returns a collection of resources — projects, tasks, team members, and more — uses cursor-based pagination. Rather than relying on page numbers or row offsets (which can produce duplicates or skipped records when data changes between requests), Zolt returns an opaque cursor string you pass into your next request to continue from exactly where you left off. This approach is reliable, consistent, and efficient even across large datasets.

Making a Paginated Request

Use two query parameters to control the size and starting position of each page:
  • limit — the number of records to return per request. Defaults to 20; maximum is 100.
  • cursor — an opaque, base64-encoded string returned by the previous response. Omit this parameter to fetch the first page.
First page
Subsequent page using a cursor
Treat the cursor value as an opaque string — do not attempt to decode, modify, or construct cursor values manually. Their format may change without notice.

Pagination Response Envelope

All list endpoints return the same envelope structure: an items array containing the resources for the current page, and a meta object with pagination state.
Paginated response envelope
array
requis
The array of resource objects for the current page. The schema of each object matches the single-resource response for that endpoint.
object
requis
Pagination metadata for the current response.

Filtering

Narrow list results by passing filter parameters as filter[field]=value query strings. Multiple filters are applied with AND logic — a record must match all provided filters to be included.
Filter tasks by status and assignee
Filter high-priority tasks in a project
Combine filtering with pagination by appending both sets of parameters to the same request. The cursor returned will preserve your active filters as you iterate through pages.

Sorting

Control the order of results with the sort query parameter. Pass a field name to sort ascending, or prefix the field name with - (a hyphen) to sort descending.
Tasks sorted by due date, most urgent first
Projects sorted by most recently updated
Not every field supports sorting on every resource type. If you supply an unsupported sort field, the API returns a 400 Bad Request error with a message indicating which fields are sortable for that resource.

Iterating Through All Pages

To retrieve every record in a collection, loop until meta.has_more is false. The example below fetches every task across all pages and collects them into a single array.
Iterate all pages (JavaScript)
When iterating large collections, be mindful of rate limits. Zolt enforces a default rate limit of 300 requests per minute per API key. If you exceed this limit, the API returns 429 Too Many Requests. Add a short delay between loop iterations or reduce your request frequency if you are processing very large workspaces.
Dernière modification le 18 septembre 2026