Wow, James. As always, this is so helpful and clearly written. Thank you so much.
I have a question about result sets that exceed 100 rows. How do I move to page 2 of a result set that exceeds 100 items?
Once you get past the 100, you will have to deal with pagination. For most objects, getting the second page is as simple as adding a page=2 or page=3 parameter, so the query string might look like ?per_page=100&page=2
However, there are some costly API calls like enrollments and page views that use bookmarks instead of page numbers. Looking at the response header from the network call will show a Link header that contains the actual calls that should be made.
Bookmarks are not predictable (like guessing the next page after 2 is 3) so you will have to look at the link header to see what it is. You can go into the developer tools (F12) and look at the network tab to see what network calls are being made.
Canvas a has a new feature for importing groups via CSV that actually comes with a hidden feature the exports a roster with the groups also listed! Here's the information : https://community.canvaslms.com/t5/Instructor-Guide/How-do-I-import-groups-in-a-group-set/ta-p/41779.... If you already have students assigned to groups in Canvas and click on "download course roster CSV", you get a a list of students with their groups!