I actually have a simmilar issue and have been working on it for the past 5 days non-stop (same program but hopping around issues), I managed too side step it by doing something kinda silly. I was working In c# as my python skills are lackluster, But I can give you a general Idea of what you need too do.
I ended up looping the API as many times as limit/AmountNeeded, slowly incrementing the date every time it loops, copied the response to a object and then threw that object into a dictionary, when the loop was over the Dictionary<Number, Object> was converted into a JSON file and CSV file and copied into a text file too be used later down the line.
It ended up being really compicated as I was doing it in async but it does work and I do get the data I want within a reasonable amount of time (I am pulling a lot of data, millions of bars).
I would really Like their too be no limit on data as doing what I am doing is increadably time consuming at 200 Requests/Minute, so if your requesting any large amount of data it can be increadably difficult to merge all of the requests into one singular JSON file, but If its what you want prepare for a couple hours of programing, But I whole-Heartedly Support the 1000 bars request limit.
The limit is their for a reason, as trasmitting that much data if very time consuming and takes an entire thread of the server for way too long, But it does become a issue when the API request limit also has too be timed as not too hit over 200 requests per minute, which I feel could be an Issue for programs wanting too get every crumb of data.
Sorry if this is a bit long but it is actually quiet a weird problem too get around. I am not experienced in APIs and as such a lot of my time was spent blind folded walking into walls. Python API seems like it has very good documentation though with multiple youtube videos on it as well as a great amounts of peoples code too refrence, So I wish you luck and hope you can do better then me.