Regarding the desired interval between the requests is not possible as some visualizations may take longer than others to compute, meaning that you always get uri where you can download exported insight or visualization, but the insight may be ready or not. If it is ready you get http status 200 and the insight is downloaded, if it is not, you get http status 202 and you get the uri where you can downloaded again (also explained
here). It is standard way how asynchronous resources works. If you are doing this via a script, you may run into issues if it does not count that the insight may not be ready yet.
With this said, you have 2 options how to resolve it.
1. Implement polling to the uri where you can download the insight (the recommended approach).
2. Add some delay between you calling the API and downloading insight.