list method returns a PagePromise. Await it for one page; iterate it with for await for every item across all pages.
next_cursor as starting_after.
Sync only what changed
A sync job should record the time it starts, not the time it ends, and pass that asupdated_since next run: records that change while you page can move ahead of your cursor.
updated_since work in the API itself: Pagination and syncing.