I am not quite sure what your issue is. You can export ALL responses, completed or not completed into one export file of course. It is actually the default:
And then you have the column of "last page" and also "completed" in the response tab of the backend that will allow you to determine who has completed and who hasn't (despite the indicator that those incomplete will lack some answers, of course):
This is how it looks like in the export:
So there is no "completed" column, but there is the submit date. If the survey hasn't been completed, you won't have any submit date, just like here for response 1 and 2, both did not submit the form completely.
In last page you will see the last page they have seen. Here it is "1" for all, because my example just had 1 page, but in a survey with more than one page you will see different "last pages" for those that got to the last page or not. They still could not have submitted. So the best way to tell if they are complete or not is the fact that they have a submit date. Here it was an anonymous survey so the actual date and time was not recorded, but a standard date instead.
No Idea about the API, not using it.