You can usually receive up to 100 at a time by specifying per_page=100 as a query parameter. That number varies by API call and there is no universal number, but I have never seen it be more than 100 that is allowed. You can specify a larger number, but Canvas ignore it and cap it at the maximum allowed. But if none of your quizzes have more than 100 submissions, you can likely get all of the submissions for a single quiz with just one API call.
If you have more than 100 submissions, then you need to follow the rules for pagination to get additional requests beyond the allowed amount.
As you determined, the quiz ID is not the same as the assignment ID. Every object has an id and they cannot be mixed. Objects returned will often include related IDs -- the quiz object has an assignment_id property. The assignment object doesn't have a quiz_id property, but the body property contains the user id, quiz id, score, and time, so you can parse the string and get it from there.
The submission object has an assignment_id but not a quiz_id (directly). If the quiz / survey is automatically graded, then the submission.grader_id will be the opposite of the quiz_id. That is, if the quiz has an ID of 5782587, then the submission will have a grader_id of -5782587.
This discussion post is outdated and has been archived. Please use the Community question forums and official documentation for the most current and accurate information.