Pagination

Learn how to page through list endpoints using page and limit query parameters and the standard response envelope.

Overview

List endpoints use offset pagination. Pass page and limit as query parameters.

Query parameters

ParameterTypeDefaultDescription
pagenumber11-based page number.
limitnumber10Records per page. Max 100 on tickets, wallet transactions, and shipping labels. Campaign details employees default to 50.
curl -X GET 'https://uat.unduit.com/api-exposed/api/v1/employees?page=2&limit=25' \
  -H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
  -H 'Content-Type: application/json'

Response envelope

Paginated responses include snake_case metadata alongside the result array. Endpoints that wrap payloads in success / message / data still use the same pagination fields at the top level.

FieldTypeDescription
current_pagenumberCurrent page number (1-based).
total_pagesnumberTotal number of pages available.
totalnumberTotal matching records across all pages.
per_pagenumberPage size used for this response (matches limit).
fromnumber | null1-based index of the first record on this page. null when total is 0.
tonumber | null1-based index of the last record on this page. null when total is 0.
{
  "current_page": 2,
  "total_pages": 5,
  "total": 47,
  "per_page": 10,
  "from": 11,
  "to": 20
}

The result array key varies by endpoint — for example users, orders, assets, data, labels, or campaigns. Some endpoints also include a resource-specific total field such as total_users or total_orders alongside total.

Paginated endpoints

ResourceEndpointArray key
Employees/employeesusers
Assets/assetsassets
Team users/team-usersusers / invitations
Orders/itad/orders, /deployment/orders, …orders
Tickets/ticketsdata
Wallet transactions/wallet/transactionsdata
Legal hold/legal-hold/active-holdsdata
Shipping labels/shipping/labelslabels
Recover campaigns/recover/campaignscampaigns
Campaign employees/recover/campaign/:idemployees

Fetching all pages

Start at page=1 and request subsequent pages until currentPage >= totalPages.

let page = 1;
let employees = [];

while (true) {
  const response = await fetch(
    `https://uat.unduit.com/api-exposed/api/v1/employees?page=${page}&limit=50`,
    { headers: { Authorization: `Bearer ${token}` } }
  );
  const body = await response.json();
  employees.push(...body.users);

  if (body.currentPage >= body.totalPages) break;
  page += 1;
}

Next steps