Pagination
Navigate large result sets with cursor and offset-based pagination.
Overview
List endpoints that return multiple items (templates, projects, etc.) support pagination. By default, results are returned in pages of 20 items.
Pagination Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
page | number | 1 | Page number (1-indexed) |
pageSize | number | 20 | Items per page (1–100) |
Requesting Page 2
curl "https://api.documentstack.dev/api/v1/templates?page=2&pageSize=10" \
-H "Authorization: Bearer YOUR_API_KEY"Response Structure
Paginated responses include a pagination object alongside the results:
Paginated Response
{
"success": true,
"data": {
"templates": [ ... ],
"pagination": {
"page": 2,
"pageSize": 10,
"total": 42,
"totalPages": 5
}
}
}Pagination Fields
| Field | Type | Description |
|---|---|---|
page | number | Current page number |
pageSize | number | Items returned per page |
total | number | Total number of items across all pages |
totalPages | number | Total number of pages |
Iterating Through All Pages
Fetching All Templates
import { DocumentStack } from "@document-stack/sdk-node";
const client = new DocumentStack({ apiKey: process.env.DS_API_KEY! });
async function getAllTemplates() {
const all = [];
let page = 1;
let totalPages = 1;
while (page <= totalPages) {
const res = await client.templates.list({ page, pageSize: 50 });
all.push(...res.templates);
totalPages = res.pagination.totalPages;
page++;
}
return all;
}Performance
Avoid fetching all pages unless you actually need every item. Use filtering and search parameters to narrow results before paginating.Sorting
Some list endpoints support sorting via the sort parameter:
Sort by Recently Updated
curl "https://api.documentstack.dev/api/v1/templates?sort=updatedAt:desc" \
-H "Authorization: Bearer YOUR_API_KEY"Sort values use the format field:direction where direction is asc or desc.
Next Steps
- Templates API — List and retrieve templates
- Projects API — List and manage projects
- Rate Limits — Request quotas