Response envelope
All list responses wrap their records in a standard pagination envelope:The records on the current page.
Total number of records matching the current query (across all pages).
Total number of pages given the current
size value.true if there are additional pages after the current one; false on the last page.Pagination parameters
Control which page of results you receive using these query parameters on any list endpoint:The page number to retrieve. Must be
1 or greater.Number of records to return per page. Must be between
1 and 100 inclusive.size is capped at 100 records per request. To retrieve more than 100 records, increment page on successive requests until has_more is false.Sorting
Most list endpoints acceptsort_by and sort_order query parameters to control the order of results:
The field name to sort by (e.g.
created_at, email). If omitted, the endpoint uses its default ordering. Refer to individual endpoint documentation for the supported sort fields.Sort direction. Accepted values:
asc (ascending) or desc (descending).Filtering
Most list endpoints accept additional query parameters to narrow results. Common filter parameters include:| Parameter | Type | Description |
|---|---|---|
email | string | Filter by exact email address |
status | string | Filter by record status |
created_after | ISO 8601 datetime | Include only records created after this timestamp |
created_before | ISO 8601 datetime | Include only records created before this timestamp |
Example: paginated request with sorting and filtering
Retrieve the second page of contacts, 25 per page, sorted by most recently created, filtered to a specific email domain:has_more is false:
Envelope stability
The{ items, total_count, total_pages, has_more } envelope shape is frozen — it will not change within /v1. You can safely build your deserialization logic against this structure.