It can be achieved in many different ways. I've written several types of scripts to achieve retrieval of course grading information in varying formats but never by module completion rate. To my knowledge, there's no readily available API end-point for this, so you will have to get busy coding it yourself.
First, you need to understand Learning Paths in Canvas. These are set on a per-module basis and determine how the modules behave - for example, whether or not the assignments show the check-mark you mention upon completion. They may also just not be grayed out if a student has progressed to them and more. So look it up and experiment with it until you understand it.
Secondly, be very specific about what you want to know. Do you want to know how far all of your students has progressed in a certain module? Do you want to know the average module completion rate for each student? Do you want it presented in a spreadsheet? These are all different things that require different approaches although they all build on the same data.
Thirdly, ensure that all your courses and content creators have a well-defined system for course, module and learning path design. Quite often with these things, having good structure in a course and systematic, consistent approaches to the settings of modules, learning paths and assignment creation should precede any additional coding. You cannot write a code for a chaotic system in which each course behaves differently, so if that's the case, I'd suggest you sort all this out first.
With that said, you're looking at a mix of the Courses, Modules, Submissions and Students API end-points but depending on complexity, you may not need to use them all.