Filtering & Sorting
Learn how to narrow list results with query-parameter filters and how default sort order works across endpoints.
Overview
Many list endpoints accept optional filter query parameters alongside pagination (page and limit). Filter parameter names are endpoint-specific — there is no single global filter or search param used everywhere.
Sort order is fixed on the server. You cannot pass a sort or order query parameter. Most lists return newest records first.
Common filter patterns
| Pattern | Example params | Used for |
|---|---|---|
| Exact match | email, country, status | Employees, team users, orders, wallet |
| Text search | keyword, search | Team users, wallet, device hub inventory |
| Date range | start_date, end_date | Orders, shipping labels |
| Resource scope | activeinvite, include_assets, warehouse_id | Team users, employee detail, device hub inventory |
Sorting
The API does not support client-controlled sorting. Each endpoint applies a fixed order when returning list results:
| Resource | Default order |
|---|---|
| Tickets | createdAt descending (newest first) |
| Wallet transactions | id descending |
| Orders (ITAD, deployment, procurement, repair) | created_at descending |
| Recover campaigns | id descending |
| Team users / invitations | id descending |
| Shipping labels | id descending |
| Legal hold assets | placement date descending |
Filters by endpoint
| Resource | Filter parameters | Docs |
|---|---|---|
| Employees | Employees List | |
| Employee detail | include_assets | Employee Detail |
| Assets | serialNumber, assetId, asset_number | Asset List |
| Team users | activeinvite, status, country, keyword, filter_by_role | User List |
| Orders | status, start_date, end_date | Order List |
| Wallet transactions | currency_code, status, type, search | Wallet Transactions |
| Shipping labels | country, start_date, end_date | Label List |
| Device hub inventory | warehouse_id (required), search, category_name | Inventory List |
Tickets, recover campaign list, and legal hold active-holds endpoints support pagination only — no additional filters.
Combining filters and pagination
Pass filters and pagination in the same query string:
# Employees filtered by email, page 1
curl -X GET 'https://uat.unduit.com/api-exposed/api/v1/employees?page=1&limit=10&email=jane.smith@example.com' \
-H 'Authorization: Bearer YOUR_ACCESS_TOKEN'
# Wallet transactions with search and status filter
curl -X GET 'https://uat.unduit.com/api-exposed/api/v1/wallet/transactions?page=1&limit=10&status=Debit&search=INV-2026' \
-H 'Authorization: Bearer YOUR_ACCESS_TOKEN'Wallet filter discovery
The wallet transactions endpoint returns a filters object in the response with allowed values for status and type. Use these when building UI pickers or validating query params before sending requests.
{
"filters": {
"status": ["All", "Credit", "Debit"],
"type": ["Work Order", "Repair", "Logistics", "Withdrawal"]
}
}Notes
- ITAD order
statusfiltering is applied after the database query. Pagination totals may not reflect the filtered subset — a page can return fewer orders thanlimitwhen status is set. - Asset list uses a fixed page size of 50 records per page — there is no
limitquery parameter on that endpoint. - Team users search uses
keywordfor name/email substring matching.