List endpoints that can return many rows use keyset (cursor) pagination, which stays consistent even as new mail arrives.

How it works

Pass limit to control page size (default 50, max 100). When more results exist, the response includes a non-null nextCursor. Pass it back as cursor to fetch the next page. When nextCursor is null, you’ve reached the end.

Iterating

Results are ordered newest-first by received time. An invalid cursor returns a 400 with { "error": "Invalid cursor" }.