Pagination & Filtering¶
All list (GET) endpoints support a consistent set of query parameters for pagination, date filtering, and field-level search.
Pagination¶
| Parameter | Type | Default | Description |
|---|---|---|---|
skip |
integer (≥ 0) | 0 |
Number of records to skip before returning results |
limit |
integer (0–1000) | 50 |
Maximum number of records to return |
Example — page 2 with 100 results per page¶
Maximum limit
The maximum value for limit is 1000. Requests with a higher value will be capped or rejected.
Iterating all records¶
skip = 0
limit = 1000
all_records = []
while True:
response = requests.get(
f"{BASE_URL}/invoices",
params={"skip": skip, "limit": limit},
headers={"Authorization": f"Bearer {token}"}
)
page = response.json()
if not page:
break
all_records.extend(page)
skip += limit
Date Filtering¶
Endpoints that support filterDate accept either a single date or a date range:
| Format | Example | Description |
|---|---|---|
YYYY-MM-DD |
2024-11-15 |
Exact date match |
YYYY-MM-DD:YYYY-MM-DD |
2024-11-01:2024-11-30 |
Date range (inclusive) |
GET /api/{account}/v4.0.0/invoices?filterDate=2024-11-01:2024-11-30
Authorization: Bearer <xa-token>
Text Search¶
| Parameter | Description |
|---|---|
searchString |
The value to search for |
searchColumn |
The column/field to search in (defaults to the primary identifier, e.g., document number or entity code) |
searchOperator |
Comparison operator (see below) |
searchOperator values¶
| Value | Operator | Meaning |
|---|---|---|
| (absent) | = |
Exact match (default) |
lt |
< |
Less than |
lte |
<= |
Less than or equal |
gt |
> |
Greater than |
gte |
>= |
Greater than or equal |
ne |
<> |
Not equal |
Examples¶
Search invoices by document series:
Search customers with a name greater than "M" (alphabetical):
Find articles with a unit price above 100:
Combining Filters¶
Parameters can be combined freely: