@fredrik_carenbo
The Provisioning or SIS reports @raj_veeravalli mentions are the only place to get this that doesn't require pagination, but if you want to automate fetching them, it's still going to require multiple API calls (3 or so, not thousands). API calls are supposed to be mostly immediate and it would take too long and too many resources to generate that on the fly.
However, it seems that it would be easier to track changes in the SIS from the SIS itself, rather than trying to pull all that information back from Canvas on a regular basis. I imagine that most systems have a timestamp of when changes were made (if not an audit log) and you may be able to query against that to see what needs changed. If nothing else, take the provisioning or SIS reports and use it as a starting point for a one-time upgrade, and then track changes from that point forward.
If you really need to get all 7000 enrollments through the API, then there are some ways that you can speed up the process. You will want to use a programming language that supports concurrent API calls. I use Node JS and we grab the first page of results, normally using a per_page of 50, to determine how many pages of there are then request the rest in parallel. I do limit the number of requests and throw in some throttling to make sure we don't exceed the limit.
It's summer term right now, so there aren't many courses in session, but at the end of the spring term, it took me a little over 3 minutes to fetch all of our current courses, get their enrollments, get the list of assignments for each of the courses, fetch all of the grades for all of the assignments, and student summary analytics for each course.
We're not quite as big as your 7000 enrollments, but we ended last term with 5280 students.