This appears to be correct on my end as well. So that means that I can track all student contributions by requesting a list of PageRevisions for a Page.
A new problem has emerged. My request for a list of Pages returns an incomplete list of the Pages in a Group, and the list of PageRevisions is also incomplete. The list of Pages seems to be sorted in ascending order by date of creation and stops at the 10 oldest pages. The list of PageRevisions for each Page is also limited to 10, but is sorted in reverse chron order.
I think this is because the default for any GET request on the API is 10 and that results are "paginated." (I did something similar to this in 2020. Apparently don't have the script I used then but I'm starting to remember this problem.)
This isn't really clearly noted in the API doc pages for Pages and PageRevisions. It's a classic case of terse style of technical documentation. Given that Canvas users are a more diverse group with different levels of technical competence (compared to, say, Perl mongers on a pm.org listserv), I suggest making this clearer and more descriptive, linking back to the doc pages about the arbitrary default limit on 10 items in a request, and expanding this as well. Also, while I don't understand the technical reasons (beyond the need to conserve compute resources) for limiting a GET request of this kind, I wish it wasn't arbitrarily limited because it makes a simple use of the API (getting all of the PageRevisions for a Page or all of the Pages) unnecessarily difficult. Why would you ever want the first or last 10 of changes?
This discussion post is a good guide to a pattern for handling pagination of results of unknown length. (Thanks to whomever wrote it.)
https://community.canvaslms.com/t5/Canvas-Developers-Group/Handling-Pagination/td-p/51450
It would be a good basis for a tutorial.